Attributes of Smalltalk
As many of the Smalltalk community know, Smalltalk was originally designed to be a multi-headed beast for the Xerox Alto and other personal computers incubated at the Learning Research Group at Xerox:
- operating system
- development environment
But, of course since it all was Smalltalk, there were quite a few differences with “modern” operating systems and all such, no matter if we are talking Microsoft Windows here or Linux. The entire environment consisted of objects that were (and still are on modern Smalltalk environments, though most run as good citizens on top of operating systems) OPEN.
Open in the Smalltalk sense has quite a different meaning than what developers usually see as “open”. Since the Smalltalk object space includes the entire and mature development environment, open here really means open : all objects can be accessed through a full meta-layer, viewed (inspected) and modified from within the inspectors or browsers. Which themselves are objects and accessible as such. Opening a browser on an object can be as simple as opening a text editor and typing:
1 object browse
This would open up access to the class definition and method definitions of the object, while viewing objects from the inspectors would give access to the inner structure of the object.
Apart from a set of so-called primitives, which access the vm layer that connects the Smalltalk world of objects with the OS or the hardware, all these objects can be accessed in a trivial way, without leaving the environment, using fully integrated tools, and open for play and experiment.
Smalltalk as a language is, though much criticised by “real” computer programmers because it is so different from the esoteric syntax they have gotten used to, simple to the extreme. So simple in fact that children (as long as they have not been polluted by Basic or such) have no problems mastering it.
I make a brief point of this, because it is essential to have at least basic understanding of these attributes of Smalltalk for the next argument for the new, but in a way old, future of Smalltalk.
The case for openness
We live in a period of great changes. The way computing is embedded in society is undergoing fundamental changes. The most important one in my view is that it is moving from a select group of computer-savvy users to society as a whole. And that these large masses of users are using the power of the computer in new and unpredictable ways, which I usually condense to the “rise of the hive mind”, or the rise of a gigantic nervous system connecting humans in a way that is unprecedented (but not without context, because we humans are network beings by nature: communication, using language and later writing, is what defines our humanity in the first place).
For the further evolution of this new thing, proprietary ownership, and closedness using licenses or a complexity that only makes access possible for trained (and through that, in a way, brainwashed) professionals, is anathema. I will not repeat the arguments here though to clear the morass of current debate I most certainly will endeavour to write an article on the subject.
That we need open platforms, to foster faster change and evolution, to create adapting systems, to be able to use these systems are aids in learning, communication, and play, is something that has been argued in many places by many people. That precisely the current state of the toolset most people use is counter-productive to that goal is often touched upon but hardly ever taken to its logical conclusion. In that sense I would argue that Microsoft Windows is not much different from Ubuntu Linux: both are totally closed for non-professionals. The development cycle is disjunct from the runtime environment. Code is different from the living thing.
Back to the future
Smalltalk started out as this integrated thing, a hardware/software marriage that was opened up for children to play with. One of the first graphical user interface applications, MacPaint, was basically created by children to enable them to make drawings (the Cookie Monster from Sesame Street being a famous example). Built by children using the Smalltalk system.
Smalltalk still is that. The Squeak and OpenCroquet community is actively involved in education, attracting children to play with and in it. The eToys environment that is on every OLPC distributed to millions of children in poor areas is a Squeak application. It is used to play with, but more importantly, to learn with.
But that is not enough. Smalltalk should look back to its rich history of now more than 30 years, and decide that the time to play is over. It is time to take its rightful place, to play the role it was designed to play from its very conception in the Xerox labs.
What we should start to work on is to get the Smalltalk system on every device. We should start making and distributing the Smalltalk system to computers, mobile devices, embedded devices, not only running on top of operating systems owned by companies or esoteric priesthoods but directly on the hardware. We should start hijacking the hardware, we have the only environment I know of capable of doing that.
In the process we should evolve the Smalltalk system itself also, of course. The community is active and has always attracted the best minds. But it should be more active, and attract many many many more people. Smalltalk should rise from its smug slumber, and offer the world the only viable alternative for a real future of computing. This is the year of Smalltalk. We are back.