4. Vergleich zwischen Java und JavaScript

Wegen der Ähnlichkeit des Namens und der Syntax werden Java und JavaScript häufig verwechselt. Jedoch gibt es einige grundlegende Unterschiede, woraus auch die unterschiedlichen Anwendungsgebiete resultieren. Im folgenden werden zunächst einige Unterschiede in der Sprachgestaltung beider Programmiersprachen aufgezeigt, woraufhin einige Beispiele für die verschiedenen Anwendungsgebiete vorgestellt werden.

4.1 Prinzipielle Unterschiede

4.1.1 Kompilierung vs. Interpretation

Ein Java-Programm wird mit Hilfe des Java-Compilers in den sogenannten Bytecode umgewandelt, der zwar sehr einer Maschinensprache ähnelt, jedoch plattformunabhängig ist, da er auf jeder Java Virtual Machine ausgeführt werden kann. Dies erfolgt meistens innerhalb einer integrierten Entwicklungsumgebung (IDE) für Java-Programme, jedoch ist auch der Einsatz eines einfachen Texteditors und der Kommandozeilen-Tools des JDK möglich.
Ein JavaScript-Programm hingegen wird von dem JavaScript-fähigen Browser Schritt für Schritt interpretiert, woraus selbstverständlich eine im Vergleich zu Java wesentlich langsamere Verarbeitungsgeschwindigkeit resultiert. Durch das Fehlen einer Kompilierung und durch die direkte Einbindung eines JavaScript-Programms in den HTML-Sourcecode einer Seite (vgl. Abschnitt 3.3) entfällt die Notwendigkeit einer integrierten Entwicklungsumgebung: Die HTML-Seite mit dem JavaScript-Code muß zum Testen des Programms einfach nur in einen Browser geladen werden.

4.1.2 Ausmaß der Interaktion

Einem Java-Programm wird mit dem <APPLET>-Tag ein definerter Bereich auf einer Webpage zugewiesen. Jegliche Interaktion des Benutzers mit dem Applet spielt sich innerhalb dieses Bereiches ab, der Rest der Seite bleibt für das Java-Applet tabu.
Die Objekte mit ihren Eigenschaften und Ereignissen hingegen, die einem JavaScript-Programm zur Verfügung stehen sind nicht auf einen bestimmten Bereich einer Seite beschränkt. Einem JavaScript-Programm ist sowohl der Zugriff auf die ganze Webpage als auch die Manipulation anderer Seiten und des Browsers selbst möglich. Einem JavaScript-Programm ist somit ein wesentlich höherer Grad der Interaktion mit dem Benutzer und dem Browser möglich, wodurch JavaScript die Sprache der Wahl für interaktive Webpages ist.

4.1.3 Objektorientierung

Java besitzt als moderne Programmiersprache viele Elemente der Objektorientierung:  Ein Klassenkonzept, Vererbung, Polymorphismus und dynamisches Binden sind die Konzepte der Objektorientierung, die in Java vorhanden sind. Somit lassen sich auch komplexe Projekte in Java realisieren, was auch durch die Ähnlichkeit zu C++ erleichtert wird.
JavaScript hingegen bietet nur eine vordefinierte Objekthierarchie, die jedoch nicht erweiterbar ist. Es sind keine eigenen Klassen definierbar, auch die Möglichkeit der Vererbung existiert nicht. Somit ist JavaScript eher als "klassische" Programmiersprache zu sehen, da eine Objektorientierung nur in Ansätzen vorhanden ist. Programme in JavaScript ähneln so eher Programmen, die in C geschrieben wurden, als vergleichbaren C++ -Programmen.

4.1.4 Einfachheit

Obwohl Java mit dem Ziel der einfachen Erlernbarkeit entwickelt wurde, sind jedoch einige Vorschriften beim Programmieren zu beachten. Ein Beispiel hierfür sind die von C++ bekannten strengen Variablen- und Typprüfungen. Jede Variable muß vor ihrer Verwendung mit einem Typ deklariert werden, Wertzuweisungen mit unterschiedlichen Typen sind nur mit einem Cast-Operator möglich. Daraus resultiert zwar ein erhöhter Einarbeitungs- und Programmieraufwand, auf der anderen Seite werden die Programme übersichtlicher und die Gefahr schwer zu entdeckender Bugs wird verringert.
Dagegen läßt JavaScript dem Programmierer wesentlich mehr Freiheiten, woraus natürlich auch mehr Fehler resultieren können. Eine Variablendeklaration ist zum Besipiel nicht nötig und Wertzuweisungen mit unterschiedlichen Typen können ohne spezielle Operatoren durchgeführt werden, der Interpreter übernimmt die Typumwandlung. Somit JavaScript eher dazu geeignet "auf die Schnelle" ein Programm zu schreiben, wobei sich Java offensichtlich eher für größere Projekte eignet.

4.1.5 Zusammenfassung der Unterschiede

In der folgenden Tabelle sind die auffälligsten Unterschiede zwischen Java und JavaScript noch einmal zusammengefaßt:
 

Java

JavaScript

Ausführung des kompilierten Bytecodes auf dem Client Unkompilierter Sourcecode wird auf dem Client interpretiert
Applet wird auf der HTML-Seite referenziert Einbettung des JS-Codes in die HTML-Seite
Applets bestehen aus Klassen, die vererbungsfähig sind ("echte" Objektorientierung) Verwendung von vordefinierten Objekten, jedoch keine Klassen oder Vererbung
Variablendeklaration erforderlich keine Variablendeklaration erforderlich
Nur Reaktion auf Ereignisse im angegebenen Bereich Interaktion des Scripts mit dem Web-Browser möglich
Tabelle 4.1: Unterschiede zwischen Java und JavaScript

4.2 Anwendungsgebiete

Im vorigen Abschnitt wurde deutlich, daß die Anwendungsgebiete von Java eher gößere Anwendungen sowie komplexe Projekte sind, wohingegen JavaScript eher als Makrosprache des Browsers bezeichnet werden kann. Jedoch sind die Grenzen fließend und für viele Anwendungen kommen sowohl Java als auch JavaScript in Frage.

Anwendungen für Java können zum Besipiel sein:

Anwendungen für JavaScript können zum Beispiel sein: Anhand der vorigen Beispiele wurde deutlich, daß sich Java eher für komplexe Anwendungen eignet, während der Schwerpunkt von JavaScript auf interaktiven Webpages liegt.

[Zurück]          [Inhalt]          [Weiter]