|
Objektorientiertes Programmieren mit C++ und JAVA
|
|  
|
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.