sysiphus.de

JavaScript und Java

JavaScript ist eine eingeschränkte Version von Java, u.a. wegen höherer Datensicherheit. Mehr weiß ich nicht zu dem Thema.

JavaScript ist eine vom Browser interpretierte Sprache, die in den HTML-Code einer Webseite eingebettet werden kann. Eigentlich hieß das Zeug während seiner Entwicklung bei Netscape Communications lange "LiveScript", mit dem Java-Hype wurde dann einfach eine Schnittstelle zu Java geschrieben und das ganze kurzerhand als "JavaScript" veröffentlicht. Den Quelltext kann man mit dem Seitenquelltext einsehen.

JavaScript kann man nur innerhalb eines Browsers verwenden, um z.B. Elemente des Browsers und der Seitenelemente auszulesen, zu verändern oder neu zu setzen und damit auch rechnen. Typische Sachen sind z.B. Rollover-Buttons (Maus bewegt sich über ein Bild - das Bild verändert sich), man kann aber auch etwas umfangreichere Geschichten damit machen (ich habe mal ein JavaScript zur Berechnung des Sonnenschutzfaktors geschrieben, ein Bekannter hat mal in JavaScript ein JavaScript geschrieben, das nach Eingabe einer EAN den Barcode dazu gemalt hat).

Da JavaScript in den HTML-Code eingebaut ist, wird es normalerweise vom Browser selbst mit interpretiert und ausgeführt. Da jeder den Quelltext einsehen kann, macht man damit auch nur sehr selten sicherheitsrelevante Dinge.

Java

Java ist eine von Sun Microsystems entwickelte Programmiersprache, die sehr an C++ erinnert, aber deutlich weniger kompliziert ist. Java-Programme werden kompiliert, laufen systemunabhängig in einem virtuellem Rechner und können sowohl als "richtige" Anwendung wie auch als Applet verwendet werden.

Applets laufen in einem durch die HTML-Seite vordefinierten Bildschirmbereich des Browsers ab, können nicht beliebig auf die lokale Festplatte zugreifen und können durch die Konfiguration des Browsers oder der virtuellen Maschine normalerweise recht hart restriktiert werden, so daß die Programme z.B. nur in ihr aktuelles Verzeichnis schreiben oder nichts übers Netzwerk verschicken können.

Durch die weitaus größeren Möglichkeiten einer vollen Programmiersprache gegenüber der eingebetteten Scriptsprache eignet sich Java auch zur Programmierung leistungsfähiger Arbeitsplatzanwendungen wie etwa der Aktiendepot-Verwaltung Aktienman oder speziell entwickelten, besonders aufwendigen Verschlüsselungsverfahren der verschiedenen Onlinebanking-Systeme von z.B. Advance-Bank oder ComDirect.

Gemeinsamkeiten

  • Man kann beide Sprachen verwenden, um Websites aufzupeppen.

  • Beide Sprachen werden normalerweise auf dem Rechner des Anwenders ausgeführt, nicht auf dem Webserver, von dem das Programm kam. Daher tragen beide dazu bei, die Last auf den Servern zu reduzieren, wenn stattdessen auf dem Server CGI-Anwendungen verwendet werden müßten.

  • Ein Haken an Java und JavaScript ist, daß beide vom Browser unterstützt werden müssen, während die Frage der Unterstützung bei CGI eine Sache des Servers ist. Hinzu kommt, daß viele Anwender JavaScript und Java abschalten, da diese oft als Sicherheitsrisiko angesehen werden.

  • Hinter Java und JavaScript stehen Sicherheitskonzepte, damit sie z.B. nicht zum Abrufen von Informationen des Anwenderrechners mißbraucht werden können. JavaScript ist bei weitem nicht so sicher wie Java - warum, steht etwas tiefer auf dieser Seite.

  • Sowohl JavaScript wie auch Java können mißbraucht werden, um irgendwelche Objekte auf Webseiten herumscrollen zu lassen oder zu animieren. Da dies leider sehr viele Leute tun, glauben viele Leute, daß dies die einzigen Einsatzzwecke für Java und JavaScript seien.

Unterschiede

  • JavaScript wurde von Netscape entwickelt, Java von Sun Microsystems. Mit beiden kann man Websites aufpeppen.
    Java ist andererseits auch eien vollständige Programmiersprache. Man kann sie auf Webseiten verwenden, aber auch vollständige Anwendungen schreiben, die nichts mit dem Internet zu tun haben müssen.

  • JavaScript ist eine Scriptsprache: das Programm, das JavaScript liest, interpretiert die Daten aus dem Quelltext heraus (es gibt Pläne für kompilierte JavaScripts, bislang ist da allerdings noch nicht viel geschehen.)
    Java hingegen wird nicht direkt interpretiert. Man muß es zuerst kompilieren und das Kompilat liest der Browser. Bei üblichen Compilern wird aus dem Quelltext Binärcode geschrieben, wie er vom Rechner verwendet werden kann. Ein Java-Compiler hingegen erzeugt "Bytecode", der unabhängig vom verwendeten Prozessor und Rechner ist. Erst mit Hilfe der Java Virtual Machine setzt der Rechner diesen Bytecode in etwas um, was er direkt versteht. Daher können Java-Programme auf verschiedenen Rechnerarchitekturen mit verschiedenen Betriebssystemen ausgeführt werden.

  • In JavaScript schreibt man "JavaScript-Scripts", was man in Java für Webseiten schreibt sind "Java Applets".
    Es gibt solche Dinge wie "JavaScript Applet" oder "Java Script" einfach nicht.

  • Der JavaScript-Quelltext kann direkt von jedem eingesehen werden, während der Java-Quelltext nur im binären Bytecode vorliegt. Es gibt zwar auch Disassembler für Java, mit denen man eine Art Quelltext aus Java Bytecode generieren kann, aber es ist auf jeden Fall deutlich schwerer, als JavaScript zu lesen.

  • JavaScripts kann man mit einem einfachen Texteditor schreiben - für Java benötigt man mindestens das (kostenlose) Java Developer's Kit.

  • Java ist eine sehr deutliche, objektorientierte und aufwendige Programmiersprache. Mit ihr kann man Dinge wie z.B. in C++ realisieren. Die Schreibweise verschiedener Konstrukte erinnert sehr stark an C++, aber Java ist deutlich einfacher zu lernen und anzuwenden als C++.
    JavaScript ist eine recht einfach gestrickte Sprache, die ein wenig objektorientiert aussieht und auf dem Level eines BASICs steht.
    Beide Sprachen sind Programmiersprachen (im Gegensatz zu HTML, das zur Auszeichnung von Text dient). JavaScript ist einfacher zu lernen, Java aber bei großen Anwendungen deutlich leistungsfähiger.

  • Bei der Entwicklung von JavaScript war der Netscape Navigator immer im Hinterkopf der Entwickler, daher kann man sehr viele Elemente des Browsers auslesen oder verändern. In JavaScript kann man z.B. den Zurück-Button des Browsers kontrollieren, nicht jedoch in HTML.
    Java liefert nicht so viele Möglichkeiten, den Browser zu beeinflussen, hat aber andere Stärken.

  • Bei der Entwicklung von Java stand die Sicherheit sehr weit im Vordergrund. Die Sicherheitstechniken in Java werden von der Java Virtual Machine zur Verfügung gestellt, die die Java-Programme und Applets ausführt.
    JavaScript ist nicht so sicher. Es gibt immer wieder Ansätze, den Anwender vor "bösen" JavaScripts zu schützen, da in der Vergangenheit einige Funktionen von JavaScript dazu verwendet werden konnten, um z.B. die E-Mail-Adresse des Anwenders ohne dessen Wissens weiterzuleiten.

  • Bis vor relativ kurzer Zeit war der Support von JavaScript und Java in den üblichen Browsern sehr schwach oder langsam. Sogar heute noch haben die Anwender von Windows 3.1 kaum Möglichkeiten, Java-Anwendungen auszuführen.
    JavaScript gab es ab dem Navigator 2, Java für die Windows-Version des Navigators 2 verfügbar, Java für den Macintosh gab es erst mit der Version 3. Der Microsoft Internet Explorer versteht erst seit der Version 3 Java und JavaScript (und beides auch nicht gerade sonderlich gut).
    Java wird von vielen alternativen Browsern unterstützt, so das System Java unterstützt. Der Browser iCab für den Macintosh unterstützt in seiner aktuellen Preview-Version z.B. das als ECMA-Script standardisierte JavaScript und kennt damit nicht allen JavaScript/JScript-Optionen, kann aber über das mit dem Betriebssystem installierte Macintosh Runtime for Java eine Sun-zertifizierte Java-Engine nutzen.
    Microsoft hat sich eine eigene Version von JavaScript namens "JScript" ausgedacht, die sich in vielen Feinheiten von JavaScript unterscheidet und zu dieser teilweise inkompatibel ist. Ebenso gibt es von Microsoft verschiedene Versionen ihrer Java Virtual Machine, die nicht den Standards von Sun genügen und daher auch nicht voll Java-kompatibel sind.

Interessante Links

Anders Henke, 12.10.1999