Smalltalk - Geschichte und Technik

Ein bisschen Technik

Smalltalk läuft auf einer virtuellen Maschine (VM) -- einem abstrakten Computer -- den man auf unterschiedlichen Plattformen implementieren kann. Ein Smalltalk-Programm wird für diesen abstrakten Computer übersetzt und ist damit unabhängig von der Zielplattform. Da die virtuelle Maschine auch die Plattform-Ressourcen abstrahiert anbietet, ist ein Smalltalk-Programm binär auf allen Plattformen mit passender virtueller Maschine lauffähig. Die Technik virtueller Maschinen kann bis auf Peter Landins SECD Machine für LISP zurückverfolgt werden, die zum Anfang der 60er Jahre entworfen wurde. Schon 1983 fügte die Smalltalk-Gruppe am PARC die Technik des JIT (just in time compilation) der virtuellen Maschine von Smalltalk hinzu, um sie auf handelsüblichen Rechnern effizient lauffähig zu machen (auf einem Motorola 68020 System). Das war die erste Implementierung eines implizit getypten, dynamisch kompilierten Systems mit später Bindung (late-binding).

Das Konzept einer virtuellen Maschine und die reine Objektorientierung von Smalltalk erlaubt eine automatische Verwaltung des Objekt-Speichers. Dazu besitzt die Smalltalk-VM einen sogenannten Garbage Collector, der selbsttätig und effizient erkennt, welche Objekte nicht mehr verwendet werden und der den von ihnen benutzten Speicher wiederverwendet. 'Generation scavenging', der erste wirklich performante Algorithmus für die Speicherverwaltung, wurde zuerst in Berkely Smalltalk implementiert und dann in die zweite Generation von virtuellen Maschinen der Firma ParcPlace Systems eingebaut. Diese Architektur ist auch heute noch in VisualWorks in Verwendung.

Was ist an Smalltalk so besonders?

Gerne wird dazu angeführt: "Smalltalk started it all". Smalltalk war die erste konsequent objektorientierte Sprache (und die zweite Sprache mit OO-Elementen nach Simula, für das die OO-Konzepte erfunden wurden). Smalltalk war Ursprung oder Katalysator für die heutigen Workstations, die Mausbedienung, Fenstersysteme, interaktive Entwicklungsumgebungen und viele Techniken wie VM und GC, die heute wie selbstverständlich von Java und C# verwendet werden. Das ist alles historisch sehr interessant und man kann dies in folgenden Quellen nachlesen:

"THE EARLY HISTORY OF SMALLTALK" by Alan C. Kay, in History of Programming
Languages, Thomas J. Bergin and Richard G. Gibson, Eds. Addison-Wesley, ISBN 0-201-89502-1.

"The Community of Smalltalk" by Adele Goldberg, in Handbook of Programming
Languages, Vol. 1. Object-Oriented Programming Languages, Peter H Salus, Ed. McMillan, ISBN 1-57870-008-6.

Adele Goldberg präsentiert Smalltalk-80.

Erklären kann man damit die Begeisterung für Smalltalk nicht. Diese liegt in den inneren Qualitäten von Smalltalk und seiner Umgebung.

Eine kurze Geschichte von Smalltalk

Smalltalk wurde am Xerox Palo Alto Research Center in den 70er- und 80er-Jahren entwickelt. Die Sprache wurde entworfen, um Verständlichkeit mit Ausdruckskraft und Flexibilität zu kombinieren. Der Einsatz an lokalen Schulen half dabei, ein System zu erschaffen, das reaktionsschnell war (Kinder werden schnell ungeduldig) und gleichzeitig Spaß bei der Bedienung machte (Kinder würden es sonst nicht benutzen!).

1988 wurde aus Xerox heraus Parcplace System gegründet, um Smalltalk kommerziell zu verwerten. Parcplace Systems verschmolz 1995 mit Digitalk zu Parcplace-Digitalk, und wurde 1997 zu ObjectShare umbenannt. 1999 wurde die VisualWorks-Technologie von Cincom aufgekauft. Dabei übernahm Cincom das ganze Engineering-Team und forcierte eine beachtliche Weiterentwicklung und Umsetzung neuer Technologien aus dem Internet-Umfeld.