New Website!

We have a new website and a new logo for our community. Go Smalltalk!

Smalltalk was designed for Kids!

Yes! Alan Kay was trying to develop an environment to be used in the education of our kids.

Did you Know that Smalltalk was created in 70's at Xerox?

The use of the mouse, the "copy and paste", the bitblt and others technologies was firstly created in Smalltalk. Steve Jobs saw those ideas at Xerox and he developed a new language, Objective-C.

Mailing List in Spanish!

Please, go to and join us!

November 25, 2008

Smalltalks 2008 repercussion in local newspaper

Nov 25th, 2008. The Smalltalks 2008 congress has finished, however the free newspaper La Razon has published today a little article talking about the event. La Razon is freely distributed in the subways, trains and other crowded places in the city of Buenos Aires. Congratulations to all the people involved in the organization.

November 16, 2008

Smalltalks 2008 Notes

Andrés Valloud has written notes in his blog about each day of the Smalltalks 2008 Conference.

November 4, 2008

The 40th Anniversary of the Dynabook

Alan Kay and the prototype of the Dynabook - Photo of Marcin Wichary
The computer history museum presents: "The 40th Anniversary of the Dynabook". Here's is the complete event information.

Happy Birthday Dynabook!

October 29, 2008

Interview to the Argentinean Smalltalk organization committee

The Argentinean Smalltalk congress has its second edition this year, and we interviewed the organizers. The key people to get this congress going on are Leandro Caniglia (LC), Andrés Valloud (AV), Hernán Wilkinson (HW), Andrés Fortier (AF) and Gonzalo Zabala among other well known people in the Smalltalk community who help them. 

How was the idea to organize a Smalltalk congress in Argentina born?

LC: When attending ESUG 2007 last year I suddenly realized that we had to do something similar in Argentina. I was just starting to consider that possibility myself when Stefan Ducasse came and told me exactly this: "you guys should organize a conference in Argentina". It became crystal clear to me that the time to do that had finally arrived.

More profoundly, I see the Smalltalks conferences as a new stage in the history of Smalltalk in our country: The first one started in the old days when Gustavo Rosi introduced Smalltalk in the University of La Plata. Years later we had the SUGAR crusade that spread the Smalltalk enthusiasm irradiated by the Squeak project. Then we had a rather introverted period where real Smalltalk jobs started to be offered and more opportunities to use Smalltalk emerged. All that evolution that took two decades made it possible for many local smalltalkers to grow up as professionals and, in some cases, to acquire international notoriety. The maturity achieved today is so visible that we abandoned our contemplative stance and started to be proactive actors of the international community. Because of these reasons, I don't see the 2007 and 2008 conferences of as a new venture but as the logical result of the irresistible appeal that Smalltalk had always had on Argentinean programmers.

AV: In some regards it was an accident. While in Argentina during in May of 2007, Leandro and myself had talked about building a conference like ESUG for Argentina, with the idea to do the real thing in 2009 or so once we had enough practice. I suggested we should do a draft conference first, so we thought about doing something in 2008. Later in the year, in the last few days of September, I spoke with Hernan Wilkinson and commented that some people were trying to do something. He was very enthusiastic, and once we saw we could have room at UBA things started happening very quickly. Andrés Fortier got invited to the organizing committee. It continued to snowball and that's how we had Smalltalks 2007 in the first days of December.

HW: From my point of view, all started when Andres told me via chat about people wanting to do a Smalltalk conference in Argentina... after a while I realized that those people were Leandro and him! I always wanted to do something like that but had never had the time neither the support to do it. I still do not have the time but hey, it is like in software development, there is never enough time to do what you want to do. But last year Andres and Leandro wanted also to do a conference and then Andres Fortier joined the team so we were a group of people that could share the responsibilities and duties. It became a great group really fast! We could solve the differences without problem; we decided how we would like the conference to be, etc. There was a great synergy among us. It also helped that the Computer Department of the FCEyN at UBA gave us all we needed for the conference to be possible. It was an exciting time and at least I could fulfill a dream I used to have. Here are some of the lines of a chat that was the kick-off of the congress:

4:02 PM Andres: que tal? todo bien? (How are you? is everything fine?)
4:03 PM me: todo bien. vos? (everything is fine. And you?)
4:03 PM Andres: tenia curiosidad... anduvo circulando la idea de hacer una miniconferencia de Smalltalk en Buenos Aires este diciembre, te interesa? (I was curious... there is an idea to hold a mini-conference of Smalltalk in Buenos Aires this December, are you interested?)
4:04 PM me: estaria muy bueno! yo hace rato que vengo pensando en una cosa así pero no tengo tiempo... (it would be great!, I have been thinking about something like that but I do not have time..) que estas pensando? (what are you thinking about?)
4:04 PM Andres: por ahora no hay nada en concreto... 1 solo track, asi todos pueden ver todo (right now there is nothing real... just 1 track, so everybody can see everything)
4:05 PM me: si, algo tipo esug... (yes, something like esug...)
4:06 PM Andres: si, algo asi (yes, something like that)
4:06 PM me: dame un segundo... (give me one second...)
4:06 PM Andres: ok... 0... 1...

What was the first repercussion among your university colleagues and private companies?

AV: We had very good feedback in our survey at the end of the conference. Also, organizations such as ESUG and GemStone were very positive in their comments.

AF: Here at the university we had good news seeing that Smalltalk was getting attention again. I'm particularly very happy about last year's result and for the support from my colleagues who also helped us in different areas.

HW: The question is kind of ambiguous, which is great! Because AV answered the repercussion after the conference, I'll concentrate on the repercussion before the conference, after the announcement.
As soon as we sent the email to the lists (Smalltalk lists, universities, programming groups, etc.) we got great feedback. We started to receive mails telling us that it was a great idea, that it was about time to have a Smalltalk conference in Argentina, etc. The repercussion was bigger than expected. In our first talks, when laying the groundwork of the conference, the idea was to have a one day conference, with no more that 40 to 50 people and with 8 or 10 talks, no more than that, but the response of the Smalltalk community was amazing. Everybody wanted to participate, everybody wanted to show what they were doing. I think it was the foundation of the conference that made it possible. We did not ask for really formal papers (like in research), we just asked the presenters to send a few lines about the topic they wanted to show and stressed the idea that we wanted everybody to participate. That I think, gave the presenters the courage to participate and it was a big surprise and really rewarding to see the kind of talks we had with the technical level they had.
So, I feel that the repercussion was more than we expected, that the Smalltalk community in Argentina needed something like that... it was just great.

LC: The repercussion surpassed our expectations, and its echoes are still audible. Andrés and I could confirm that in Smalltalk Solutions and ESUG 2008, where the interest in Argentina was very visible. In the local arena we are seeing new Smalltalk projects in companies that don't have a Smalltalk tradition, as well as foreign corporations keeping an eye on Argentinean human resources.

HW: I think that the international Smalltalk community was shocked by the outcome of the conference. I do not recall a Smalltalk conference with that many people. So I think this sends a message to the world: "In Argentina the Smalltalk community is big". Now we have to demonstrate that it is a good one from the technical point of view.
Going back to your question, we had really important support from international companies like Cincom, Instantiations and GemStone and from Smalltalk organizations like ESUG. The support that ESUG gave us was great! They sent us books and dvds to give away to the attendees. I think that that paid off... Look at the number of Argentine participants in the ESUG's Innovation Award, that is not just a coincidence, it is the result of the support we got from ESUG last year.
GemStone was a big player too. They sent James Foster to give a talk and a one day tutorial on GLASS, which was great also.
So, I feel that the Smalltalk community in Argentina is getting more attention from the international community, maybe not from the economic point of view because Argentina's economy is not as big as that of Europe or the US, but as source of good technical skills and ideas.

How is the congress financed? We know that registration to other conferences is quite expensive but this one is free.

LC: Very little money is required to grant everybody access to real knowledge, especially in a country with a solid tradition of public education. Funding is only crucial when friends are scarce. Fortunately, that's not our case and several companies and institutions are supporting this initiative. In 2007 we had the privilege of using the facilities of FCEyN for free and this year the UAI will host the conference at no charge. Money is not a problem when you are highly motivated by a broad audience.

AV: This was one of our goals from the beginning. I remember that LC was quite adamant that it should be free.

AF: As AV says, LC always said that the conference should be free and I think that it is great to be able to do it that way. As this year's conference, Smalltalks 2007 was possible thanks to all the sponsors that supported the event.

HW: Yes, it is like AV says. We wanted the conference to be free but we had concerns about it. LC pushed that idea really hard, and as in many other decisions he was "right on the money". The fact that the conference was free allowed more people to come and participate, and I think it goes hand by hand with the type of education that the four of us had, which is a public-free education. So, in some sense I felt I was returning to the people of our country what they gave us, the possibility of a good graduate education and I'm really happy with that. This is something we should not change while possible. Our goal is not to make money out of this, our goal is to promote a better way of programming, a better way of doing things in our profession and we believe Smalltalk is a good way to do that.

Today, what is the balance of the first congress and what are the motivations for the future?

LC: We have many concrete objectives for the short and long term. For instance, we want to encourage organizations to take advantage of Smalltalk for teaching and learning concepts that are crucial in Computer Science, so we organize the conferences in educational institutions. We want to encourage professionals to rediscover the joy of programming, and that's why we introduced a challenging coding contest this year. We want to provide developers with a forum for fruitful discussion, a place where those that had worked hard can proudly present their achievements, so we carefully select the best submissions we receive for the presentations. We want to facilitate the communication with the rest of the world and that's why we invite international speakers and, in turn, attend international conferences trying to involve well known Smalltalkers with our activities. Above all these goals there is the decision to start building something for the future. We are creating a non-profit foundation that will allow us to help the Smalltalk community to develop itself more efficiently. Unlike other professional associations our idea is to create a foundation because we don't want to restrict our support to the members of a club, but to the community as a whole.

HW: From my point of view, and as I said before, the balance is more than positive. The congress surpassed all our expectations, the feedback we had was great and we already had good feedback about doing it again this year. We achieved more than we expected and that gave us the "means" to continue. I think the motivations for the future include the same ones we had from the first time, but also include our desire to make the conference more "international". We would like more people from outside to come, but we know it is not easy because there are already two Smalltalk conferences (Smalltalk Solutions and ESUG) and we do not want to compete with them, on the contrary we want be part of the same goal. The language is another problem of making the conference international. It is not going to be easy for all the Argentine presenters to give their talks in English. I would be more than happy if we can bring well known people of the Smalltalk Community to give a talk in the conference, that would be the "heaven" for me.

What can we expect from the second edition?

AV: Perhaps it is easier to state what are our own expectations, and I'd like to share one of mine. I have been very lucky in that I have had the opportunity to learn from really talented people. Not everybody has that chance. So, something I would like our conferences (and now the foundation as well) to provide is a context in which it is possible to share what we know with each other so that we can move forward into the future.

LC: The second edition will confirm that the annual Argentinean conference has continuity. That will give authors that did not present their work last year a good reason to do that this time. Moreover, it will install in the conscious of all Smalltalkers that the event will come back next year. This is the constructive character that I mentioned before; people and companies will know that they are not alone and that starting a Smalltalk project is not a risky bet but a wise decision.

HW: I think it will be as good as last year's conference and maybe better from the technical point of view. I have no doubt that there are going to be really good presentations. We will have people from GemStone, for example, that will talk about their experience with Smalltalk, we will have the coding contest that will provide a new track we did not have last year, etc. I believe it is going to be a really good conference. This year we plan the conference to have three days from the beginning, last year we planned one day and finally took three. Although I'm very optimistic about this year I'm not sure we will get as many people as we got last year. I think that the conference last year was like an "explosion", it was something new and everybody wanted to participate. I'm not sure what is going to happen this year about the number of attendees. Although there are already 130+ people registered, my guess is that this year it is going to be difficult to pass the 300 registrations we got last year. I would be very happy if we could match that number of registrations. But do not get me wrong, I'm not disappointing with this, I think it is "business as usual" and we are working really hard to get an attractive schedule and I think we will get one.

How many people are working behind the organization?

AV: The organizing committee is the same one as in Smalltalks 2007, with the addition of Gonzalo Zabala who is managing the venue for this year. We would like to thank Gonzalo and the UIA for their generous offer to host the conference for free.

HW: As Andres says, we are 5 people working on it.

The last edition of ESUG was a record. Do you think that this congress can repeat this success?

AV: While I was at ESUG, I got a question from one of the organizers. Perhaps with a bit of disbelief and amazement, it was phrased along these lines:
"This year we have about 170 people at ESUG, and we literally sold out. But you guys had 300 registrations last year, in your first year, and in a single country! How is that possible?"
Perhaps the answer to that is in some of the cultural idiosyncrasies of Argentina. I'd say that as long as we satisfy these needs, the conference will do well. Of course we would be very happy if each year we doubled the assistance, but on the other hand we would have a big problem in a few years :).

HW: Well I guess I kind of answered that in part before. Although I think it is going to be difficult to get 300 people again, I might be wrong. But I would not measure the success of the conference only from the number of registrations, I think it is important to measure the number of presentations and the quality of them, and here I'm sure we will get the same success or maybe more than last year.

About Smalltalk

In the last year, there has been a steady growth in the amount of Smalltalk projects in Argentina. In your opinion, what could be the reasons and motivation of this growth, when in the whole world there are a lot of projects based on the trendy languages?

AV: I think this is also related to the cultural background of Argentina. Note that I moved to the US 8 years ago, so maybe this is my idealized rationalization of what is going on. But, while I would say there is a certain amount of people who go with what is most popular, I also remember an environment in which exploration and a desire for more transcendental work is rewarded. Smalltalk is an ideal complement for this.

HW: Well, I think there are many reasons. Some of them I can think of are:
  1. The importance that dynamically typed languages are gaining around the world. With Ruby, Python and the like, programmers are starting to realize that dynamic typing was not so bad after all, on the contrary, it has many advantages over static typing. So, smart people, people that care about creating good software beyond what tools the "market" imposes, is starting to think "hey, these Smalltalk guys have been saying this for a long time... let see what other things Smalltalk has..."
  2. There is an important group of people that have been pushing and teaching Smalltalk for quite a long time, no matter what technology is the "hottest" one. I believe that it is paying off... I know people that have been teaching Smalltalk for more that 15 years already! That's quite a long time in "computer technology" terms. So, I believe this is another reason of the importance of Smalltalk in Argentina, the education.
  3. Another reason is, I believe, the fact that there are companies in Argentina that work with Smalltalk and have been doing it for a while. So this is an indication that working with Smalltalk cannot be that bad after all.
  4. I think there is a "cultural" reason also. In Argentina we have some kind of "revolutionary" trait; we do not get along with standards so easily. I'm not saying this is good or bad, it is just a way of being. This helps when people have "to go against the flow", and working with Smalltalk is like going against the flow of technology.

Anyway, those are some reasons I can think of right now.

Nowadays, we can see a lot of new languages based on Smalltalk like Ruby, Python but what are the major misunderstandings in the IT industry about Smalltalk? Why do all those companies prefer new languages that maybe aren't so mature instead of a more evolved environment like Smalltalk?

AV: To some extent, I'd say that it is a reflection of the availability of developers. It is here where I think the root of this phenomenon hides. Basically, there is something exciting about going in a new language. Having been there, I think that there is this feeling of most people being basically on the same skill level --- clearly this must be so because for a new language you will not find developers with decades of experience. Also, since the language is new, most of the technical issues that are visible will be the ones that have been solved over and over again in the last 30 years or so. This also means that most problems have a clear solution path, and that to some degree it will be relatively easy to find developers knowledgeable enough to reimplement a known solution in this new language. So at first there seems to be vibrant, unstoppable progress, and this attracts more people. Eventually, however, the more fundamental issues become more apparent. This is when a new language is launched to start the process all over again, in the name of addressing the hard problem.
Note that in the same way that Smalltalk would not be considered trendy because it is not taught to most people in colleges for example, I'd venture that neither is C even though nobody could deny its relevance. Rather, I'd say that most developers are taught Java or something like that. In as much as we go for the apparently easy stuff, we continue to neglect the difficult problems.
Carl Sagan once said that our value is in the courage of our questions and the depth of our answers. Knuth recently complained because he sees rampant one-upmanship in computer science research. To me, what happens in computer languages is just an illustration of their keen observations, and it goes back to our goals for the conference and the FAST foundation.

HW: Well, I think AV put it very clear. We live in a "pop culture" in which "new" is believed to mean "better", and Smalltalk is "old", so why use it? When people are faced with Smalltalk for the first time they ask me, "can you do a web app with it? can you connect to a relational database? can you parse an XML document?". All of these are technical questions, they do not care about the "essentials" of programming, of having a good model, of being able to develop an app in a short time, in getting feedback of your changes immediately, etc., they just care about technology because that is what they have been taught. They think Smalltalk is not prepared because it is old and new technology has appeared. Of course, they do not know if this "new technology" is better or not, they do not know if Smalltalk was a pioneer in that kind of technology, they are just "pushed" by the market... In some sense it is what some people want education to be. Some people just want graduate students to be prepared for the technology of the moment because they want to sell that technology! And it is better to sell new technology than old technology. It is like fashion, does somebody understand why we have to change our shoes every year? Why do they get out of fashion? There is no reason but a commercial one. So I believe this is one reason (Thank God we still have public-free universities in Argentina where the professors are free to choose the technology they want, they are not pushed by the market of some companies).
Another reason is because Smalltalk is still way ahead of the common languages, it is still revolutionary after almost 30 years! In the beginning of the 90s it was revolutionary because of the VM, the Garbage Collector, etc. and it was not accepted because of that. Java killed that myth by the end of the 90s. Now we are starting to see another revolution regarding dynamically typed languages and it is going to get some time before it gets fully accepted, for this to became true Java has to go through the same thing that happened to C++, some similar language has to kill it (Maybe that language is Ruby...)
But Smalltalk has one more revolutionary characteristic that no other programming environment has, the image. That is the last barrier on the revolution. The image is the big difference, the image is what makes you work with objects in "real time", no difference between compile time and execution time, no files at all, just objects. It is going to be difficult to get out of the "file" world imposed by Unix in the 60s but I think that is the last barrier. When I see people trying to get rid off the Smalltalk image I believe they are wrong, I think they are not truly "Smalltalkers". Which Smalltalker wants to get rid off the image? I know nobody! Is losing the image a good price to pay to be "compatible" with the old Unix style? I think not, at least I do not want to lose the inspector neither the great Smalltalk debugger.
So I believe that there is a long way to go for Smalltalk to get really accepted, before that the "files paradigm" has to come to an end, and this change is going to take a long time because it is not only a change in a programming language but in the whole computer architecture (from operating systems up to the applications), and it may be Smalltalk is not the language that will do it, it may be another language, with another name but with the same object-message-meta-circular-image-model Smalltalk has.

October 20, 2008

Magma OODBMS Release 4.1

Oct. 13th, Chris Muller has announced the realease 41 of Magma object-oriented database management system.
Here is the reproduction of the announcement to the squeak list by Chris:

I am pleased to announce release 41 of the "Magma" object-oriented database management system has been posted to SqueakMap. Release 41 brings significant improvements in performance, scalability and robustness, particularly on slow networks, as well as improved transparency and operation.

Improved Performance and Scalability

At the core of the better performance and scalability are architectural improvements to the networking module, "Ma Client Server", which now maintains up to 50 simultaneous socket connections instead of just one, and now also compresses request/response ByteArray's when appropriate. The compression, alone, showed more than 100% performance improvement on ADSL-speed network connections. Thanks to for funding this development.

Improved Operational Monitoring

An all-new performance and system-health monitoring package called "Ma Statistics" was developed and integrated into all layers of the Magma architecture. Performance statistics for the last half-hour (hour, day, week, your choice) are captured in five-minute (also adjustable) intervals. Is the server taxed or loafing? What was the average response time for clients? What was the longest response-time for any single request for any client? What was the average size of each response? These and dozens of other statistics are now captured while the server runs, with no performance penalty.

Improved Distribution

A MagmaForwardingProxy is a "bookmark" to an object in another repository, further improving performance, scale, distribution and database administration. These have been present for some time, but have been heavily tested and improved in this release.

Improved Transparency

Transactions may now be as long as desired. In fact, transactions may even span image saves! You may start an image, connect to a Magma repository, begin a transaction, make some changes, save and exit the image (not yet having committed), reboot the image later (objects in the image are brought up to date with changes by other sessions), continue any further changes, and finally commit successfully.

Improved Operation

With remote administration, release 41 better supports headless-operation mode. The server now also keeps track of its memory consumption relative to capacity and will take action to reduce memory utilization, as necessary, before it becomes a problem (although Magma servers have always operated with a relatively low and fixed memory footprint, albeit dependent on number of clients and activity).

October 19, 2008

SmallFaces, a widget toolkit for Seaside

The crucial benefit is getting rid of the tag idea, so basically you have widget objects for the web, for which can configure visual aspects (layout, appearance) and AJAX events (using SASE). SmallFaces includes common GUI objects as TextFields, Buttons, ListBox, CheckBox, CheckBoxGroup, RadioButton, RadioButtonGroup, etc.
Web applications are growing every day, and with the explosion of the AJAX technology few years ago, the web trends move towards desktop-like applications, making a fuzzy limit between both. Those who experienced pure desktop GUI developement (and believe the markup way to do things is fine for simple user interfaces, but do not scale very well when complex applications come), will feel the SmallFaces API a second nature.
See the following page at the Squeak swiki for instructions
Spanish documentation about the project is located here

Download and Installation Info

  • Seaside and Scriptaculous
    • Phantasia (CSS) package from Monticello adding the following repository:
      location: ''
      user: ''
      password: '' 


      • Load SmallFaces-bll.1.mcz package from Monticello adding the following repository:
      location: ''
      user: ''
      password: ''
      • To see useful examples load SmallFacesExamples-bll.1.mcz package

      Tested under

      • Official Squeak 3.9
      • Damien Cassou


      • Hernan Morales Durand, Norberto Manzanos and Juan M. Burella

      October 8, 2008

      Smalltalk at the Open Faculty Congress

      At the University of La Plata (UNLP) starts the Open Faculty Congress ("Facultad Abierta" in Spanish) and there are three talks related to Smaltalk in the agenda.


      Basic course of UML 2.0
      Oct 8, 9 and 10 at 6.30 pm to 8:30 pm
      Classroom 4 ground floor - Faculty of Informatics
      More information in spanish

      Objects, Smalltalk and Technology
      Oct 8 at 2 pm Classroom 4 ground floor - Faculty of Informatics
      More information in spanish

      October 4, 2008

      Smalltalks 2008 Coding contest has started

      The Smalltalks 2008 coding contest has started. If you are interested in participating, please visit the official conference webpage at

      Go Smalltalk & Good luck!

      Sep 19th, 2008 - Claus Gittinger talk at the UBA campus

      This is a short summary of the talk given by Claus Gittinger, founder of Exept Software AG and creator of Smalltalk/X, on Friday September 19th, at University of Buenos Aires campus.
      The introduction of the talk was a presentation of Smalltalk/X, it's history and technical things which are very different from other Smalltalks.
      The motivation of making his own Smalltalk came when he read the famous Byte magazine in 1981. Since at that time it was very slow to have a byte-code interpreter, his first idea was to make something which compiles Smalltalk.
      The process to achieve this was to:
      • Take a Smalltalk file (file out format) for a class
      • Translate it to c (using stc), implementing all semantics of the original Smalltalk including contexts, blocks, etc.
      • Compile it by the c compiler, obtaining .o or .obj files
      • Make a dll with a collection of .obj files
      In 85, the Smalltalk/X system consisted of a bunch of dlls, a startup main and a runtime system dll. Also, at this stage was possible to collect other dlls and create standalone applications, without the Smalltalk development environment. In 86-87, he created a byte-code interpreter and a byte-code compiler, written in Smalltalk. In 88-89, he added a JITter, which takes byte-codes and produce machine code, on the fly, in the executing image.When starting Smalltalk/X, initially everything is compiled (via the stc) to machine code. If some methods are changed with the browser, the system will generate byte-code methods and when executing for the first time, the system will generate
      machine code methods.
      As a result, Smaltalk/X has an image but doesn't need one. Another interesting feature of Smalltalk/X is how window events are handled. Each topview and all of its subviews are grouped together in a WindowGroup, which runs on it's own process.
      All events (keyboard, mouse etc.) are read by a separate process (called the event dispatcher), which reads the event from the operating system, puts it into a corresponding event-queue for the windowgroup, and notifies the view process about the arrival of the event (which is sitting on a semaphore, waiting for this arrival).
      As a result, the hole system is not blocked by a long (or endless) operation occurring in one WindowGroup.

      Then, the main topics were related to Method Lookup, Inline Caching and Garbage Collection methods.
      Finally, Claus made a short demostration of expecco.

      Thanks to Felix Madrid (fmadrid at the google email) for this resume and the photos :-)

      Short Videos of the class

      Smalltalk/X - Garbage Collection
      Smalltalk/X - Compilers

      September 25, 2008

      Exciting News for Dolphin Users

      Object-arts announces a partnership with Lesser Software with the aim of creating the next generation of Dolphin Smalltalk called Dolphin NG Development. Great news for the clients who are working in this great environment. Here is the full announcement available at the Object-Arts website: 

      "We are pleased to announce that over the last few months we have entered into a partnership with Lesser Software with the aim of creating the Next Generation of Dolphin Smalltalk. This new version of Dolphin will be targetted towards professional software developers and will leverage the experience that Lesser Software have built up over a number of years in high performance Smalltalk virtual machines and development tools.
      Lesser Software's current product set includes LSW Vision Smalltalk, whose virtual machine retains full bytecode compatibility with the original Digitalk Visual Smalltalk Enterprise (VSE) platform. Existing VSE developers can migrate their codebase to Vision Smalltalk, usually within minutes, gaining the ability to run their applications on a fast, modern and fully supported virtual machine. 
      Similarly, as a result of the new agreement, Dolphin users will have access to the full Dolphin development environment and class library (including MVP) running on top of the Vision Smalltalk substrate. The new system will be completely source code (rather than bytecode) compatible with existing Dolphin Smalltalk X6 projects, so adopters of the new platform will instantly gain a number of key benefits:
      • Speed. The Vision VM is Just-In-Time (JIT) compiled and is FAST. The current Dolphin VM is based on a very fast interpreter. In some circumstances this has advantages over JIT compilation but if you want SPEED then JIT is the way to go. Early estimates indicate that the new Dolphin will be between 2x and 5x faster than Dolphin Professional X6.
      • Multi-threading. Currently, the Dolphin VM is single threaded (although with an ability to run external calls on separate threads). The Vision Smalltalk VM is true multi-threaded which will allow Dolphin applications to take full advantage of the modern generation of multi-processor and multi-core machines.
      • Unicode Support. Internally, the new VM is entirely based on Unicode. For many of our international customers the ability to use Unicode in their applications will be a huge benefit.
      • Smalltalk Link Libraries (SLLs). In the same way that Digitalk Smalltalk introduced the concept of SLLs, the Vision Smalltalk platform also allows Smalltalk code to be distributed as collections of small, pre-compiled units that in many ways are simailar to Windows DLLs. Dolphin Smalltalk users will be able to deploy their applications either as SLLs or fully bound into executable files as they are today.
      • 64 bit OS Support. Whilst the current Vision Smalltalk VM is 32 bit, development is underway on a full 64 bit version. Once this is ready, new Dolphin users will be able to benefit from this immediately with no additional effort.
      • Maintenance and Support. The Vision Smalltalk platform is fully supported and is being actively developed by Lesser Software. With this new way forward both existing and new Dolphin developers can be sure of a supported route into the future.
      At present, no pricing structure has been set for the new platform. However, following its release we still intend to continue to keep the current Dolphin products (DPRO and DCE) in existence. Hence, the Next Generation Dolphin environment will likely be positioned at a price point above that of the existing Dolphin Professional product.
      If you are excited as we are about the potential behind this announcement you'll probably want to learn more about when development will commence on the Next Generation product. If so please follow this link to Dolphin NG Development.
      Andy & Blair
      September 2008"

      September 16, 2008

      Claus Gittinger in Buenos Aires

      Claus Gittinger, creator of Smalltalk/X
      The Smalltalks 2008 committee are pleased to announce that next Friday September 19th at 7 pm in "Ciudad Universitaria" (University of Buenos Aires campus) Claus Gittinger is going to present a technical exposition about Smalltalk/X and a "model base testing" product called expecco.
      Also, the last Saturday September 13th, Claus Gittinger had been in a meeting of the group Smalltalking in Buenos Aires. Here you can read a blog post of Angel Lopez about the meeting where he talked about Smalltalk/X.


      The Software Architecture Group from the HPI in Potsdam announced a Subversion integration project called SqueakSVN for Squeak.

      September 10, 2008

      Andres Valloud: Maths, virtual machines & books

      Andres Valloud was born in Buenos Aires, Argentina. He has been working as Lead technical engineer at Cincom Systems. In this interview he answered some questions about the present in his job at Cincom and some questions about his recently published books.

      CS: Andrés, How did you know Smalltalk and what was your first impression?
      AV: I first learned about Smalltalk while studying mathematics in college. A math instructor, Leandro Caniglia, had found that I was also programming mathematics related stuff in things like x86 assembler, and he began insisting that I should give Smalltalk a try instead. At first I basically thought "Smalltalk what's that?", and dismissed the suggestion. But eventually he convinced me to go to his place on a Saturday afternoon. We had a 3 hour session. Within an hour I knew all my work had become obsolete. The simplicity of the language was astonishing. All the inconveniences typical of other programming languages were gone and nowhere to be seen. In fact we spent more time thinking about trees and math problems rather than about Smalltalk itself. To me this was unquestionable proof that the language was designed to help people solve problems, as opposed to forcing people to solve programming language problems on top of their original issues.

      CS: You have been working in the Smalltalk Industry for a long time and now you are working with virtual machines. How did you end up working on the lowest level of a Smalltalk environment?
      AV: I think it has to do with the orientation with which I have gone through challenges in the past, and perhaps a sprinkle of personality traits. From the beginning I didn't feel it was acceptable to take everything at face value, and rather concentrated on figuring out how things fit together as a whole on my own. This was applied to things like x86 assembler, then to Smalltalk, and perhaps the inevitable consequence is that now the process requires knowledge of the VM in order to continue.

      CS: What are the constraints when you are working at that VM level? And, what are the usual requirements?
      AV: Right now I am working on a VM that runs on 15 or so different platforms. The requirements are that the same source code should compile and run correctly on all of them, and that this implementation must provide the same visible behavior to the image. This turns out to become an unintended constraint, because it is here where you begin to see that standards look great on paper, and yet practice has all sorts of oddball and exceptional cases that must be addressed.

      CS: If you have code that run in so many platforms with their particular issues, how is a VM tested before been released?
      AV: At Cincom we have a test suite with which we test each interim build we make, on every platform. Also, there are numerous tests that verify that image functionality works as expected. Finally there is also the Cincom Smalltalk developer program, which gives customers access to weekly builds so they can be evaluated in advance.

      CS: The VM of VisualWorks has been one of the fastest in the market, what are the secrets behind this VM?
      AV: The techniques used are well known. For example, the VisualWorks VM uses a JIT approach to translate Smalltalk methods into native code. These translated methods do not have to abide by the usual C stack calling conventions, and so a lot of stack traffic is eliminated. Some primitives are also translated, and so they do not need the overhead of a C stack frame either. In addition to this, the compiled methods have polymorphic inline caches which for the most part avoid costly method lookups.

      CS: If we talk about performance, what are your recommendations and what kind of code should we avoid?
      AV: From the point of view of a Smalltalk image, arguably the number one performance offender is ifTrue:ifFalse:. It may not be evident at first sight, and perhaps it may even seem counterintuitive. However, typically what one does with ifTrue:ifFalse: is to do things like this:

      anObject hasSomeProperty
      ifTrue: [anObject doSomething]
      ifFalse: [anObject doSomethingElse]
      But how could be ifTrue:ifFalse: be a problem? Most, if not all, Smalltalks heavily optimize ifTrue:ifFalse:, so this does not look like it can be made faster. However, there is a way. The issue here is that the program is making a run time distinction that perhaps could be made a design time. In other words, if we made two classes, one for objects that have some property, and another for objects that do not have some property, then we would be able to rewrite the code above like this:

      ^self doSomething
      ^self doSomethingElse
      Once we have these methods, we can simply replace our original ifTrue:ifFalse: with a single line of code
      anObject doWhatIsAppropriate
      So we have made the ifTrue:ifFalse: disappear. Where did it go? Into a cached message lookup, which in VisualWorks will resolve to a few assembler instructions to check for the class of the receiver in a polymorphic inline cache. In other words, the code will run faster, and in addition it will better express the knowledge available to developers while modeling the problem at hand.
      Fast code does not have to be unreadable.

      CS: If someone wants to start learning about Smalltalk's virtual machines, which books and resources would you recommend to start looking at?
      AV: Personally I have found several loose resources to be useful. For example, there are presentations by people like Eliot Miranda which are available on the web. Furthermore, there are published papers that describe things like polymorphic inline caches and so on, particularly the Self papers such as the one here:

      CS: You wrote a book about hashing. Could you explain us what is the importance of the hashing in ourdaily work over a Smalltalk environment?
      AV: Hashing is a technique to handle large amounts of data which offers O(1) access time regardless of the size of the data set. In today's world of increasingly large amounts of data that applications must handle, hashing becomes very attractive because of its O(1) behavior characteristics. Consider for example the need to detect duplicate objects. One could keep a sorted list of the unique ones seen so far, and then use binary search to determine whether any object should be added to the list or classified as a duplicate. While this could be reasonably fast for moderately sized data sets, hashing can do this in constant time for each object tested, and keep doing so regardless of the number of objects seen so far. Note that sorting is not necessary either. Compared to the sorted collection approach, hashing scales significantly better and will also execute the task in considerably less time

      CS: You have written a mentoring book about Smalltalk, could you tell us a little about the motivation behind this book and who should read it?
      AV: Some of us are lucky to be mentored, but most of us will not have that opportunity because there are not many mentors in the first place. My main motivation was to write down things that I have learned from my mentors, to remove the luck factor in having access to this kind of material. I have found this knowledge invaluable, so I hope it proves useful to others too.

      If I said ... Would you answer

      I have very few dislikes, and I enjoy a variety of different cuisines from all around the world.
      Computer brand?
      Operative system?
      *nix, Mac OS/X.
      Mobile Phone?
      As simple as possible.
      Portland, Oregon, Yosemite National Park / Mammoth Lakes, no country of preference so far.
      Concrete Mathematics, by Graham, Knuth and Patashnik
      Akira Kurosawa's Dreams
      TV Series?
      I don't watch TV anymore :).
      Open Source?
      I have no strong preference one way or the other. To me, the interesting distinction is whether software is either useful or not, where its usefulness also depends on the licenses attached to it.

      September 9, 2008

      Baby IDE, based on new development paradigm

      Trygve Reenskaug wrote to the Squeak dev mailing list to announce the release of BabyIDE, an IDE which which runs on Squeak Smalltalk, and is based on his exploration of a new development paradigm, called DCI. The aim of the DCI (Data-Context-Interaction) paradigm is to minimise any gaps between the programmer's mental model of the program and the program that is actually stored and executed in the computer, by presenting system operations as networks of communicating objects.
      Here is a detailed overview:

      iSqueak, a squeak virtual machine port for the iPhone/Touch

      Squeak iPhone/Touch port is now available at Please, visit the project site and the announcement for more information. 


      August 29, 2008

      SqueakNOS boots on OLPC

      SqueakNOS now boots on OLPC

      SqueakNOS means "Squeak No Operative System". Squeak is an open, highly-portable Smalltalk-80 implementation, it runs on almost every operating system, and in bare hardware. SqueakNOS gets rid of the OS under Squeak, and implement all the functionality in Smalltalk. It can be downloaded a VMWare appliance in the SqueakNOS site to test it.

      New version of Chalten

      It's a new version uploaded to SqueakSource (for Squeak) and to the Cincom Public Repository (for Visualworks) a new release of the project called Chalten 2.0 that is an implementation of the Time Domain (not only of the Gregorian Calendar now).

      Here are some examples:

      "Create some time entities"
      August twentieth, 2008 --> Creates an instance of the gregorian Date for 20/08/2008
      August twentieth --> Creates an instance of the gregorian DayOfMonth for 20/08
      August, 2008 --> Creates an instance of the gregorian MonthOfYear for August of 2008

      "But, not only gregorian entities"
      Shaban seventeenth, 1429 --> Creates an instance of the islamic Date for 17/08/1429
      Shaban seventeenth --> Creates an instance of the islamic DayOfMonth for 17/08
      Shaban, 1429 --> Creates an instance of the islamic MonthOfYear for Shaban of 1429

      JulianAugust seventh, 2008 --> Creates an instance of the julian Date for 07/08/2008
      JulianAugust seventh --> Creates an instance of the julian DayOfMonth for 07/08
      JulianAugust, 2008 --> Creates an instance of the julian MonthOfYear for August of 2008

      Av nineteenth, 5768 --> Creates an instance of the hebrew Date for 19/05/2008
      Av nineteenth --> Creates an instance of the hebrew DayOfMonth for 19/05
      Av, 5768 --> Creates an instance of the hebrew MonthOfYear for Av of 5768

      "Converting dates between diferents calendars"
      (August twentieth, 2008) asIslamic --> Return Sha'ban 17, 1429
      (August twentieth, 2008) asHebrew --> Return Av 19, 5768
      (August twentieth, 2008) asJulian --> August 7, 2008 (julian)

      (Shaban seventeenth, 1429) asHebrew --> Return Av 19, 5768
      (JulianAugust seventh, 2008) asIslamic --> Return Sha'ban 17, 1429
      (Av nineteenth, 5768) asGregorian --> August 20, 2008 (gregorian)

      "Measuring distances"
      August twentieth, 2008 distanceTo: December thirtieth, 2008 --> Return an instance of Measure <132 days>
      Shaban seventeenth, 1429 distanceTo: Muharram second, 1430 --> Return an instance of Measure <132 days>
      Av nineteenth, 5768 distanceTo: Tevet third, 5769 --> Return an instance of Measure <132 days>

      "Also, measuring distance expressed in diferents way (calendars)"
      August twentieth, 2008 distanceTo: Tevet third, 5769 --> Return an instance of Measure <132 days>
      Shaban seventeenth, 1429 distanceTo: December thirtieth, 2008 --> Return an instance of Measure <132 days>
      Av nineteenth, 5768 distanceTo: Muharram second, 1430 --> Return an instance of Measure <132 days>

      "Collect some entities"
      (ChaltenYear number: 2008 calendar: GregorianCalendar) months
      collect: [:monthOfYear | monthOfYear lastDate] --> Returns all the last dates of the 2008 months.
      (ChaltenYear number: 2008 calendar: GregorianCalendar) dates select:
      [:date | date is: Monday] --> Returns all Mondays of 2008
      (ChaltenYear number: 5768 calendar: HebrewCalendar) dates select:
      [:date | date is: YomShabbat] --> Returns all yom shabbats of 5768

      "Let's create a filter for all dates..."
      nonWorkingDays := TimeLineFilter named: 'Non Working Days'

      "Now, we want Saturdays to be on that filter"
      nonWorkingDays addDayRule: Saturday

      "Now we want Sundays from January 1st of year 1000 to the end of time..."
      addRule: (nonWorkingDays dayRule: Sunday)
      from: (January first, 1000)
      to: TheEndOfTime

      "Now we want all July 9th since 1816 because is the Independence Day in Argentina".
      addRule: (nonWorkingDays dayOfMonthRule: July ninth)
      from: (July ninth, 1816)
      to: TheEndOfTime

      "Testing some dates..."
      nonWorkingDays includes: (July ninth, 2008) --> Returns true
      nonWorkingDays includes: (July eighth, 2008) --> Returns false
      nonWorkingDays includes: (July twelfth, 2008) --> Returns true, it is Saturday

      "But, how about to filter some like the hebrew new year day"
      nonWorkingDays addDayOfMonthRule: Tishri first
      nonWorkingDays includes: (Tishri first, 5769) --> Return true, it is the next hebrew new year
      nonWorkingDays includes: (September thirtieth, 2008) --> Return true, it is the next hebrew new year (in gregorian)

      "21/08/2008 is a Thursday"
      timespan := TimeSpan from: (August twentyfirst, 2008) duration: (48 * TimeUnits hour)
      settleDate := RelativeDate timespan: timespan using: nonWorkingDays negated

      nonWorkingDays includes: (August twentyfifth, 2008) --> Returns false because 25/08/2008, a Monday, is a working day
      settleDate absoluteDate --> Returns 25/08/2008

      "Now a new non working day is added to the filter"
      nonWorkingDays addDateRule: (August twentyfifth, 2008)
      nonWorkingDays includes: (August twentyfifth, 2008) --> Return true.

      "Now 25/08/2008, is a not working day"
      settleDate absoluteDate --> Now it returns 26/08/2008 because the filter has changed

      "Working with time zones"
      buenosAiresDateTime := TimeZonedDateTime
      dateTime: (DateTime
      date: August twentieth, 2008
      timeOfDay: (TimeOfDay hours: 19 minutes: 35))
      zone: TimeZones buenosAires.

      greenwichDateTime := TimeZonedDateTime
      dateTime: (DateTime
      date: August twentieth, 2008
      timeOfDay: (TimeOfDay hours: 22 minutes: 35))
      zone: TimeZones greenwich.

      buenosAiresDateTime = greenwichDateTime --> Return true, it is the same instant but measure in diferent zone
      buenosAiresDateTime distanceTo: greenwichDateTime --> Return a measure <0 days>, because it is the same instant

      buenosAiresDateTime := buenosAiresDateTime next: (TimeUnits hour * 3)

      buenosAiresDateTime = greenwichDateTime --> Return false, the hour is the same but the zone is different
      (buenosAiresDateTime distanceTo: greenwichDateTime)
      convertTo: TimeUnits hour --> Return a measure <-3 hours>, just the offset between zones

      ESUG 2008 Innovation Technology Awards

      The three winners of this fifth edition are:
      1. Dr Geo II by Hilaire Fernandes. Dr. Geo II is an interactive geometry framework, Morphic-based, which can be embedded and mixed with any existing Morph user interface element of the Squeak OLPC environment. It allows one to create geometric figure plus the interactive manipulation of such figure in respect with their geometric constraints. It is usable in teaching situation with students from primary or secondary level.
      2. SeaBreez by Georg Heeg eK. It's a graphical editor suite that enables to setup and maintain a complete Seaside application.
      3. iSqueak by John McIntosh, Grit Schuster and Michael Rueger. It's a clean re-implementation of the Mac OS VM for both Mac computers and iPhone/iTouch devices including a revised event handling. Based on the revised event system we introduce an extension to the morphic and tweak event handling that enables us to recognize gestures.
      The full results are on-line here.

      August 22, 2008

      AIDA/Web 6.0 beta and AIDA/Scribo 1.0 beta released

      AIDA/Web is a Smalltalk web application framework for building complex web applications with integrated Ajax support, rich collection of web components to build web pages programatically, MVC-like separation of presentation from domain, REST-like nice looking and bookmarkable url links, with integrated session and security management, a Swazoo web server and many more.

      AIDA/Web is known by its simplicity but still allows building most demanding web applications of many sorts. It has everything you need for a real web app, together with Ajax (which is not additional but integral part of Aida).

      It is also a mature one, running web apps in production since 1996. It is used in many intranet business apps from Gas billing system for all gas in Slovenia to logistics management system called e-logis and recently a CMS like system for Quality and Business process management.


      SqueakDBX: beta release for OpenDBX plugin

      A team of students from UTN (National Technological University in Argentina) co-ordinated by Estaban Lorenzano has just announced the first beta release of SqueakDBX, a package to allow Squeak to access OpenDBX functionality, so allowing users to perform relational database operations (DDL, DML and SQL) through a truly open source library. OpenDBX can interact with major database engines such as Oracle and MSSQL besides open source databases such as Postgresql and MySQL. SqueakDBX can also integrate with GLORP.
      From the release notes, the key features for this release are:
      • Tested on 3.10 and Pharo.
      • Support for Linux and OSX.
      • Proved on windows (through MinGW), but some changes in OpenDBX are still needed (next version will have full compatibility).
      • Tested on PostgreSQL, MySQL and Oracle.
      • MS SQL Server, Firebird, Interbase, SQLite, SQLite3 and Sybase tests will be available as soon as possible.
      • Transactional management.
      • Automatic conversion of resultset columns (a String) into squeak types.
      • Large objects (clob, blob, arrays, and so on) are not yet supported.
      • Special OpenDBX options: multi-statments, compression, paged results.
      • Automated database connection release on garbage collection (although manual disconnection is recommended)
      • Error handling
      Some benchmark testing has been carried out, and the performance of the drivers appears to be comparable with native drivers.
      The team are very keen to get feedback, bug reports, experiences on different platforms etc, and welcome any contributions. Sources can be download from SqueakSource (it requires FFI installed). Full documentation, installation and getting started instructions can be found at the SqueakDBX wiki page.
      This project has been selected as part of ESUG SummerTalk 2008

      Information source:
      More information in the track in the ClubSmalltalk Spanish Group

      August 17, 2008

      Why does computer-based teaching fail? by Alan Kay

      Dr. Alan Kay, a pioneer of computer science and educational technology, provides insights into the importance of good educational design - no matter how powerful your technology might be.

      Self, the movie

      The Self Language Designed for expressive power and malleability, Self combines a pure, prototype-based object model with uniform access to state and behavior. Unlike other languages, Self allows objects to inherit state and to change their patterns of inheritance dynamically.

      Content of the film

      00:00 - Title
      00:16 - Randy Smith's introduction: directness, liveness, no run/debug separation
      02:00 - Demonstration of basic Self ideas
      02:15 - objects and slots
      02:54 - methods
      03:40 - parent objects: inheritance
      04:33 - flexibility of object inheritance (vs class inheritance)
      06:08 - Morphic demonstration
      07:48 - How to change a running program (bouncing atoms)
      10:53 - Make it look like a "real" application
      15:06 - Web browser in Self
      15:37 - Mario's Smalltalk in Self (also shown is collaboration via Self)
      16:46 - Dave talks to Randy about the implementation
      19:30 - Randy's conclusions
      20:45 - Credits


      Squeak in Extremadura

      This short film shows the work in Extremadura, a rural region in the southwest of Spain, using the computer in the classroom. They use GNU Linex as the OS and Squeak as the platform to develop the educational content. The students can have the opportunity of been responsible of construction their own knowledge. This educational program has been developed by IT researchers and educators. If you want to learn more about this concept of learning, please read the work of Seymour Papert.

      August 16, 2008

      Smalltalk 80 in an old TV show like "Beyond 2000"

      Adele Goldberg presents Smalltalk in a TV show called "Beyond 2000" in the 80's. In this presentation you can see the capabilities at that time of Smalltalk. Many of the features are the same that you have today in the modern operative systems.

      The Computer Revolution Hasn't Happened Yet by Alan Kay

      OOPSLA'97 Keynote of Alan Kay, "The Computer Revolution Hasn't Happened Yet".

      August 15, 2008

      Interview with Luca Bruno, the creator of Smalltalk YX

      Luca Bruno is the mind behind the Smalltalk YX, a new free environment in the Smalltalk's world. He born the 27th august of 1988 in Paola, Italy. After discovering his work, we want to know more about Luca and his motivations. He accepted to answer some questions.

      CS: How did you know Smalltalk?
      LB: Well, I like to see new technologies and perhaps new programming languages. So I first looked for the IO programming language. I liked very much the prototype paradigm. I then opened the about page and discovered that it was inspired by Smalltalk. It's been a couple of years ago.
      CS: Which was your first Smalltalk?
      LB: My first Smalltalk version I've used was Squeak.
      CS: What was your first impression?
      LB: My first impression was made by a few questions to myself: is this language useful? why has it its own graphical environment? Why isn't such elegant and powerful language is more known to programmers and used in the world?Well all these questions have been answered themselves with the time being.
      When I've used Squeak the first time, I didn't reopen it for at least a couple of week because I didn't like it very much. After I reopened it and I've gone through reading the class library in the browser and writing some simple programs: it has impressed me then.
      CS: Are you developing with Smalltalk?
      LB: No I'm not developing with Smalltalk. There's no good environment yet to create my applications on. I've maintained SqueakGtk for a long time but I haven't created any application with it. There are several reason why I hadn't. The most important one for me is that there's no good GUI environment around, or the ones good don't have the expected VM/flexible image management.
      I'm now developing Smalltalk YX to create the most open general purpose language and hopefully create my applications with it, it's my dream.
      CS: Why did you decided to choose Smalltalk?
      LB: I choose Smalltalk because I like it, it's coherent, powerful, elegant, innovative, easy, well-structured, easy to debug, hard to create bad OOP usage. You can make what you want with Smalltalk. It's awesome how with a few syntax rules you can write good-reading and well-structured programs.
      CS: Why do you think Smalltalk is not popular?
      LB: It's popular, but not for a general purpose view point. Lots of companies are using it, and many experiments are done with it. Its technology is more used for particular environments instead.
      Another issue is the image. Developers are afraid of it, and that's normal. Using the filesystem is more secure than using a single file for everything. Starting from the compatibility ending up with the stability.
      Another serious serious _serious_ problem is: lack of demonstrating applications. Do you see any widely used applications running on users' desktop? I don't, that's a problem. It's not the lack of libraries like many people say, if you create applications using non-internal libraries programmers will see that's possible to "create" with Smalltalk.
      What I want to do with Syx is to invest creating desktop and web applications, that's much more than marketing, books, etc. IMHO.
      CS: What do you think Smalltalk has and the other tools doesn't have?
      LB: Smalltalk has the "ability" to let you write your applications the good OO way, other tools don't. Smalltalk has the "ability" to make your applications flexible and maintainable more than any other tools. It's not what Smalltalk offers, it's what Smalltalk is.
      CS: What tools do you recommend to work?
      LB: In Smalltalk? Actually only seaside.

      If I said ... Would you answer
      I usually play billiards (8 ball), beach volley, tennis and table tennis. I don't follow sport on the TV so much.
      Rock/metal old style music is needed while programming.
      Everything made in Calabria the natural way.
      Computer brand?
      Compaq AMD64
      Operative system?
      I've several partitions on my HD, I currently use Microsoft Windows XP and Debian GNU/Linux lenny/sid.
      Mobile Phone?
      Nokia 3220
      I live in Longobardi, a very very small city with lots of green, mountains and a clean sea. Though there're no people in winter I like it.
      I like war films, also japanese and chinese like "The last Samurai".
      I don't read any magazine but my RSS feeds.
      Open Source?