Titel   Inhalt   Suchen   Index   API  Go To Java 2, Zweite Auflage, Handbuch der Java-Programmierung
 <<    <     >    >>  Kapitel 1 - Was ist Java?

1.1 Historie



Am 25. Mai 2000 feierte SUN den fünften Geburtstag von Java.

Nach einer wechselhaften Vorgeschichte, dem darauffolgenden, am besten als »monumental« zu bezeichnenden Hype und ebenso vielen technischen Schwierigkeiten wie Errungenschaften verzeichnet Java ein nach wie vor steigendes Interesse in breiten Kreisen der Entwicklergemeinschaft. Bevor wir uns in den nachfolgenden Kapiteln mit den technischen Details der Sprache beschäftigen, wollen wir einen kurzen Blick auf die Entstehungsgeschichte von Java werfen.

Nach einschlägigen Berichten fing alles mit einer Mail des damals 25jährigen Programmierers Patrick Naughton an den SUN-Chef Scott McNealy an. Naughton hatte angekündigt, das Unternehmen zu verlassen, um zu Next Computer, Inc. zu gehen. Er war der Meinung, daß bei SUN einige sehr grundsätzliche Dinge nicht gut liefen. McNealy, mit dem er zusammen Eishockey spielte, forderte ihn auf, seine Kritik niederzuschreiben und ihm zusammen mit möglichen Lösungsvorschlägen zu überlassen - seien sie auch noch so gewagt.

Naughtons Mail schlug ein wie eine Bombe. In einer für SUN schwierigen Periode mit internen Diskussionen um den Kurs des Unternehmens und seiner Produkte rannte Naughton offene Türen ein. Seine Hauptkritikpunkte betrafen die nicht zeitgemäßen grafischen Oberflächen, die unübersehbare Anzahl an Programmierwerkzeugen, die hohen Kosten der Workstations und die komplizierte Anwendung der Programme. Kurz, er warf SUN vor, auf dem besten Wege zu sein, sich mehr und mehr von seinen potentiellen Kunden und Anwendern zu entfernen. Er forderte Hard- und Software, die nicht nur von Akademikern und hochspezialisierten Profis, sondern von normalen Menschen angewendet werden konnte.

Naughtons Klagen wurden erhört, und innerhalb weniger Tage wurde ein Projekt aufgesetzt, dessen Ziel es sein sollte, die nächsten großen Trends der Computer- und Softwareindustrie aufzuspüren. Naughton zog seine angedrohte Kündigung zurück und begann 1991 zusammen mit James Gosling und Mike Sheridan die Arbeit an einem geheimen, zunächst für ein Jahr finanzierten und außerhalb des regulären Unternehmens angesiedelten Vorhabens, das später den Namen Green-Projekt erhielt.

Nach anfänglichen Schwierigkeiten, die eigene Aufgabe zu definieren, entschied sich das Team dafür, einen Prototyp zur Steuerung und Integration von Geräten zu bauen, wie sie in normalen Haushalten in großer Zahl verwendet wurden (Toaster, Videorecorder, Fernseher etc.). Bestandteile dieses Projekts waren ein Betriebssystem (Green-OS), ein portabler Interpreter (Oak), ein Grafiksubsystem und diverse Hardwarekomponenten. Bis Mitte 1992 entwickelte Naughton mit seinen Kollegen ein Gerät, das etwa heutigen Palm-Computern glich und mit einer tastaturlosen grafischen Oberfläche und drahtlosen Datenübertragung zur Bedienung unterschiedlichster Geräte der Konsumelektronik verwendet werden konnte.

Das als »*7« (Star Seven) bezeichnete Gerät wurde im Herbst 1992 firmenintern präsentiert. Diese Vorstellung konnte einige der Manager - unter ihnen SUN-Mitbegründer Bill Joy und Scott McNealy - so beeindrucken, daß im November 1992 aus dem lockeren Team die Firma First Person, Inc. gegründet wurde. Mit zuletzt etwa 70 Mitarbeiten versuchte das junge Unternehmen, den Prototypen zur Serienreife zu bringen und zu vermarkten. Leider scheiterten alle Versuche, Verträge und Partnerschaften zur kommerziellen Verwendung von Star Seven unter Dach und Fach zu bringen. Nach vielen Mühen wurde die Arbeit des Unternehmens im April 1994 praktisch beendet.

Fast wäre die Geschichte von Java nun bereits zu Ende gewesen, ehe sie richtig begonnen hatte.

Bei aller Euphorie über interaktives Fernsehen und Heimelektronik hatten die Entwickler nämlich eine andere, sehr viel realere Entwicklung übersehen. Mittlerweile hatte das World Wide Web eine kritische Größe erreicht! Nachdem NCSA Mosaic als erster grafischer Web-Browser im April 1993 verfügbar war, konnte jedermann ansprechend aufbereitete Informationen im Internet ansehen und auf einfache Weise zwischen unterschiedlichen Diensten, Medien und Anbietern wechseln. Vor allem Bill Joy, der sich gelegentlich über den Stand des Green-Projekts informierte, erkannte das Potential des World Wide Web und die Bedeutung einer plattformunabhängigen Programmiersprache, mit der neben textuellen Inhalten auch Programme transportiert und ohne Installations- oder Portierungsaufwand auf einem beliebigen Zielrechner ausgeführt werden konnten.

In der Annahme, damit die Bedeutung des Internet zu stärken und auf diese Weise indirekte Verkaufsförderung für SUN-Produkte zu betreiben, beauftragte Joy Gosling und Naughton mit der Entwicklung einer »Killer-Applikation«, die dieses Potential offenlegen sollte. Während *7 dabei keine Rolle mehr spielte, wurde die Programmiersprache Oak zur Entwicklung einer ganz neuen Art von Programm verwendet. Im Herbst 1994 wurde mit ihrer Hilfe die erste Version von WebRunner fertiggestellt, einem Web-Browser, der in der Lage war, kleine Java-Programme, Applets genannt, aus dem World Wide Web zu laden und innerhalb des Browsers auszuführen.

Zu diesem Zeitpunkt war Oak, das später in Java umbenannt wurde, bereits eine relativ stabile Sprache. Sie wurde nicht nur dazu benutzt, WebRunner zu entwickeln, sondern von Arthur van Hoff, der Ende 1993 zum Team kam, zur Entwicklung des Java-Compilers selbst verwendet. Ende 1994 stand WebRunner einer kleinen Anzahl von Entwicklern zum Test zur Verfügung und konnte nicht nur diese, sondern auch die Verantwortlichen bei Sun überzeugen. Das Programm wurde nach der Umbenennung in HotJava in den nächsten Monaten stabilisiert und konnte im Mai auf der SunWorld '95 der Öffentlichkeit vorgestellt werden.

Trotz des technologischen Durchbruchs und großen Presserummels mochten sich zunächst nur wenige Anwender mit HotJava anfreunden. Der technologisch überlegene Netscape Navigator war zu diesem Zeitpunkt bereits zu stark verbreitet. So war es ein großes Glück, daß Netscape sich entschied, die Java-Technologie von Sun zu lizenzieren und in der Version 2.0 des Navigators, die im Dezember 1995 auf den Markt kam, einem breiten Publikum zur Verfügung zu stellen. Die Ankündigung dieser Fortentwicklung, die Netscape-Gründer Marc Andreessen am 23. Mai 1995 zusammen mit der öffentlichen Vorstellung von Java vortrug, wird von SUN als offizielle Geburtsstunde von Java angesehen.

Nach einigen Monaten des Betatests für Java und HotJava wurde im Januar 1996 das JDK 1.0, die erste Version des Java Development Kit, freigegeben. Bereits während der Betatestphase wurden hunderte von Applets geschrieben, die über das Internet geladen werden konnten und schon früh einen Eindruck von den Möglichkeiten der Sprache vermittelten. Kurz vor der Fertigstellung des JDK 1.0 wurde aus den verbliebenen Mitgliedern des Green-Teams die Firma JavaSoft, die von Sun mit der Weiterentwicklung von Java betraut wurde. Unter ihrem Präsidenten Alan Baratz entwickelte und pflegte JavaSoft das JDK und seine Werkzeuge und sollte fortan maßgeblich den weiteren Weg von Java bestimmen.

Tatsächlich stand die Entwicklung nun keinesfalls still, sondern nahm an Dynamik noch zu. In den folgenden Monaten bildeten sich eine Reihe von strategischen Allianzen zwischen Sun bzw. JavaSoft und vielen Großen der Branche. So wurde beispielsweise die im Mai 1996 angekündigte Komponentenarchitektur, die den Namen JavaBeans bekam, von so prominenten Firmen wie Borland, Lotus, Oracle, IBM, Netscape und Symantec unterstützt.

Im Laufe der nächsten Monate kam der »Hype« dann richtig in Fahrt, und Java wurde mit Vorschußlorbeeren überhäuft. In welcher Weise das Interesse an Java anstieg, mögen einige Kennzahlen verdeutlichen:

Nach einer Reihe von Ankündigungen im ersten Halbjahr wurden bis Ende 1996 zahlreiche Neuerungen vorgestellt. Unter ihnen waren die Datenbank-Spezifikation JDBC, die Komponentenarchitektur Beans, das Card API, HotJava Views, die »100 % Pure Java Initiative« und eine Reihe weiterer APIs. Zusätzlich kamen die ersten integrierten Entwicklungssysteme, wie Cafe und Visual Cafe von Symantec oder J++ von Microsoft, auf den Markt.

Im Dezember 1996 wurde die Version 1.1 des Java Development Kit angekündigt. Sie sollte eine Reihe von Bugs der Vorgängerversion ausmerzen und weitere Funktionalitäten bringen. Im Februar 1997 standen die ersten Betaversionen des JDK 1.1 zur Verfügung und konnten von interessierten Entwicklern heruntergeladen werden. Im März 1997 wurde HotJava 1.0 herausgegeben (alle vorigen Versionen hatten offiziell Betacharakter), und auch das Java-Betriebssystem JavaOS 1.0 wurde in diesem Monat der Öffentlichkeit vorgestellt.

Etwa zeitgleich konnte man auf der Cebit 1997 den ersten Prototypen der JavaStation, einer diskettenlosen Workstation, die ausschließlich auf Java basierte, bewundern. Mit der Ankündigung von Java-Prozessoren wie dem PicoJava eröffnete Sun die Perspektive, daß Java-Programme mittelfristig ebenso schnell laufen werden wie kompilierter C- oder C++-Code. Das für Java-Entwickler herausragende Ereignis des Jahres war die JavaOne im April 1997, die eine Vielzahl von Ankündigungen, Prototypen und Produkten hervorbrachte.

Die folgenden Monate standen für viele Entwickler und Tool-Hersteller im Zeichen der Umstellung auf die Version 1.1 des JDK. Zwar gab es bereits Ende 1997 mehr als ein Dutzend integrierte Entwicklungsumgebungen, doch Support für die Version 1.1 war längst nicht überall vorhanden. Auch die Browser-Hersteller taten sich schwer und haben erst zum Jahreswechsel 1997/98 mit den 4er Versionen ihrer Browser erste Implementierungen des JDK 1.1 vorgestellt. Bis diese einigermaßen stabil waren, vergingen weitere Monate.

Während sich 1998 die meisten Entwickler mit der Version 1.1 beschäftigten, wurde bei SUN bereits am neuen JDK 1.2 gearbeitet. Im Frühjahr 1998 stand deren erste öffentliche Version, das JDK 1.2 Beta 2, der Öffentlichkeit zur Verfügung. Wichtige Neuerungen waren die Java Foundation Classes mit dem Swing Toolset, dem Java 2D API und dem Drag-and-Drop API, das Collection-API und das Extension Framework. Daneben gab es viele weitere Verbesserungen bestehender Pakete. Nach zwei weiteren Betas, die bis zum Juli erschienen, brachte SUN im Oktober und November die »Release Candidates« 1 und 2 heraus. Anfang Dezember 1998 wurde dann schließlich die erste finale Version des JDK 1.2 zur Verfügung gestellt und im Januar 1999 in Java 2 Platform umbenannt.

Mit dem 1.2 hatte sich der Anspruch SUNs an das JDK geändert. Während es zuvor darum ging, möglichst viele Features in das JDK einzubauen, stand seit dem JDK 1.2 offiziell die Stabilität und Performance im Vordergrund. Ersteres sollte mit einem rigorosen Qualitätssicherungsprogramm erreicht werden, letzteres durch Verbesserung der virtuellen Maschine. Im März 1999 wurde der lange angekündigte HotSpot-Compiler ausgeliefert. Zwar brachte er mit seiner adaptiven Compilertechnologie, bei der interpretierte Programmteile zur Ausführungszeit in Maschinencode übersetzt werden, wenn sie nennenswert zur Laufzeit des Programms beitragen, für einige Anwendungen Geschwindigkeitsvorteile. In vielen Fällen reichte den Entwicklern und Anwendern die Performance der Java-Programme jedoch nicht aus. Insbesondere das Swing-Toolkit, die neue Grafikplattform, galt auf durchschnittlichen Arbeitsplätzen als zu träge und trug wesentlich zu dem Ruf Javas bei, für »echte« Anwendungen zu langsam zu sein.

Zunächst wurde das JDK 1.2 nur zögernd von der Industrie unterstützt. Zwar gab es auf dem PC bald 1.2-kompatible Entwicklungswerkzeuge, doch auf anderen Betriebssystemen (Macintosh, UNIX, LINUX) blieben die JDK-Portierungen bei den 1.1er Versionen stehen. Auch die Browser-Hersteller haben bis heute keine 1.2er Java-Implementierungen vorgestellt. Dies mag einerseits durch technische Schwierigkeiten begründet gewesen sein, lag aber auch an der fragwürdigen Community Source Licence von SUN. Mit dieser sollte ein offener Java-Standard etabliert werden, ohne daß SUN die Kontrolle über die Weiterentwicklung von Java verliert. Dadurch waren Unternehmen, die Weiterentwicklungen des JDK vornahmen, unter Umständen verpflichtet, diese offenzulegen bzw. unentgeltlich an SUN zu übergeben.

Nach den fehlerbereinigten Versionen 1.2.1 und 1.2.2 des JDK betrieb SUN die Weiterentwicklung des JDK unter dem Codenamen Kestrel. Mit einem neuen Garbage Collector, verbessertem Speichermanagement und einem neuen HotSpot-Compiler sollte diese Version stabiler und performanter werden als alle vorherigen. Viele kleine Verbesserungen sollten zudem bei der Swing-Oberfläche deutliche Geschwindigkeitsgewinne bringen. Die intensive Arbeit an dieser Version äußerte sich auch darin, daß alle Bugfixes des JDK 1.2.2 auf die neue Version verschoben wurden.

Im August 1999 gab es dann die erste öffentliche Betaversion des JDK 1.3. Tatsächlich schienen sich die Versprechen zu erfüllen. Bereits das Beta lief recht stabil und brachte bei der grafischen Oberfläche deutliche Geschwindigkeitsgewinne. Durch eine geänderte Initialisierung der virtuellen Maschine reduzierte sich die Startzeit von Java-Applikationen deutlich, und mit dem neuentwickelten Compiler gab es erhebliche Verbesserungen bei den Turnaround-Zeiten. Auch subjektiv liefert das JDK 1.3 den Eindruck erheblich besserer Performance. Nach drei weiteren Vorabversionen wurde im Mai 2000 die endgültige Version des JDK 1.3 für Windows ausgeliefert. Versionen für andere Betriebssysteme (namentlich SOLARIS und LINUX) sollen etwa ein Vierteljahr später folgen.

Das Committment der Industrie zum JDK 1.3 scheint beträchtlich zu sein, die SUN-Seite listet eine ganze Reihe strategischer Partnerschaften auf. Zur Überraschung aller Teilnehmer hat sogar Steve Jobs von Apple auf der diesjährigen JavaOne-Konferenz die volle und nahtlose Integration des JDK 1.3 in das Mac OS X angekündigt (die Java-Unterstützung für den Macintosh war zuvor beim JDK 1.1 stehengeblieben). So läßt sich feststellen, daß Java nach der ersten Euphorie der Versionen 1.0 und 1.1 und einer dezenten Zurückhaltung während der 1.2er Versionen mit dem JDK 1.3 auch bei den eher skeptischen Partnern in der Industrie den Durchbruch geschafft hat.

Trotz der offiziellen Umbenennung in Java 2 platform werden wir in diesem Buch meist vom JDK 1.3 sprechen, wenn die aktuelle Version gemeint ist. Das entspricht weitgehend dem üblichen Sprachgebrauch und harmoniert mit großen Teilen der offiziellen Dokumentation zum JDK. Auf die Unterschiede zwischen den drei unterschiedlichen Java 2 Plattformen, der J2SE (Java 2 Standard Edition), der J2ME (Java 2 Micro Edition) und der J2EE (Java 2 Enterprise Edition) werden wir dagegen nicht weiter eingehen. Alle Ausführungen beziehen sich auf die Standard Edition.

 Hinweis 


 Titel   Inhalt   Suchen   Index   API  Go To Java 2, Zweite Auflage, Addison Wesley, Version 2.0
 <<    <     >    >>  © 2000 Guido Krüger, http://www.gkrueger.com