Strongtalk
# Strongtalk

Strongtalk ist eine Variante der Programmiersprache Smalltalk, die über ein optional statisches Typsystem verfügt. Auch die Sprache Strongtalk ist, vergleichbar mit Smalltalk, in ein vollständiges Programmier-Universum eingebettet. Zu diesem gehören der obligatorische Klassenbrowser, der Workspace, ein Mixins-Browser und natürlich ein Debugger. Dieses so genannte Programmier-Universum ist vergleichbar mit modernen Entwicklungsumgebungen (IDE), ist aber dennoch weitaus spezifischer, da Strongtalk nicht auf Dateiebene, sondern auf Basis eines so genannten Images arbeitet. Eine moderne IDE basiert hingegen in den meisten Fällen auf Objekten, die auf Dateisystem-Ebene abgelegt sind.

Strongtalk wurde von Urs Hölzle, einem der ursprünglichen Entwickler der Programmiersprache Self, zusammen mit anderen bekannten Experten auf diesem Gebiet wie unter anderem Lars Bak, Gilad Bracha und Robert Griesemer entwickelt. Strongtalk wird unter einer Open-Source-Lizenz zur Verfügung gestellt. Im September 2006 wurden auch die Quellen der virtuellen Maschine offengelegt.

Vergegenwärtigt man sich den Aufbau des Strongtalk Entwicklungssystems, so wird klar, dass diese Sprache viel eher als Java-Vorgänger bezeichnet werden könnte. So ist die Objekthierarchie durchgängig typisiert und das originäre Objekt ist das Objekt Object. In der Illustration ist auch zu erkennen, dass es wie in Smalltalk eine Art Klassenbrowser gibt, mittels dessen innerhalb der Objekthierarchie navigiert werden kann. Zudem veranschaulicht die Illustration den Vorgang der Instanziierung des Objektes Semaphore. Dies geschieht, ähnlich wie in einem Smalltalk-System, über die Code-Zeile:

Hier wird auf dem Klassenobjekt Semaphore die Klassenmethode new aufgerufen, die eine neue Instanz ebendieser Klasse zurückliefert. Gegenstücke zur Klassenmethode new sind beispielsweise, wie aus der Illustration zu erkennen, die Instanzmethoden signalCount und signalCount:. Sie fungieren als Getter bzw. Setter der Instanzvariablen signalCount. Dies ist die gängige Konvention in Smalltalk-Systemen.

