<< April 1, 2007 | Home | April 3, 2007 >>

Crazy Sensible Smalltalk

Recently I've had the good fortune to be exposed to Blain Buxton, a long time Smalltalker. Initial exposure to Smalltalkers can be rather confusing. At first you think you understand them, after all they are speaking of an object oriented language. Then utter confusion, they are not talking about a language so much as a whole world. Stange talk of 'messages' and 'images' and crazy talk of changing objects on the fly without restarting anything. In fact, not even having the concept of an application to restart. Not saving files. Files? They don't even exist!

A whole parallel computing universe that I, having been on a C/C++/Java path, would not have been exposed to. After some digging and reading, and after a nice demonstration using Squeak, I am starting to understand things and want to be in this lively Smalltalk world. I also see how terminology has been misused. The very word 'method' is too often spoken of as something 'like a function but in an object'. Odd that the meaning could become so twisted: method, aka, process, plan, system, strategy ... algorithm! The misused phrase 'calling a method' when it really is 'executing a method'. Small and perhaps trivial things to some, but for me, my perception has changed. How nice after years of programming to have a few small ideas force a huge paradigm shift.

A while back when I used Python, the dynamic nature was very nice. And now that I am enjoying Groovy, I am enjoying crafting code more than ever. But the feeling that something is missing has always been with me. I created various hacks to auto reload code as I created it. I even started on a hack to have a magic metaclass reload objects on the fly. But hacks are hacks. Not matter what the hack is, the environment is still dead. And when debugging Groovy, it is rare when I can get away with changing a bit of code without having to restart my application. Countless hours and days lost due to restarting applications and having to get back in the flow of things.

What to do? For one learn more - Design Principles Behind Smalltalk is a very easy but thought provoking read. What else is to be done? Well, Java is now open source ... anyone for hacking 250k lines of C++ ?