James Ahern, Chief Architect and Head of Engineering at Daon. He reminisces about Smalltalk, one of the original Object Oriented languages, which he used to build one of General Motors' first OO systems in Europe.
Many people in software engineering have heard about Smalltalk but few have experienced it. I had the pleasure of working with the language for two years in the mid-1990s and I have to say it was, and remains, a revelation. However 14 years after I worked with it and 30 years on from the ground breaking release of Smalltalk-80, where is it now and why did it not make it to the big time?
Smalltalk was developed at Xerox's Palo-Alto Research Center (PARC) during the late 1970s and early 1980s. By the early 1980s, Xerox PARC had a well-deserved reputation for innovation and ground-breaking research in information technology and hardware design. To give an idea of the impact of this centre, after the success of the Apple II, Steve Jobs traded $1million of Apple stock for a detailed tour of the Xerox PARC facility so he could look for the next big thing - and what an investment it was. In the words of Jobs himself:
"And they showed me really three things. But I was so blinded by the first one I didn't even really see the other two. One of the things they showed me was object orienting programming; they showed me that, but I didn't even see that. The other one they showed me was a networked computer system... they had over a hundred Alto computers all networked using email etc., etc. I didn't even see that. I was so blinded by the first thing they showed me which was the graphical user interface. I thought it was the best thing I'd ever seen in my life. Now, remember, it was very flawed, what we saw was incomplete, they'd done a bunch of things wrong. But we didn't know that at the time, but still, though, they had the germ of the idea was there and they'd done it very well and within, you know, ten minutes, it was obvious to me that all computers would work like this someday."
What he doesn't say is that the computers for the demonstrations were all running Smalltalk. It was the core technology behind the GUI, the networking and, of course, object oriented programming.
Xerox PARC and their work on Smalltalk spawned a number of companies, of which ParcPlace and Digitalk were two of the most prominent. In the late 1980s and early 1990s, these companies attempted to take Smalltalk mainstream. Smalltalk was providing graphical integrated development environments at a time when Microsoft launched Windows 2.0 (does anyone remember that?) and most programming was done on green screens. The technology was light years beyond the development technologies of that time and offered developer productivity, which was impossible with other tool chains. However, its steep learning curve and general strangeness presented significant challenges to organisations seeking to adopt it.
EDS, the company for whom I worked, had decided to invest in object oriented technology, convinced, as many others were, that it would lead to significant increases in developer productivity and the ultimate nirvana, software reuse. So our small team went through an Object Oriented boot camp, where we were exposed to the techniques of object oriented analysis and design (skills I still use today) and Smalltalk development (a skill I, regrettably, no longer use). For two wonderful years we worked with the most amazing IDE. The system on which we laboured was ultimately successful and delivered to the customer on time. In fact, the system was so successful it is still running on Smalltalk and is only now being decommissioned, seventeen years after it was first deployed.
With the rise of Windows and client server computing in the early 90s, Smalltalkers hoped that every year would be the big year for Smalltalk, the year Smalltalk would be propelled into the top tier of development languages. But that never happened - because of, in a word, Java. In 1995 Sun launched Java and the sun began to set on the hopes of Smalltalkers everywhere. While Sun's early Java implementation was slow, and its class library meagre and without an IDE, it still managed to eclipse Smalltalk as Sun's marketing muscle and dominance in the server space propelled Java into the limelight. Java could run in a browser, which added shine at a time that the Internet bubble was rapidly inflating. Java was object oriented with the syntax of C, promising C developers everywhere a path to object oriented goodness and a simpler, more forgiving alternative to C++. And finally, Sun gave Java away for free. This was the real clincher. Developers could download it, learn it and then try it out on their own on small projects at no cost other than their time.
Contrast this with the Smalltalk approach. Smalltalk itself didn't get its first web server until the late 1990s. The very strangeness of the language, in terms of syntax and environment, made it difficult for developers transitioning from C or COBOL and, finally, with a developer seat license of $3,000, it was not something that developers were going to download and try out in their spare time. Over time Smalltalk companies attempted to remedy all these limitations, but it was too late. Java had taken the high ground and Smalltalk would never claim it back.
In under three years, Sun propelled Java from a young upstart to the talk of the town, and it has since become the most important virtual machine language on the planet. The firms supporting Smalltalk downsized and merged and finally died in the wake of the Java, and subsequent .NET, tsunamis. The engineers who had worked on Smalltalk left these companies and joined Sun, Microsoft and Google, bringing with them years of experience in dealing with virtual machine technologies, advanced just in time compilation techniques and superior garbage collection algorithms. These technologies have found a home in Sun's hotspot virtual machine, Microsoft's .NET platform and the incredible speed of the Google V8 Javascript engine. So while the Smalltalk firms may have died, the language, the ideas and the technologies it spawned have not.
Smalltalk itself continues to live on in a number of incarnations; Strongtalk, Squeak, New Speak and, of course, in various Smalltalk dialects itself. It remains a niche language beloved by those who have and do use it. It is a language commonly used in academia because it removes many of the constraints of traditional languages and environments, allowing students and researchers to explore new areas of computer science without boundaries. And finally, it is a great language for those first learning to program. Thus, while Smalltalk has never set the world on fire by becoming a mainstream development language, it has both through the inspiration it provided to the likes of Steve Jobs and through the technology transfer by those who had worked on the Smalltalk Virtual Machine, had a major impact on modern computer system development.
