Whenever anybody brings up the subject of creating software in a graphical environment, Smalltalk inevitably comes up. Since I’ve been publishing lots lately about such environments, I’ve been hearing lots of talk about Smalltalk, too. The most common response I hear is something along the lines of
You want a graphical environment? Well kid, we tried that with Smalltalk years ago and it failed, so it’s hopeless.
Outside of some select financial markets, Smalltalk is not used much for professional software development, but Smalltalk didn’t fail. In order to fail, a technology must attempt, but remain unsuccessful at achieving its goals. But when developers grunt that “Smalltalk failed”, they are saying, unaware of it themselves, that Smalltalk has failed for their goals. The goal of Smalltalk, as we’ll see, wasn’t really so much a goal as it was a vision, one that is still successfully being followed to this day.
There is a failure
But the failure is that of the software development community at large to do their research and to understand technologies through the lens of their creators instead trying to look at history in today’s terms.
The common gripes against Smalltalk are that it’s an image-based environment, which doesn’t abide well to source control management, and that these images are large and cumbersome for distribution and sharing. It’s true, a large image-based memory dump doesn’t work too well with Git, and on the whole Smalltalk doesn’t fit too well with our professional software development norms.
But it should be plain to anyone who’s done even the slightest amount of research on the topic that Smalltalk was never intended to be a professional software development environment. For a brief history, see Alan Kay’s Early History of Smalltalk, John Markoff’s What the Dormouse Said or Michael Hiltzik’s Dealers of Lightning. Although Xerox may have attempted to push Smalltalk as a professional tool after the release of Smalltalk 80, it’s obvious from the literature this was not the original intent of Smalltalk’s creators in its formative years during PARC.
A Personal Computer for Children of All Ages
The genesis of Smalltalk, its raison d’être, was to be the software running on Alan Kay’s Dynabook vision. In short, Alan saw the computer as a personal, dynamic medium for learning, creativity, and expression, and created the concept of the Dynabook to pursue that vision. He knew the ways the printing press and literacy revolutionized the modern world, and imagined what a book would be like if it had all the brilliance of a dynamic computer behind it.
Smalltalk was not then designed as a way for professional software development to take place, but instead as a general purpose environment in which “children of all ages” could think and reason in a dynamic environment. Smalltalk never started out with an explicit goal, but was instead a vehicle to what’s next on the way to the Dynabook vision.
In this regard, Smalltalk was quite successful. As a general professional development environment, Smalltalk is not the best, but as a language designed to create a dynamic medium of expression, Smalltalk was and is highly successful. See Alan give a demo of a modern, Smalltalk-based system for an idea how simple it is for a child to work with powerful and meaningful tools.
Smalltalk and its descendants are far from perfect. They represent but one lineage of tools created with the Dynabook vision in mind, but they of course do not have to be the final say in expressive, dynamic media for a new generation. But whether you’re chasing that vision or just trying to understand Smalltalk as a development tool, it’s crucial to not look at it as how it fails at your job, but how your job isn’t what it’s trying to achieve in the first place.