The last 10 years working with Smalltalk, while exciting and rather fun, have not been easy.
Blair and I both "got into" Smalltalk in 1994 just at a time when it seemed that the language was about to burst onto the software scene in a big way. There had been commercial versions of Smalltalk (DigiTalk, ParcPlace, IBM) around for several years and these had been doing very well in certain market segments, especially the financial sector. However, it was only with the advent of the Pentium processor that the everyday desktop computers really had enough grunt to run Smalltalk applications. From that point on the "performance issue" of dynamic languages became a non-issue.
We started building Dolphin in 1995 and, when Java floated in on the Internet bubble later that year, our disappointment was palpable. It wasn't just that Java was getting very big, very fast and was obviously going to make it harder to sell Dolphin to the masses. It was more that, really, the designers had just missed the point. Or at the very least they had missed an opportunity. Yes, they had a virtual machine and garbage collection, which was more than C++ ever did but what about all that other stuff they could have taken from Smalltalk? What about dynamic typing? What about keyword selectors to aid readability? What about proper Reflection? What about "Everything is an object"? Heck, you couldn't even add two Integers together. It was very sad.
Then to make matters worse, the computer science academia started to be seduced by the money that was available for making Java better. Blair and I attended all of the OOPSLA conferences from 1997 up until 2004. How many papers did we see on Java garbage collection or generics? All this stuff had either been done 10 years before or shouldn't have been necessary anyway. None of it seemed to be advancing the state of computer science. During that period, Smalltalkers were a painful bunch to be around.
With the advent of .NET, I must admit we thought it was all going to change. Here was a virtual machine that was designed to run multiple languages using a common "object" model. Okay, it only ran on Windows but, hey, so does Dolphin so we weren't too unhappy. But where was all that good stuff again? Yes it's all marginally better than it was with Java but, really, writing a performant Smalltalk on top of the current CLR is just impractical.
Are things looking up? It seems that Ruby is getting a good deal of attention these days. It's a dynamic language very much like Smalltalk and has a lot to offer. It is missing a decent IDE and they retain the rather pedestrian non-keyword language syntax but, basically, it's a lot like Smalltalk under the covers. The great thing from our point of view is that, if you like Ruby you are pretty well sure to like Smalltalk so, hopefully, we're about to get a new influx of dynamic, everything is an object, programmers and that can only be a good thing for Dolphin and for computer science. It's taken 25 years but we're nearly back there.
So, maybe we are Swimming against the Tide but this is to be expected. As computer scientist Howard Aiken said, "Don't worry about people stealing your ideas. If the ideas are any good you'll have to ram them down people's throats".
Andy Bower

