Smalltalk-Produkte von IBM, HP und Tomcat Im Vormarsch: Die Mutter der objektorientierten Sprachen

23.09.1994

Von Markus Weyerhaeuser*

Smalltalk, das Vorbild aller objektorientierten Sprachen, gewinnt hierzulande an Ansehen. So stehen seit kurzem drei neue Entwicklungsumgebungen auf Smalltalk-Basis zur Verfuegung. Allerdings unterscheiden sich die Produkte Distributed-Smalltalk von Hewlett-Packard, Viusalage von der IBM und Smalltalk/X vom deutschen Anbieter Tomcat hinsichtlich Einsatzgebiet und Staerken voneinander.

Auf Standards setzt Hewlett-Packard bei der Erweiterung des vom Smalltalk-Lieferanten Parcplace stammenden "Visualworks" um Klassen, die die Entwicklung verteilter, objektorientierter Anwendungen erlauben. Dazu gehoert der Remote Procedure Call (RPC) der OSF. Ausserdem stellt das Unternehmen mit dem Distributed Smalltalk System eine der ersten Implementationen der Corba- Spezifikation der OMG vor.

Neben Grundfunktionen wie der Interface Definition Language (IDL), statisches und dynamisches Invocation Interface, Interface Repository, die jeder Object Request Broker (ORB) zur Verfuegung stellen muss, implementiert HP auch schon einen Teil der Object Services, die vom OMG-Konsortium erst teilweise standardisiert wurden.

Um die Entwicklung und das Testen verteilter Anwendungen zu vereinfachen, haelt das Distributed Smalltalk eine Fuelle von neuen Klassen bereit, so dass HPs Distributed Application Architecture (DAA) unterstuetzt wird. Wie die Entwickler von Smalltalk gewohnt sind, wird sowohl die Entwicklungsumgebung, als auch die Laufzeitumgebung fuer diese verteilten Anwendungen mitgeliefert.

Waehrend sich HP auf die Implementation eines ORB konzentrierte, geht die IBM mit "Visualage" einen anderen Weg. Hier soll eine Technik aufgebaut werden, die in ein neues Zeitalter der Programmierung - dem visuellen Zeitalter - fuehren soll. Die Vision beruht auf der Vorstellung, dass Anwendungen nicht mehr in der traditionellen Art und Weise programmiert, sondern aus vorgefertigten Teilen zusammengesetzt werden. Diesem Konzept entsprechend wird Visualage standardmaessig mit vorgefertigten Bausteinen aus den unterschiedlichsten Bereichen (etwa Datenbank, Transaktionen, GUI, Multimedia) ausgeliefert.

Neue Bausteine koennen in dem integrierten Smalltalk, das eine Eigenentwicklung von IBM ist, geschrieben werden. Wie die in Visualage enthaltenen Bausteine lassen sich diese dann in das System integrieren. Selbst in C oder Cobol geschriebene Bausteine werden von Visualage trotz der prozeduralen Sprachen wie echte Objekte behandelt. Neben der Einplatzversion bietet IBM noch eine mehrplatzfaehige Entwicklungsumgebung fuer das Arbeiten im Team an. Dadurch kann auf Klassen und Bausteine in einer zentralen Bibliothek ueber das LAN zugegriffen werden.

Ein deutscher Anbieter haelt mit

Eine neue Art der Smalltalk-Implementierung hat der deutsche Anbieter Tomcat mit "Smalltalk/X" gewaehlt. Bisherige Smalltalk-Systeme basieren mehr oder weniger auf einer Art Interpreter. Dadurch beschleunigt sich der Entwicklungsprozess ganz enorm. Zur Laufzeit wirkt dieses Verfahren jedoch als Bremser.

Smalltalk/X loest dieses Problem, indem vorhandene Smalltalk- Klassen von einem mitgeliefertem Compiler in C-Code uebersetzt werden. Mit einem ueblichen ANSI-C-Compiler kann der erzeugte C Code uebersetzt und mit beliebigen anderen Modulen zu einem ausfuehrbarem Programm gebunden werden.

Diese Methode hat neben der hoeheren Ablaufgeschwindigkeit den Vorteil, dass Anwendungen nun nicht mehr nur im Quellcode oder in einem Image ausgeliefert werden koennen, sondern auch in einer binaeren Form, so wie man dies auch von traditionellen Sprachen gewohnt ist.

Obwohl Smalltalk/X - wie auch andere Smalltalk-Implementationen - eine komplette Entwicklungsumgebung zur Verfuegung stellt, koennen Klassen mit einem einfachen Editor erstellt und von dem Smalltalk- Compiler uebersetzt werden. Im Gegensatz zu C++- Klassenbibliotheken, fuer deren Nutzung mindestens die Header- Dateien zur Verfuegung stehen muessen, ist die Wiederverwendung der mit Smalltalk/X entwickelten Klassen voellig unabhaengig vom Quelltext. Auch soll das Bilden von Subklassen und das Hinzufuegen von Methoden in bereits kompilierte Klassen moeglich sein.