Monday, 3 April 2000
"Old love doesn't rust", a Dutch saying for "Old love never dies". Years ago, way back in 1993, I had my first encounter with Mrs. Smalltalk. I must admit, she still is very pleasant company. Her image grows a bit, but well: One gets used to ugly things, and gets bored with pretty things. I did not suffer a 7 years itch yet.

Smalltalk I haven't found any ugly parts on Smalltalk yet. And her beauty does not bore me yet either, on the contrary. I still get lyrical about her pure interpretation of the Object Oriented principles. She fully encapsulates me with her open-hearted support of polymorphism. Her child-bearing hips are the origin of object that honour inheritance. So, to this Smalltalk programmer the grand OO lady is outclasses her competitors easily.

Smalltalk is as comfortable to me as old shoes, yet this old love run into some unexpected tensions, during the last week of a project. While debugging, a two dimensional Smalltalk array appeared to have just one dimension, at least it did for a first impression. I expected an array of arrays with strings:
{ {'one' 'two'} {'three'} }
but got
{'one' 'two' 'three'} (an array with strings).

With Smalltalk's polymorfistic character the difference between an array with arrays and a array with strings is very small indeed. The following two collections are almost identical to her: {'one'} en { {$o $n $e} }. Her String inherits from collection, just like her Array. Are you still with me?

As a bare minimum I expected an error message. But Madame Smalltalk did not complain, did her job, albeit with a principle punctuality that did not really please me. She did not do what I wanted, she did what I asked her. It took me about a full day to solve this OO bug.

Sigh, it is a strange love, this Smalltalk. But well, better in love with Smalltalk than:

  • share the sheets with 'Use Cases'. It's quite a boring and methodical lover as reported an OO analyst reported her practical experiences. Having seen his OO model, the rest is not surprising at all.
  • get excited by an object such as an old BMW. The Smalltalk ladylove has two big advantages above cars: She doesn't rust and doesn't die.

Till next week!

With special thanks to Antoinette Coetzee for her inspiring words.