Java und Javascript

Java erfreut sich auf vielen Plattformen großer Beliebtheit. So wird Java von großen Firmen wie IBM, Microsoft, Netscape, Lotus und unzähligen anderen eingesetzt, was die Bedeutung von Java gerade auch für die Zukunft erahnen lässt.

Grund genug, um Ihnen mit diesem Artikel schon mal den Mund wäßrig zu machen, denn vielleicht ist Java genau die richtige Programmiersprache für Sie. Bleibt zu hoffen, dass ein Java-Port für den ST nicht mehr zu lange auf sich warten läßt.

Java History

Java ist eine noch sehr junge Programmiersprache, deren Wurzeln im Jahr 1990 liegen. Zu der Zeit hat die Firma Sun Microsystems ein Team gegründet, welches ein plattformunabhängiges Betriebssystem für unterschiedliche elektronische Geräte vom Computer bis zum Mikrowellenherd entwickeln sollte. Als Basis dafür wurde eine plattformunabhängige, objektorientierte Programmiersprache, die damals den Namen Oak (Object Application Kernel) erhielt. Gerüchten zufolge geht der Name aber auf die Phantasielosigkeit des Entwicklers James Gosling zurück, der beim Nachdenken über einen angemessenen Namen aus seinem Bürofenster schaute und dort eine dicke Eiche erblickte. Kurz nach der Fertigstellung und einer erfolgreichen Präsentation ist Oak allerdings wieder in der Versenkung verschwunden. Erst 1995, als Oak zu einer Intemetsprache umfunktioniert wurde, stellte sich die nötige Akzeptanz ein. Der Name Oak mußte jedoch aus juristischen Gründen geändert werden. Herausgekommen ist dabei Java (heißer, starker Bohnenkaffee). Mit den Webbrowsern Netscape und HotJava von Sun war dann der weltweite Erfolg von Java nicht mehr aufzuhalten.

Wie konnte nun eine Programmiersprache, die es erst seit knapp fünf Jahren gibt, so schnell an Bedeutung gewinnen? Das hat viele Gründe. Java ist mit dem Internet und dem World Wide Web groß geworden. Für den Anwender, also den Nutzer der Webbrowser, brachte Java die Möglichkeit, Webseiten auf eine Weise multimedial und interaktiv zu nutzen, die mit reinem HTML und CGI-Skripten schwierig oder gar nicht zu realisieren war. Wie wäre es zum Beispiel mit einem Spielchen "Space Invaders" in Ihrem Webbrowser? Leider ist das bislang mit den Atari-Browsern noch nicht möglich. Zwar unterstützt Draconis JavaScript, aber Achtung: JavaScript ist kein Java (siehe Kasten). Also können Sie mit Draconis nur WWW-Seiten mit JavaScript anschauen, nicht aber Java Applets nutzen. Da diese Möglichkeit bestimmt über kurz oder lang auch in den Atari Browsern integriert wird, ist es für Sie bpstimmt interessant zu wissen, wie Java Programme in WWW-Seiten eingebunden werden. Solche Java Programme werden als Applets, also kleine Applikationen, bezeichnet. In der HTML-Beschreibung einer Webseite wird das Applet mit dem -Tag eingebunden, was dann zum Beispiel so aussieht:

<APPLET CODE= "Spacelnvaders.class° WIDTH="320" HEIGHT="256"> Um Space Invaders zu spielen, brauchen Sie einen Java-fähigen Browser! </APPLET>

Findet der Browser das Applet-Tag, so lädt er den Bytecode von "SpaceInvaders.class" aus dem Internet und startet das Programm lokal auf Ihrem Rechner. Dazu wird der Bytecode ähnlich wie zum Beispiel bei Basic mit einem Interpreter übersetzt und ausgeführt.

Nun ist Java aber nicht nur dazu da, das World Wide Web noch bunter und spannender zu machen, sondern gerade auch für Softwareentwickler interessant, denn mit Java kommt eine relativ einfach zu erlernende, objektorientierte Sprache daher.

Dabei findet der OO-Ansatz in Java wesentlich konsequenter Verwendung als in C++, denn während man in C++ noch immer C-Programme schreiben kann (als prozedurales Programmieren), so ist man unter Java gezwungen, objektorientiert zu programmieren.

Das mag vielleicht den Umsteiger von Pascal oder C erst einmal erschrecken, aber hat man einmal das 00 Prinzip verstanden, dann möchte man gar nicht mehr anders programmieren.

Die Syntax von Java ist der von C++ sehr ähnlich, was den Umstieg von C++ auf Java ziemlich einfach macht. Obendrein ist der Umgang mit Java wesentlich einfacher als mit C++. So braucht man sich nicht mit Zeigern 'rumzuschlagen oder Speicheradressen für Arrays zu reservieren und freizugeben. Darum kümmert sich der "Garbage Collector", der beim Ausfühen von Java Programmen immer im Hintergrund mitläuft.
Noch wichtiger für die Softwareentwicklung ist, dass Java plattformunabhängig ist.

Das Hauptproblem von C++ und anderen kompilierten Sprachen ist, dass ein Quellcode für jede Zielmaschine neu übersetzt werden muß. In den meisten Fällen ist es damit sogar nicht getan, sondern man muß den Quellcode noch modifizieren, um auf bestimmte Eigenheiten der entsprechenden Systeme Rücksicht zu nehmen.

Bei Java wird dieses Problem wie folgt umgangen:

Für die Quellcodeebene gilt: Java ist Java! Es gibt keine verschiedenen Java Dialekte. Microsoft hat zwar versucht ein proprietäres Java für Windows zu etablieren, wurde aber von Sun erfolgreich daran gehindert. Zur Zeit läuft auch ein Verfahren, um einen offiziellen Java-Standard zu entwickeln, der sich aber noch ein wenig hinziehen dürfte. Außerdem können in Java keine Systemfunktionen aufgerufen werden, die plattformspezifisch sind. Dementsprechend ist es egal, auf welchem Java-unterstützenden Rechner Sie Ihre Programme übersetzen, das Ergebnis ist immer das gleiche. Noch bedeutender ist aber, dass der aus dem Quellcode resultierende Code, Bytecode genannt, auch plattformunabhängig ist. Das geschieht mit einem simplen Trick: Für jede Java Plattform, sei es nun Unix, MacOS, Windows oder demnächst auch Amiga, existiert eine virtuelle Maschine, VM abgekürzt. Dies ist ein Interpreter, der den Bytecode in die Maschinensprache des jeweiligen Systems übersetzt. Der Vorteil liegt auf der Hand: Sie schreiben einmal ein Programm und es läuft, ohne dass Sie auch nur eine einzige Änderung vornehmen müssen, auf allen Rechnern, die eine Java VM installiert haben. Gerade für kleinere Atari Firmen ist dies eine gute Möglichkeit, ohne personellen Mehraufwand und ohne dem Atari den Rücken zukehren zu müssen, in neue Märkte vorzustoßen. Natürlich darf nicht verschwiegen werden, dass durch die Virtual Machine Java Programme langsamer laufen als C++ Programme, aber andererseits ist der Bytecode sehr gut optimiert, und mit schnellen Prozessoren sollte das Benutzen von Java Programmen schon Spaß machen. Eine Geschwindigkeitssteigerung können Sie durch den Einsatz eines "Just In Time" Compilers (JIT) erreichen, der beim Statten des Java Programms erst den ganzen Bytecode übersetzt und nicht wie der Interpreter die Instruktionen Schritt für Schritt übersetzt. Auch befinden sich Prozessoren in Entwicklung, die eine hardwaremäßige Implementation der VM beinhalten.

Zurück zu den vielen positiven Aspekten von Java. Da wäre zum Beispiel das Multithreading zu nennen. Multithreading geht noch einen Schritt weiter als Multitasking. Während beim Multitasking sich verschiedene Programme (Tasks) bei der Ausführung abwechseln und somit quasi zeitgleich arbeiten, so können beim Multithreading innerhalb eines einzigen Programms mehrere Programmteile (Threads) parallel laufen, was für rechenintensive Anwendungen vor allem auf Mehrprozessorsystemen interessant ist. Java unterstützt dieses Konzept mit vielen Methoden zur Kommunikation und Synchronisation von Threads.

Für den Programmierer gibt es noch weitere Vorteile, so brauchen Sie sich bei größeren Projekten nicht mehr mit dem Erstellen von Makefles belasten. In Java wird für jede Klasse eine Datei geschrieben, und die Verzeichnisstruktur wird beim Aufrufen der Methoden aus anderen Klassen mit übernommen. So bedeutet zum Beispiel:

"system.out.println("Hallo!");" die Methode "println()" der Klasse "out" im Verzeichnis "System".

Durch diese strengen Konventionen erkennt der Java Compiler die Abhängigkeiten der Klassen selbst, was ein Makefile überflüssig macht.
Java ist mittlerweile sehr ausgereift, und im Entwicklerpaket JDK (Java Development Kit) gibt es eine große Anzahl von Klassen und Paketen. So finden sich neben den Standard-Objekten wie Strings, Integer, da auch Pakete für moderne grafische Benutzeroberflächen, 3-D-Grafik, Audio, Mathematik, SQL-Datenbanken, beans (Java Softwarekomponenten) und vieles mehr, was dem Programmierer Spaß macht.

Falls Sie nun Interesse an Java bekommen haben und noch ein wenig mehr erfahren wollen, kann ich Ihnen folgende Bücher empfehlen, die zum Teil auch im World Wide Web sind:
Das Java Tutorial von Sun:
http://java.sun.com/docs/books/tutorial
The Java Tutorial Second Edition: Object Oriented Programming for the Internet
Addison-Wesley ISBN:0201310074

Java in 21 Tagen:

http://www.mut.com/leseecke/buecher/java1.2/inhalt.htm
Laura Lemay
Markt und Technik ISBN:3-8272-2030-0

Go To Java 2:

http://www.gkrueger.com/ books/k99a.html
Guido Krüger
Addison-Wesley ISBN: 3-8273-1370-8

Nun bleibt nur noch zu hoffen, dass es in absehbarer Zeit Java-Umsetzungen für den Atari gibt. Wie bereits in einer der vergangenen Ausaben erwähnt, wird an mehreren Stellen bereits kräftig daran gearbeitet, doch erste Ergebnisse sind nicht vor der Jahreswende zu erwarten.

Außerdem sei an dieser Stelle auch erwähnt, dass Java auf älteren Ataris mit nur 8 MHz-Taktfrequenz, den alten STs z. B., keine Chance haben wird, zu laufen, da sowohl die Rechenleistung als auch der Speicherplatz wohl nicht ausreichen werden.

Falcon- und TT-Anwender sowie Besitzer hochgezüchteter Ataris dürften eine Atari-Java-Portierung sicherlich gut einsetzen.



Aus: ST-Computer 10 / 1999, Seite 22

Links

Copyright-Bestimmungen: siehe Über diese Seite