Webbrowser-Programmierung in Java

JavaScript ist aus der Webentwicklung nicht mehr wegzudenken. Dabei kann man Webprojekte auch gut mit Java umsetzen.

Sprachen  –  88 Kommentare

(Bild: Evgeny Karandaev / Shutterstock.com)

2019. Die Welt der Webbrowser-Programmierung beziehungsweise Webentwicklung ist von JavaScript und TypeScript besetzt. Die gesamte Webentwicklung? Nein, ein von unbeugsamen Open-Source-Java-Entwicklern bevölkertes Dorf hört nicht auf, dem Eindringling Widerstand zu leisten und zwar mit einem Java-zu-JavaScript-Transpiler namens GWT und J2CL (Java to Closure Transpiler).

Geschichte der Webframeworks

Der Vorteil einer statisch typisierten Programmiersprache ist das frühzeitige Erkennen bestimmter Fehler zur Kompilierzeit. Sie spart somit Entwicklern die spätere Fehlersuche zur Laufzeit. Java-Entwickler, die schon Anfang 2000 entwickelt haben, kennen die clientseitigen Benutzeroberflächen-Entwicklungen mit Swing oder SWT. Frameworks wie WebWork, Struts/JSP, Enhydra/XMLC, Tapestry, Echo und Spring MVC implementieren mit etwas HTML, CSS und JavaScript serverseitige Benutzeroberflächen im Webbrowser. Es gab unterschiedliche Ansätze und viele konkurrierende Frameworks für die Webentwicklung in Java.

Spätestens im Jahr 2005 ist die Anforderung an Webanwendung für die Benutzerinteraktionen gestiegen. Damals fiel der Begriff AJAX zum ersten Mal. JavaScript hat plötzlich an größerer Bedeutung gewonnen und ist seitdem nicht mehr wegzudenken. Heute stellen Webbrowser die Plattform beziehungsweise das Betriebssystem des Web dar und JavaScript ist de-facto dessen Muttersprache.

Abbildung 1 fasst die Geschichte der Webframeworks und den Übergang von reiner Java-Webentwicklung zu JavaScript-basierten Frameworks wie Angular, Vue.js und React zusammen.

Geschichte der Webframeworks (Abb. 1) (Bild: http://bit.ly/HistoryWebFrameworks)

Führt für Java-Entwickler im Jahr 2019 für die Webentwicklung kein Weg an JavaScript oder Derivaten wie TypeScript vorbei? Ein Wechsel der Programmiersprache erfordert stets Aufwand:

  • Kommen zusätzliche oder neue Frameworks in Frage?
  • Benötigt man eine neue IDE? Was ist mit Code-Formattern?
  • Muss man ein neues Build-Tool einsetzen? Funktioniert CI/CD weiterhin wie gewohnt oder sind neue Umgebungen notwendig?
  • Braucht es ein neues Artefakten-Repository?

Zum Glück gibt es einige Java-Ansätze, die einen kompletten Wechsel überflüssig machen. Der Artikel stellt beispielhaft den Einsatz von GWT und J2CL vor. Als Projekt dient ein einfacher Prototyp eines Taschenrechners in Java. Das Ergebnis erhält anschließend eine Übersetzung in JavaScript und eine Integration in einer eigenen JavaScript-App innerhalb eines Webbrowsers. Es sollen bekannte Java-Tools und -Frameworks wie VS Code for Java, Maven und JUnit zum Einsatz kommen. Für die Übersetzung von Java zu JavaScript ist der Transpiler GWT in Version 2.8.2 Voraussetzung.

Das vollständige Beispiel findet sich im GitHub-Repository des Autors.