The Smalltalk Trap
This post is also available in: English (Engels)
- Smalltalk’s fundamental flaw
- Smalltalk’s blessing – or curse?
The writing is on the wall. The signs are unmistakeable. Smalltalk is back, on the beginning of a new success journey. I will not write about why I think this is so in this blog. I want to concentrate on my opinion that, unless as a Smalltalk community we make some radical moves, this success spiral will be a spiral into death. Not hibernation, which more or less defines what happened to Smalltalk in 1995. Death. Final and irrevocable. Let me first recap the main points I want to talk about:
- we cannot currently survive a greater than 10% increase in cash flow into the Smalltalk development effort
- the Smalltalk community is it’s greatest strength and it’s greatest flaw
The price of success
Companies are feeling it, individual Smalltalk programmers, especially those with some reputation are finding out they are suddenly dramatically increasing in value. Nothing wrong with that, how could there be? Growth is the holy grail in business, success is what we all dream about. Dynamic languages, metaprogramming and reflection — suddenly our treasured properties of the Smalltalk experience have gained status on corporate and mainstream computing. We knew we had the best thing in computing, and it is getting recognised (again…). A new generation of bright and creative programmers is bringing the cool back into Smalltalk, taking it away from Java. And even Ruby. But, as many start-up and even larger companies have found out to their peril, success can kill you. And there are several factors in the Smalltalk world that will guarantee death unless they are dealt with, and dealt with now, by a concerted and combined effort that is supported by the community as a whole, individual Smalltalkers and big and small Smalltalk companies.
Smalltalk is not one thing. There are several Smalltalk dialects and development environments. In itself this is not a bad thing, but it is crippling the community to have an open source Smalltalk in Squeak, and a commercial environment in VisualWorks from Cincom, to name the two in my view most important Smalltalks around. It is crippling the community that efforts to improve interoperability, like Sport, are consistently ignored and not utilised when interoperability (such as in Seaside) is needed. I see it as a sign on the wall that well-meant efforts are bubbling up again and again to create a new Smalltalk environment (for example Syx).
I feel this must change: the Smalltalk kernel, that is the Smalltalk VM and the base Smalltalk syntax and metalevel definitions, should be placed under the umbrella of a small, preferable community-driven, group. Squeak had this group for a while, Squeak Central, with recognised leaders like Alan Kay and Dan Ingalls. While the existence of such a group in itself opens the door to politics, this cannot and should not be avoided. In the wake of success, politics will make attempts to strangle the blooming anyway, you can count on it. If greed is your motivating force, poverty will be your harvest. I will later on write on some of my ideas on how this may be managed, but I want to mention here that I think there are ways to manage politics.
The Java story has many parallels to learn from, and is currently experiencing problems that may well be signalling its downfall. But one thing Java has been able to survive, is the immense growth curve in 1995 and following years. Java did not crumble, and the main reason for this was that two (and this is important: not one) large companies, namely IBM and Sun, were massively pouring their assets into Java. Interestingly enough did IBM, while having declared allegiance to Smalltalk only a few years before (which resulted in the VisualAge suite of IBM products, all Smalltalk applications!) make this move on the corporate level already at the beginning of 1994, when Java was only in the design stage at Sun! Now I am not saying that unless we can find two large companies to pour assets into Smalltalk we will not survive the next growth spurt. In fact I will actively resist such an effort, because I think there is a better way. A 21st century way. A new way.
Smalltalk has reinvented computing, many times in fact. Smalltalk can also, in a way, reinvent the computing business. Aspects of this can be found in secondary properties of the Smalltalk experience, from which we have in the computing community as a whole, received agile processes, test-driven development, empowered teams, object oriented programming and design, to name a few. Smalltalk bigots may complain that test driven development in Java is crippled because it is not Smalltalk, but in fact it cannot be denied that the Java programming effort has immensely benefited from these Smalltalk-originated practices that are not a direct part of Smalltalk as a programming language. Which is why I name this the Smalltalk experience.
Now let’s raise this experience on to a different level: the business level. Aspects of this can be found in the Google business model. They provided a service for free that the customer wanted. They founded their financial model on the secondary aspects, the advertisement world. The search engine was the carrier wave, the advertisements income the modulation on it. In a way this is what the internet has been doing all the time. Money cannot be made by the infrastructure itself, and in fact I will advocate providing this to the world for free. But the services on it are making the difference and paying the bills. Smalltalk as an experience has for some reason attracted empowered teams, which exhibited many of the behaviours of empowered teams that result in success, often exceptional success. Alan Kay has talked about how 5-person teams like these can produce the equivalent of 500 person teams that do not have this empowerment. A business model can be harvested from Smalltalk, and in fact, although this cannot be directly traced to Smalltalk (I think this can more properly be attributed to what might be called Zeitgeist), we are already seeing this business model gathering successes all over the world.
Examples of this model can be found in the Joomla world. Joomla itself is an open source and free tool to build web sites, built itself in a dynamic (and standardised) language, PHP. Around this base (the carrier wave) has sprung up a whole ecosystem of add-ons and services (the modulation), where the money is made. But this is not a company-concentrated, multi-million dollar multinational bully making this money and driving the effort. It is a community-driven effort.
An equally valid example of this new business model is the Toyota community structure. It has been some years ago I encountered a report about the turn-over sums in the software industry, which showed that that the total of small companies made more money than the total of the large companies like Microsoft, Sun, Oracle and such. I think this distributed but massive business model should be adopted for the Smalltalk business model. We do not see this now. Smalltalkers consistently contribute “goodies” to the community for free. But these goodies have a bad track record of being maintained. By providing a business model for “goodies” we can improve this track record.
Infect the Smalltalk community
The Smalltalk community has always been very strong. The spirit of sharing, so contrasting with the C world of reinventing the wheel and the not-invented-here syndrome, has been permeating the community from the start and still is one of its main driving forces, from the start of the Smalltalk Archives hosted on the University of Urbana-Champain, one of the Smalltalk centres in the world. But the community as a whole is totally unequipped to manage the coming deluge of success.
The fact that it is fragmented is not the main flaw I think. The various mailing lists have some overlap, although not enough, and keeping up with the Squeak and the VisualWorks mailing lists alone may be asking too much from your average working day. We may certainly benefit from some kind of syndicating effort, separating environment-specific communications from Smalltalk-general stuff. But the main flaw is that there is no concertation. I want to introduce a proposal for this thing I call concertation. It is an appropriate term I think, because what we want to do is make music to rock the planet. But we will create pandemonium if there is no concertation. The only effort remotely resembling this at this moment is STIC, the Smalltalk Industry Council. But, and this should have been a sign on the wall, STIC has been stubbornly ignored by the Smalltalk community as a whole (and maybe vice-versa as well…). It has been more like a clique of Smalltalk companies, and the influx of success in these companies now and in the near future will create politic unrest in STIC that might be its downfall. And if that may not kill STIC, the lack of community support will. For this to change nothing less than a massive infection is needed. An infection with a common belief in the future, the power that Smalltalk can provide, an infectious enthusiasm that will create a synthesis where we direly need one.
The tone of voice
For a while I considered changing the tone of voice in this blog, because I usually detest cheap tricks to draw attention to blog articles by employing threatening or negative language. It is so easy to criticise and predict disasters. I decided to keep my original approach, but I want to postscript that by emphasising, yes, the problems we are facing as the Smalltalk community are quite serious, the opportunities are equally amazing. We are moving into an interesting future. Let’s be part of it.