JavaScript vs. Java

Immer wieder – auch bei uns im Forum und in etlichen Kommentaren zu den Javascripts schreiben viele User „Java“, wenn sie eigentlich „Javascript“ meinen. Warum das so ist – keine Ahnung. Meine Vermutung: eine Mischung aus Faulheit und Unwissenheit. Faulheit, weil man das sooo lange Wort nicht ausschreiben will. Unwissenheit, weil manche vielleicht denken, dass es eh das gleiche ist.

Ist es eben nicht!

lernen

Die Gemeinsamkeiten zwischen Java und JavaScript sind ungefähr die gleichen wie zwischen Kinderwagen und Fahrrad. Beide haben unten Räder dran und können einen Menschen „transportieren“. Das wars dann aber auch schon. JavaScript und Java haben beide irgendwie mit Computern zu tun, haben die Buchstaben J, a, v und a vorn stehen und sind objektorientierte Sprachen. Das wars dann aber auch schon.

Einige Unterschiede

  • Java

    • Programmiersprache
    • wird auf Server kompiliert und ausgeführt
    • benötigt Laufzeitumgebung
  • JavaScript

    • Scriptsprache
    • wird auf Client interpretiert
    • benötigt HTML-Dokument

Während JavaScript auf dem Client, d. h. dem Browser ausgeführt wird, wird Java auf dem Server in einer sogenannten Laufzeitumgebung ausgeführt. Zumindest meistens ist das so. JavaScripts sind (meist) in HTML-Seiten integrierte, dynamisch reagierende Anweisungen, während Java-Applikationen auf dem Server ausgeführt werden und das Ergebnis erst anschließend an den Browser geschickt wird. Wurde JavaScript lange Zeit als Frickelei abgetan und Java-Programmierer sofort in den Olymp der Enterprise-Alleskönner gehoben, hat sich die Sicht inzwischen ein wenig (aber eben nur wirklich ein wenig) geändert.
Das Thema ist insgesamt jedoch so umfangreich, dass eine genaue Erklärung hier den Rahmen deutlich sprengen würde.

Vom Anfänger zum Profi

Einfache JavaScript-Anweisungen können z. B. bei simplen alert()-Aufrufen losgehen. In unserem Javascript-Tutorial stellen wir für JavaScript-Anfänger einige grundlegende Funktionen und Objekte vor. Dass das alles auch etwas komplexer geht, sieht man, wenn man sich z. B. die Bibliothek jQuery anschaut. Für den Programmierer bieten solche Bibliotheken jede Menge hilfreiche Funktionen für den Alltag – allerdings kann man hier deutlich sehen, wie komplex und fernab unseres Tutorials JavaScript werden kann.

Ähnlich ist es bei Java-Anwendungen. Einfache Programme können z. B. auf der Kommandozeile Befehle entgegennehmen, Daten verarbeiten und ggf. etwas ausgeben. Weitere Anwendungs-Arten können Java-Applets (die wiederrum im Client, also dem Browser ausgegeben werden, aber immer noch nichts mit JavaScript zu tun haben), Programme mit grafischer Benutzeroberfläche oder auch Servlets sein.

Und was soll ich nun lernen?

Welche Sprache hat denn nun mehr Zukunft? oder Soll ich eher Java oder JavaScript lernen, wenn ich mal viel Geld verdienen will? sind Fragen, die sich pauschal nicht beantworten lassen.

Man muss sich dazu vor Augen halten, dass beide Sprachen für komplett andere Anwendungszwecke entwickelt worden sind und unterschiedliche Ziele anpeilen. Schaut man sich z. B. beim Jobportal Stepstone die Anzahl der Java-Jobs und die Anzahl der JavaScript-Jobs an fällt auf, dass momentan deutlich mehr Java-Entwickler gesucht werden. Ursache dafür könnte sein, dass es selten Programmierer gibt, die sich ausschließlich auf JavaScript spezialisieren. Diese Coder decken oft zusätzlich noch ein breiteres Spektrum anderer Programmier- und Auszeichnungssprachen ab (z. B. HTML, CSS, XML, PHP, Perl etc. – also alles im Bereich der Webprogrammierung). Da Java hingegen eben wie gesagt auf dem Server läuft können sich die Programmierer hier mehr auf diese Sprache konzentrieren und spezialisieren – die Ausgabe für den Browser (sofern überhaupt nötig) übernehmen dann wieder die Webprogrammierer.

Im Grunde muss man bei diesen Fragen also selbst entscheiden, ob man sich eher spezialisieren will oder eher ein breites Spektrum verschiedener Sprachen abdecken will.

Mehr Infos über Java gibts übrigens direkt beim Hersteller Oracle.

Posted in:

Schreibe einen Kommentar