Software Development

o Smalltalk
Why Smalltalk?

My main use of Smalltalk is prototyping ideas and coding for fun, although I occasionally develop useful tools for in-house use by my customers. One might ask why I do not use famous Java for this?! My answer is, that, while e.g. the statically typed Java is a nice language, it fundamentally lacks the ease that a dynamically typed language like Smalltalk offers. After coding in Smalltalk for a day and going back to e.g. Java, one wonders why there must be so much syntactic "noise" to express ones ideas.

Another thing I particularly like about Smalltalk over most other languages is the infix notation. A method like
Window openWindow("Test", 200, 300, 400, 500, true, false)
in c-style languages is written as e.g.
openWindowAt: 200@300 withSize: 400@500 grabFocus: true allowMinimizing: false..
in Smalltalk. I consider the second version much more readable.

Also, in Smalltalk you typically work in a so-called image-based environment. This means, that not only your code but also all the objects you presently worked with are saved and restored when you restart the environment. This saved me many hours of writing code just to store and restore object states in my prototyping.

Moreover, in Smalltalk your coding changes the live system on the fly thereby changing behaviour of your objects. This allows you to play with your ideas better than in any other environment I know.
Only recently SUN introduced the so-called Hot-Swap technology in their Java-VM, which allows to change a method definition while debugging. This is great stuff, but still a long way from the flexibility Smalltalk offers.


Here are my pages dedicated to Dolphin Smalltalk and Squeak Smalltalk. Have fun!