Nochmal zum Thema Smalltalk-Implementierungen:
Ich kann mir eigentlich nicht vorstellen, dass das erwähnte Buch so viele Unterschiede aufzählt. Die Syntax von Smalltalk ist in den verschiedenen Dialekten eigentlich zu 99% identisch - es gibt sogar einen ANSI-Standard dafür. Leider ist Smalltalk ohne seine Klassenbibliothek nichts. Sobald man "ernsthaft" (mit GUIs, Datenbanken, usw.) arbeiten möchte, muss man sich auf einen Dialekt festlegen. Das ist ein bisschen so wie bei Ruby, wo man sich auch zwischen Tk, GTK, Fox, usw. als UI-Toolkit entscheiden muss. Java (und jetzt auch .NET) sind da wohl rümliche Ausnahmen, indem sie nicht nur die Sprache sondern auch die komplette Bibliothek vorgeben - und im Fall von Java entsprechend anderen Implementierungen zwingend vorschreiben.
GNU-Smalltalk ist vielleicht besser als sein Ruf. Ich hatte das vor vielen Jahren mal angeschaut und eben gerade erst festgestellt, dass die Version mittlerweile bei 2.2 ist und der Freshmeat-Seite zu urteilen sogar ein Tk-UI existiert, das ein paar Werkzeuge zeigt. Ich versuche das gerade unter cygwin zu übersetzen...
Kostenlos und open source ist Squeak. Dieses Projekt ist von den Smalltalk-Urvätern (Kay, Ingalls, ...) 1996 ins Leben gerufen worden, weil sie ihr damaliges Forschungsprojekt mit einer vertrauten Sprache realisieren wollten. Das Squeak-Image stammt damit vom Ur-Smalltalk ab, so wie es Ende der 70er gebaut wurde. Lange Zeit konnte man auch dort auch das Ur-UI bewundern, so wie es Apple dann Anfang der 80er präsentiert wurde und mit eine Inspirationsquelle für Apples Lisa- und MacIntosh-Projekt wurde (
Screenshot aus dem Jahre 2000). Inzwischen ist das UI bei Squeak durch ein (häßliches) Quietschbuntes auf Morphic (dem UI von Self) basierendes UI ersetzt, was wohl in Zukunft durch Tweak ersetzt werden soll, noch ein UI. Vielleicht merkt man an dieser kurzen Ausführung, dass Squeak eigentlich ein Werkzeug- und Experimentierkasten ist. Das Basissystem ist in den letzten 10 Jahren von etwas über 1 MB auf 20 MB gewachsen und enthält Code und Codefragmente für alles mögliche. Mich hat man vor einigen Jahren abgehängt, als ein neues Versionsverwaltungssystem eingeführt und begonnen wurde, das Image in Projekte aufzuteilen. Squeak ist sicherlich gut geeignet, um zu experimentieren, doch der Zugang ist nicht ganz einfach. Squeak ist übrigens auch die Grundlage für Kays aktuelles Forschungsprojekt:
Croquet. Squeak läuft auf allem, was denkbar ist.
Kostenlos ist ebenfalls VisualWorks in der Non-Commercial-Variante. VisualWorks ist der ursprüngliche Nachfolger von Smalltalk-80, so wie es von ParcPlace 1986 kommerzialisiert wurde. Auch VisualWorks ist ein Beweis, dass Smalltalk-Entwickler wenig Gespür für UIs haben - obwohl es ist besser geworden und wer in VisualWorks den Win95-Look einschaltet, der sieht Code, den ich damals geschrieben habe :) VisualWorks läuft auf den üblichen Plattformen: Windows, Unix, Mac.
Speziell für Windows würde ich noch
Dolphin Smalltalk empfehlen. Ebenfalls kostenlos in einer non-commercial-Version ist dies wohl die
zugänglichste Version. Die Klassenbibliothek ist sehr konsistent und das UI-Rahmenwerk ist vom Konzept nach wie vor eines besten IMHO. Es ist dem Taligent MVP-Pattern nachempfunden. Dolphin hat auch das IMHO beste "foreign function interface", es ist damit recht einfach Windows-API-Calls zu machen oder auch COM-Objekte zu bauen oder anzusprechen.
Schließen möchte ich mit einem Hinweis auf ein Smalltalk, von dem ich noch nicht so genau weiss, was ich davon halten soll:
VISTA Smalltalk, ein Smalltalk-Interpreter geschrieben in C# für .NET und speziell den Zugriff auf WPF. Der Klassenbrowser ist in guter schlechter Smalltalk-Tradition wieder häßlich wie die Nacht und ansonsten kann ich dazu noch nicht viel sagen.
Update: GST 2.2 läuft unter cygwin, aber wohl in der Kommandozeile ohne grafishes UI.
Stefan