Axel Rogat
Objektorientiertes Programmieren mit C++ und JAVA
 
20.7: Standard-Algorithmen Kapitel 21 21.2: JAVA und C++ 
 
  21.1 Zur Geschichte von JAVA  
 

Die Ursprünge von JAVA liegen in einer Entwicklergruppe bei Sun Microsystems, die 1990 begannen, eine neue Rechnerumgebung (" Green") zu entwickeln, die von jedermann einfach zu benutzen sein sollte. Es wurde dabei nicht nur an Rechner im eigentlichen Sinn gedacht, sondern auch an andere Geräte wie Videorecorder, Alarmanlagen und Toaster, die mittels "Bytestreams" miteinander kommunizieren sollten. Die Umgebung sollte vollständig portabel auf beliebige Hardwaresysteme sein, um die Palette vernetzbarer Komponenten nicht einzuschränken.

Daß die Sprache interpretiert und nicht compiliert werden würde, war wegen der geplanten Plattformunabhängigkeit von vornherein klar. Die Bytestreams des ersten Entwurfs überlebten dann als "Bytecode", dem Zwischencode, der vom JAVA-Compiler erzeugt wird, und der auf der Zielmaschine dann zur Laufzeit von einem JAVA-Interpreter interpretiert wird.

Einer der Entwickler bei Sun, Patrick Naughton, begann mit der Entwicklung eines entsprechenden Controllers für die Geräte, die man im Auge hatte. Ein anderer, James Gosling, versuchte zunächst, C++ behutsam für diese Zwecke zu erweitern.

Gosling stieß dabei allerdings auf einige Probleme, die ihn letztlich dazu bewogen, eine Kompatibilität aufzugeben. Einige Aspekte wie Speicherbehandlung sind auf der unteren Ebene doch so hardwareabhängig, daß sie nicht in das geplante System paßten. Darüber hinaus sind für ein so verteiltes System wie das geplante völlige Abkapselung und normierte Schnittstellen notwendig, die durch C++ nicht erzwungen werden. Außerdem macht eine Änderung in einer C++-Klasse eventuell eine Neukompilation sehr vieler anderer Klassen erforderlich, was im Hinblick auf die Verteilung auf verschiedene Hardwarekomponenten nicht denkbar war.

Als erstes eliminierte Gosling daher jegliche Pointer und die gesamte explizite Speicherverwaltung aus der Sprache. Speichervergabe und -freigabe wurde in die Hände des Laufzeitsystems gelegt, das über verwendeten und nicht mehr verwendeten Speicher Buch führen muß und von Zeit zu Zeit aufräumt ("garbage collection").

Referenzen zwischen verschiedenen Klassen sollten außerdem nicht mehr zur Compilationszeit aufgelöst werden, sondern zur Laufzeit, wenn eine Referenz das erste Mal benötigt wird. Damit entfällt bei Änderung einer Klasse der Zwang zur Neukompilation irgendeiner verwandten oder benutzten Klasse.

Es fanden einige Zeit Verhandlungen mit Hardwareherstellern der entsprechenden Geräte statt, es kam aber zu keinem Abschluß. Erst 1994 kam auf Anregung anderer Teams bei Sun die Verbindung des Systems mit dem Internet zustande. Green hatte zwischenzeitlich Oak geheißen (nach der Eiche vor Goslings Fenster) und wurde nun in JAVA umgetauft (nach dem Lieblingsgetränk des Entwicklerteams).

James Gosling erweiterte die Sprache um Internetunterstützung, und Patrick Naughton entwarf eine passende Benutzerschnittstelle -- den Web-Browser HotJava mit eingebautem JAVA-Interpreter, der ab 1995 frei über das Netz vertrieben wurde. Die Verbindung von JAVA mit Internet-Seiten wurde über die sogenannten Applets hergestellt, JAVA-Programmen, die beispielsweise für die grafische Gestaltung eines Teils einer HTML-Seite verantwortlich sind, bei Bedarf auf den Rechner des Benutzers geladen und dort ausgeführt werden.

Einen bedeutsamen Schub erhielt die Verbreitung von JAVA im August 1995, als der Browser Netscape in der Version 2.0 ausgeliefert wurde, mit eingebautem JAVA-Interpreter für Applets.

 
20.7: Standard-Algorithmen Startseite 21.2: JAVA und C++ 
 

© 1998 Axel Rogat