Open Source im professionellen Einsatz
Linux-Magazin 04/2004

Objektorientiertes Programmieren mit Smalltalk

Nachrichten-Zustellung

Smalltalk ist rein objektorientiert und Vorbild für neuere Entwicklungen wie Objective-C oder Ruby. Als Grundelemente dienen Objekte und Nachrichten, mitgelieferte Klassen bestimmen den Funktionsumfang. Der Artikel stellt zwei Implementierungen vor, die Einsteigern und Profis gerecht werden.

438

Scheinbar neuartige Konzepte der objektorientierten Programmierung stammen häufig aus der Smalltalk-Welt. Obwohl Firmen damit durchaus professionelle Software schreiben, führt die Sprache ein Nischendasein. Dabei eignet sich Smalltalk gut für Einsteiger, denn sie vermittelt die objektorientierte Lehre in Reinkultur. Alle Smalltalk-Implementierungen bringen eine Vielzahl von Klassen mit, die der Programmierer für eigene Anwendungen erweitert.

Sprache mit System

Die meisten Smalltalk-Systeme sind Entwicklungsumgebungen mit vielen Komponenten wie einem Workspace zur Eingabe und zum interaktiven Test, einem Klassenbrowser und noch einigem mehr. In diesem Artikel kommen das freie Squeak[1] und Visual Age Smalltalk von IBM zum Einsatz. Letzteres gibt es als Trial-Version[2] zum Download. Der Einstieg ist aber nicht ganz einfach: Das System ist für große Entwicklerteams ausgelegt und unterstützt verteiltes Entwickeln mit vielen Usern. Entsprechend viele Optionen bringt die Entwicklungsumgebung mit, die beinahe einen eigenen Systemverwalter erfordert.

IBMs Smalltalk ist stark auf Business-Applikationen ausgelegt und besitzt für den professionellen Bereich ein schier unerschöpfliches Potenzial. Für erste Schritte eignet sich Squeak besser, da es weniger komplex ist und sich schon die Installation einfacher gestaltet. Squeaks GUI ist zwar textorientiert, Applikationen können aber auch eine Grafikbibliothek (für so genannte Morphs) benutzen (siehe Abbildung 1).

Abbildung 1: Transcript-Fenster, Workspace und Klassenbrowser auf Squeaks bunter Oberfläche.

Andere Implementierungen, teils Open Source, teils proprietär, sind Cincom Smalltalk[3], Smalltalk/X[4] oder Little Smalltalk[5]. Auch das GNU-Projekt führt einen eigenen Smalltalk-Compiler, allerdings ohne grafische Oberfläche. Weitere Implementierungen finden sich in den Smalltalk-FAQ[6].

Objekte überall

Smalltalk ist strikt objektorientiert, im Gegensatz zu Sprachen wie C++ und Java, die auch nicht objektorientierte Elemente besitzen. Es gibt zwei Standards, die den Sprachumfang festlegen: Smalltalk-80 und den neueren Ansi-Standard. Squeak erfüllt nur den ersten, aber es gibt Patches, die es Ansi-kompatibel machen. IBMs Produkt dagegen ist ein Ansi-Smalltalk.

Jede Entität in Smalltalk ist ein Objekt und alle Objekte sind Elemente einer Klasse. Die Vererbungshierarchie beginnt bei der Klasse »Object«. Prozeduren und Funktionen heißen in der Smalltalk-Welt Meldungen (Messages). Jedes Objekt kann Meldungen erhalten oder versenden. Im Code steht zuerst der Empfänger, also das Objekt, und dann die Nachricht:

Objekt Meldung


In Smalltalk geben alle Nachrichten ein Objekt zurück, das wiederum Empfänger einer Nachricht sein kann. Es ergeben sich Messagekaskaden, die auch von funktionalen Programmiersprachen bekannt sind.

Der Smalltalk-Programmierer gibt seinen Code im so genannten Workspace ein, der ähnlich funktioniert wie eine Shell, allerdings nicht zeilenorientiert: egal wo der eingegebene Smalltalk-Code steht, er ist beispielsweise mit einem Mausklick ausführbar. Damit lassen sich an jeder Stelle Smalltalk-Ausdrücke auswerten, ausführen, anhalten oder debuggen. Ausgaben erfolgen auf dem Transcript, einem speziellen Ausgabefenster.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Schicke Klassiker

    Die Programmiersprachen Lisp und Smalltalk haben schon einige Jahrzehnte auf dem Buckel. Doch dank engagierter Communitys glänzen sie mit modernen Bibliotheken. Beim Umsortieren von Fußnoten und vor allem bei der Webprogrammierung zeigen sie, was in ihnen steckt.

  • Pharo

    Das Open-Source-Projekt Pharo modernisiert den Programmierklassiker Smalltalk. Die aktuelle Version 4.0 der Programmierumgebung, die in einer Smalltalk-VM haust, überzeugt durch eine minimalistische Syntax und die ausgereifte IDE mit sinnvoller Benutzerführung.

  • IBM gibt Roar-VM für Multicore-CPUs frei

    Die virtuelle Maschine des Squeak-Smalltalk wurde für Multicore-Prozessoren optimiert und soll in Zukunft für bis zu 1000 Cores skalieren.

  • Siegen lernen

    C# knüpft nach Meinung vieler erfolgreich an die Fortschritte von Java gegenüber C++ an. Mit der kommenden Mono-2.0-Release schließt der freie Port der Dotnet-Umgebung zum C#-Standard 3.0 auf, sodass die Sprache auch unter Linux zur interessanten C++- und Java-Alternative wird.

  • ABC-Schütze

    C zählt trotz bekannter Probleme zu den populärsten Programmiersprachen. Eine der jüngeren Bewerberinnen um die Nachfolge ist D: Objektorientiert, inklusive Garbage Collection und Unit-Test-Funktionalität schleppt diese Sprache weit weniger Ballast mit sich herum als etwa C++.

comments powered by Disqus

Ausgabe 07/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.