JAVA? - JAVA!
von Mathias Scheurer / JUGF
Inhalt:
- Wie alles anfing...
- Die Java-Entwicklung im Überblick
- Die Sprache Java - Vor- und Nachteile
- JavaScript
- Ausblick
- Informationsquellen
Wie alles anfing - oder: wie die Eiche zum Kaffee wurde...
Java hat seinen Ursprung in den Entwicklungszirkeln der amerikanischen Firma Sun Microsystems. Sun, bisher eher bekannt für leistungsfähige High-End Computer Hardware, wollte ein Betriebssystem entwickeln, mit dem sich elekronische Haushaltsgeräte, Videorecorder, Telefone, 'Settop-Boxen' für interaktives TV, Videospiel-Konsolen, PDAs etc. steuern und programmieren ließen. Man erkannte bei Sun, daß diese prozessorgesteuerten Geräte eine zunehmend größere Rolle spielen werden. Diese Betriebssystem sollte sich ohne großen Aufwand implementieren lassen und zugleich auf den unterschiedlichsten Geräten einsetzbar - also im weitesten Sinne plattformunabhängig - sein.
Eine Projektgruppe mit dem Namen Green wurde 1990 gegründet. Diese Projektgruppe um die Herren James Gosling, Patrick Naughton und Mike Sheridan sollte den Consumer-Markt untersuchen und die Anforderungen für eine solches Betriebssystem feststellen.
Etwa zur gleichen Zeit wurde von James Gosling eine neue Programmierspache entwickelt: Oak (Eiche). Oak kann als Vorgänger von Java gesehen werden. Oak war ideal für die Consumer-Geräte der Zukunft. Oak sollte eine Programmiersprache sein, die es erlauben würde, stabile Anwendungen zu entwickeln, bei der selbst gravierende Programmier- oder Bedienfehler nicht zu einem unkontrollierten Fehlverhalten der Anwendung führten. Oak war prinzipiell ein C++ ohne Befehle zum direkten Zugriff auf die Hardware. 1992 erblickte die erste Oak-Anwendung das Licht der Welt: eine Animation mit einem kleinen Männchen namens Duke. Duke führte den Anwender durch einen virtuellen Haushalt, half bei der Programmierung des Videorecorders, navigierte von Zimmer zu Zimmer im virtuellen Haushalt etc. Das Java-Maskottchen Duke kennt (neben der dampfenden Java-Kaffetasse) inzwischen wohl jeder Java-Programmierer.
In der allgemeinen Euphorie wurde das Projektteam Green in eine eigenständige Sun-Tochter umgewandelt: First Person. First Person sollte den Kontakt zu den wichtigsten Herstellern von Haushalts- und Consumer-Geräten aufnehmen und diese von den Vorteilen von Oak überzeugen. Zu dieser Zeit versuchte Sun, Oak als Betriebssystem für Settop-Boxen für Time Warners Interaktives Fernsehen durchzusetzen. Hier bekam jedoch Konkurrent Sillicon Graphics Inc. den Zuschlag. Nun, die Industrie war wohl seinerzeit noch nicht so weit, dieses neue Konzept zu unterstützen. 1994 wurde First Person aufgelöst. Etwa in dieser Zeit entstand übrigens ein WWW-Browser namens Webrunner, der schon (von Jonathan Payne und Patrick Naughton) in Oak geschrieben war.
Doch 1995 war es soweit: Java war geboren! Wie kam es dazu? Bill Joy, einer der Mitbegründer von Sun erkannte das Potential, welches in einer sicheren, plattformunabhängigen Programmiersprache steckt. Zusammen mit zwei Leuten des Green-Projektteams, Patrick Naughton und James Gosling rettete er das Oak-Projekt mit dem Ziel, es zu einer Standardprogrammiersprache des World Wide Web zu machen. Da mit dem Namen Oak das Scheitern von First Person verknüpft war und außerdem Oak nicht als geschützter Handelsname zu verwenden war, mußte ein neuer Name gefunden werden: Java. Java ist in den Vereinigten Staaten ein Synonym für Kaffee, das Grundnahrungsmittel der Programmierer. Aus dem WWW-Browser Webrunner wurde HotJava. Java und HotJava wurden erstmals auf der SunWorld'95 der Öffentlichkeit vorgestellt. Im gleichen Jahr erschien die erste Beta des Java Developers Kit.
Innerhalb kürzester Zeit eroberte Java das World Wide Web. Dazu trug im wesentlichen die offene Politik von Sun bei. Das Java Developers Kit (JDK), inzwischen aus der Beta-Phase entlassen (aktuell: Version 1.0.2), ist Freeware und für verschiedenen Plattformen erhältlich. Java ist voll dokumentiert, die Sourcen aller Packages sind kommentiert und ebenfalls frei verfügbar.
Die Java-Entwicklung im Überblick
5. Dezember 1990 Naughton lehnt Angebot von NeXT ab und fängt mit der Arbeit einem Projekt an, welches später den Namen "Green" erhielt 15. Januar 1991 Brainstorming der Herren Joy, Bechtolsheim, Rosing, Sheridan, Gosling und Naughton ("Stealth-Project") Juni 1991 Gosling beginnt mit der Arbeit am "Oak" Interpreter, welcher Jahre später in "Java" umbenannt wurde 19. August 1991 Das "Green" - Team präsentiert den Sun Mitbegründern Scott McNealy und Bill Joy Ideen für ein einfaches Benutzer-Interface und ein grafisches System Sommer 1992 Die Hauptarbeit an Oak und seinen Bestandteilen wird erledigt 1. Oktober 1992 Wayne Rosing (von SunLabs) stößt hinzu und übernimmt das Management des Teams 15. März 1993 Das Entwicklungsteam, nun unter dem Namen "FirstPerson", beschäftigt sich mit Interaktivem Fernsehen für den ausgeschriebenen Wettbewerb von Time Warner für Ideen und Konzepte für interaktives Kabelfernsehen. April 1993 NCSA Mosaic, der erste grafische Browser für das WWW erscheint 14. Juni 1993 obwohl Time Warner versicherte, Sun würde den Zuschlag für deren Technologie für das interaktive Kabelfernsehen bekommen, erhielt Silicon Graphics (SGI) den Auftrag. Sommer 1993 Naughton vekauft die Oak Technologie an Firmen der Cosnumer Elektronik und des interaktiven Fernsehens und fliegt dabei 300.000 Meilen. August 1993 Ein Deal mit 3DO, Oak als Betriebssystem für deren Set-top-Box zu verwenden, scheitert. September 1993 Arthur Van Hoff stößt zum Team. 17. Februar 1994 FistPerson entwickelt einen Alternativplan, Oak für CD-ROMs und als Online-Multimedia Plattform zu verwenden. Dieser Plan wird bei Sun kritisch aufgenommen. 25. April 1994 Die Hälfte des FistPerson Teams wechselt zur neugegründeten Sun Tochter "Sun Interactive" Juni 1994 Das "Liveoak" - Projekt startet. Es wurde von Bill Joy gegründet, um Oak auch als Betriebssystem zu entwickeln. Juli 1994 Naughten reduziert das Ziel von "Liveoak" auf das Internet nachdem er an einem Wochenende einen rudimentären Oak-Webbrowser geschrieben hatte. 16. September 1994 Jonathan Payne und Naughton beginnen "WebRunner" zu schreiben, einen Webbrowser ähnlich Mosaic. Dieser Browser ist der Vorgänger von "HotJava" 29. September 1994 Ein HotJava Prototyp wird den Sun Managern vorgestellt. Herbst 1994 Van Hoff implementiert den Java Compiler erstmals in Java. Zuvor war dieser von Gosling in C implementiert worden. 23. Mai 1995 Sun stellt Java und HotJava erstmals auf der SunWorld 1995 der Öffentlichkeit vor. Gleichzeitig kündigt Netscape die Absicht an, Java für den WWW-Browser Netscape Navigator zu lizensieren. 21. September 1995 In New York City findet die erste (von Sun gesponserte) Java development conference statt. 25. September 1995 Sun gibt eine Allianz mit Toshiba bekannt. Ziel des gemeinsamen Projektes ist,information retrieval - Systeme zu entwickeln, die auf der Java Technologie basieren. 26. September 1995 Sunsoft kündigt eine Palette kommerzieller Java Entwicklungs-Tools an. 30. Oktober 1995 Lotus Dev. Corp., Intuit Inc., Borland Int. Inc., Macromedia Inc., und Spyglass Inc. kündigen auf der Internet World Conference in Boston am, Java zu lizensieren. Oracle kündigt seine Websystem Suite an, eine WWW-Software, die einen Java-kompatiblen Browser beinhaltet. 4. Dezember 1995 Sun und Netscape kündigen JavaScript an, eine auf Java basierende Skriptsprache, die auch für Nichtprogrammierer geeignet ist. Sun, Netscape und Silicon Graphics kündigen eine neue Software-Allianz für die Entwicklung interaktiver Internet-Werkzeuge an. Borland, Mitsubishi Electronics, Sybase und Symantec kündigen an, Java zu lizensieren. 6. Dezember 1995 IBM und Adobe lizensieren Java 7. Dezember 1995 Microsoft kündigt an, Java zu lizensieren und stellt gleichzeitig eigene Internetprodukte vor (u.a. VB Script). Die Sprache Java - Vor- und Nachteile
Features und Vorteile:
Java
- ist eine Programmiersprache
- ist einfach - weil strukturiert
- unterstützt multi-threading (eigene Klasse) - ein einzelnes Java-Programm kann verschiedene Dinge unabhängig voneinander und fortlaufend durchführen; dadurch hohe Performance z.B. für interaktive grafische Applikationen möglich
- ist sicher, da es keine direkten I/O-Zugriffe erlaubt, das Java-Runtime-System beinhaltet Mechanismen zur Abwehr von Viren
- ist objektorientiert - alles in Java ist eine Klasse, eine Methode oder ein Objekt
- ist robust, das Java-Runtime-System managt den Speicher selbständig
- hat eine automatische Speicher- und Heap-Verwaltung durch eine 'automatic garbage collection' (eigener Thread). Jedes Objekt, auf das keine Referenz mehr existiert wird automatisch gelöscht. Der Programmierer braucht sich also nicht mehr um die Freigabe von Speicherbereichen zu kümmern.
- kennt keine Pointers
- ist dynamisch, was das Runtime-System angeht. Klassen werden dann gelinkt, wenn sie benötigt werden. Sie können über das Netzwerk geladen werde, d.h. sie müssen nicht auf dem Rechner vohanden sein, der die JVM bereitstellt.
- wurde entwickelt, Anwendungen in Netzwerken zu unterstützen, neue Module können über das Netzwerk implementiert werden
- ist plattformunabhängig, Java-Code ist ein (plattformunabhängiger) Bytecode, kein Maschinencode; aufwendige Portierung auf andere Plattformen ist nicht mehr notwendig
- benötigt lediglich einen virtuellen Java-Processor, der den Bytecode interpretiert und ausführt. Diese Java Virtual Machine ist in nur ca. 200 KB Code zu implementieren. D.h., Geräte, die diese 200 KB JVM integriert haben, können Java-Programme ausführen.
- stellt standardmäßig eine Bibliothek für einheitliche Grafikfunktionen von verschiedenen Windowssystemen (Windows, X-Windows etc.) zur Verfügung, das Abstract Window Toolkit (AWT, java.awt)
- Applets sind einfach in WWW-Seiten einzubinden, können aus dem WWW geladen und ausgeführt werden
- nutzt die Ressourcen des lokalen Rechners, auf dem Java Programme ausgeführt werden
Nachteile:
- Der größte Vorteil ist auch gleichzeit ein Nachteil: die Performance ist verringert, da Java-Code vom Interpreter (der die Plattformunabhängigkeit erst möglich macht) interpretiert wird. Momentan sind Java-Applikationen ca. 20-mal langsamer, als vergleichbare Anwendungen, die in C++ geschrieben wurden
- Java beinhaltet keine Möglichkeit für template classes, wie z.B. C++. D.h. ein Object kann keine Daten eines Datentyps speichern.
- Sicherheit: das Java-Runtime-System beinhaltet zwar einen Schutz gegen Computerviren, die Software wird aber schließlich über das Netz geladen. Ein Java-Virus könnte erheblichen Schaden anrichten.
JavaScript
In Zusammenarbeit mit Netscape Inc. entwickelte Sun JavaScript. JavaScript ist eine auf Java basierende Skriptsprache für HTML-Dokumente, die auch für Nichtprogrammierer geeignet ist. JavaScript wird direkt in die HTML-Seite eingebunden. Aus diesem Grund ist der Programmcode für jedermann sichtbar und nicht zu schützen. Für kommerzielle Verwendung deshalb nur bedingt geeignet.
Ausblick
Ankündigungen diverser Unternehmen, Java zu unterstützen, beschleunigt die Entwicklung von Java. Alle major players, darunter SunSoft, Oracle, IBM, Netscape, Microsoft, SpyGlass, Borland, Symantec und MetroWerks haben angekündigt, die Java-Technologie in ihre Produkte zu integrieren bzw. Java-Entwicklungsumgebungen zu produzieren.
Java könnte einen neuen Distributionsweg für Applikationen eröffnen: das Internet.
Ein Traum für Entwickler könnte wahr werden. Mit Java ist es möglich, plattformunabhängige, einfach portierbare Software zu entwickeln. Mann stelle sich vor, ein Unternehmen muß nicht mehr für Unix, Windows, OS/2, MacOS etc. getrennt entwickeln, sondern könnte die Applikation einfach in Java schreiben. Trotzdem läuft diese Applikation auf allen Systemen, die in irgendeiner Form Java unterstützen. Die Ankuendigung von Corel, deren Office-Suite werde auf Java portiert, läßt einiges erwarten.
Java als Betriebssystem. Sun arbeitet an einem Java-Betriebsystem. Man darf gespannt sein, wie dieses aussehen wird.
Informationsquellen
- James Gosling, Henry McGilton: The Java Language Environment - A White Paper
- Patrick Naughton: The Long Strange Trip to Java, aus: The Java Handbook
- SunSoft's What's New page: http://Java.sun.com/new.html
- About Sun's Java(tm) Programming Language: http://Java.sun.com/
- Sun Developer's corner: http://Java.sun.com/devcorner.html
- Learning Java: http://Java.sun.com/starter.html
- Newsgroup about the Java language and programming: comp.lang.Java
- Deutscher JavaSoft mirror in Aachen
Für ein einfaches Java-Entwicklungssystem (hier für Windows95) wird benötigt:
- das Java Developers Kit (JDK, hier zu bekommen, Freeware )
- ein Editor, der mit langen Dateinamen umgehen kann (z.B. der Windows95 Editor) oder eine Java-IDE, z.B.: Dick Chase's Java Editor (Freeware)
- optional, aber empfehlenswert: ein WWW-Browser mit Java-Unterstützung (z.B.: der Microsoft Internet-Explorer oder der Netscape Navigator oder Communicator (für Studenten und Bildungseinrichtungen kostenlos).
Java(tm) is a trademark of Sun Microsystems Inc.
Mathias Scheurer, Mitglied der JUGF, 15.10.1996