From Smalltalk to Slate, Io or Oz?

There are small teams currently at work on three projects: Strongtalk, Slate and Io. Strongtalk shares an important idea with Cecil and Oz: evolve from loose typing to stronger typing. Not evolve in the sense in which LiveScript/Javascript is evolving into ActionScript; rather evolve during the course of the development of a framework, architecture, library or software prototype from less stringent to more stringent typing. It has begin called ‘exploratory programming’. In Oz it is part of multi-paradigm programming.

Slate and Io are an effort to see what JavaScript could have been: a re-think of Self. The sytax of early Smalltalk evolved, but Io has adopted much of the syntax of Smalltalk-80 while not being class-based as is Smalltalk. Io is prototype-based, as is JavaScript. But Io is also closer to Lisp and Act1 in having no statements and having actor-based concurrency.

Given the option of Oz and Io, what will Slate be able to offer? While there is activity on the Slate mail list, there has been no annouced release in almost 24 months and nothing new posted to the home page in almost 12 months (as of mid-July, 2007.)

The status of Dylan, which is part of the inspiration for Slate, looks equally worrisome. A language such as Cecil/Diesel has the benefit of being embedded in an academic research program. Like Diesel with Whirlwind and much Like Rebol, Slate looks to overcome the separation of language and operating environment. It was part of the original vision of Smalltalk and persists in the Croquet project.

Slate aims to re-work Morphic, something which has been an issue in Squeak. Judging from the progress of Pollock in Cincom Smalltalk, these are major undertakings. Something similar is transpiring in the making of Rebol3.

The OpenStep environment keeps Objective-C alive as a Smalltalk-inspired language. Seaside and Croquet seem to be major inspirations to the very active Squeak Smalltalk community. The Io group is very active in daily IRC and in producing regular releases. What is worrisome is that the major players in the promotion and marketing of programming langauges have ties to operating systems and seem unlikely to embrace language projects which rethink the nature and role of the OS. Just consider the fate of Hermes at IBM.

On the VM side, the Parrot project seems to move along slow and steady. It sometimes seems that efforts are being duplicated. What prevents the Io team and the Slate team from merging?
If you look at the Oz/Alice situation, with Alice based on ML but able to run Oz code, you wonder about the wisdom of libraries over framework. Slate has opted for libraries.

On of the things that we have learned is the need to unlearn what we were taught as Smalltalkers. We were taught to look at the existing libraries. The important ones for the daily use of the developer are deep hierarchies, such as Collections and Windows. A GUI library can be a deep hierarchy of classes. Most application code should not be. And delving into the library meant that many projects sealed their fate by extending base classes in implementation X to such an extent that the application had no future in implementation Y. Or failing to maintain a clear separation of GUI and application logic so that a legacy fat-client could not live on as a unix server process or an NT Service. The experts on re-use saw a great deal of code never re-used.

Smalltalkers utterly ridiculed VisualBasic and failed to see that composition trumps inheritance. But the big lesson was that OOP is not class-based or inheritance based. What counts is not a model, but the messaging and the transaction. Joe Armstrong speaks of concurrency -orientation.

There are major financial institutions which continue to leverage Smalltalk for competitive advantage. Some have seen .NET and J2EE projects fail to meet time, budget and or feature objectives. But it is likely that we will see Erlang continue in telecom circuit provisioning when Smalltalk has fallen into disuse. So if a major corporation looked to throw its weight behind a language, why would it choose Slate or Io over Oz or Alice?

It would seem that neither Apple nor Disney ever got seriously behind Smalltalk. SUN sat on Strongtalk and Self and only recently released the code. SUN also gave us the gift of a mis-named Self called ‘JavaScript’. Apple ceased work on Dylan in the same year that MIT set to work on Curl.

Corporations continue to back languages which are not of their own creation. Sumisho Corp is now behind Curl. Cincom backs at least two of the three Smalltalk implementations which it purchased: VisualWorks and Enfin/ObjectStudio. On a much smaller scale, Instantiations, the people with the GWT Eclipse plugin, now supports IBM VisualAge Smalltalk. In some cases, but not all, the company was inheriting a customer base with licensing fees.

A major sponsor would likely look to see some economies achieved with a re-grouping of VM teams and a language teams. In that context, candidate languages such as Io and Slate would surely choose to merge forces to obtain funding.

The emergence of Io is fascinating. I find it as irresistible as Oz. But for immediate results in practical, secure web environments for business, I find myself drawn to Curl and to Rebol.

If you have the time, the inclination and the know-how, consider contributing to one of these small teams: Strongtalk, Slate or Io. Whether your 9-to-5 immerses you in C# or java, one of these, or a rich language such as Oz, are sure to pay dividends in how you think about a problematic interface, framework or algorithm at your day-job. And if you are a major corp looking for a core language for a strategic web framework or architecture …

Leave a Reply

You must be logged in to post a comment.