Webbrowser-Programmierung in Java
Seite 4: Fazit
GWT 2 und J2CL sind nicht tot, sondern im Gegenteil stabil, optimiert und häufig in Verwendung. Google beispielsweise verwendet J2CL für sämtliche GSuite Apps wie GMail, Docs, Slides und Calendar. Red Hat implementiert die HAL/WildFly Management Console mit GWT. Veränderungen existieren im Bereich der Webframeworks, die auf GWT 2 basieren.
Die alten GWT-Webframeworks und Widgets sollten Entwickler nicht mehr einsetzen. Geplant ist der Einsatz des Transpilers J2CL in GWT 3. Derzeit entstehen neue Webframeworks für GWT und J2CL wie DominoUI oder VueGWT sowie Nalu für Routing und Navigation. Red Hat stellt ebenfalls ein neues Framework PatternFly 4 Java basierend auf GWT und PatternFly 4 vor.
Ein interessantes Beispiel im Kontext der Performanz und Optimierung der JavaScript-Codes ist der Einsatz von GWT 2 oder J2CL-Transpiler für eine identische Webanwendung auf Basis von DominoUI. Falls jemand den Zugriff auf Webbrowser-APIs benötigt, hilft die Bibliothek Elemental2 weiter. Elemental2 bietet Java-basierte APIs für Webbrowser an, die sowohl GWT als auch J2CL verwenden können. Auf Elemental2 wird die benutzerfreundliche Bibliothek Elemento gebaut. Elemento vereinfacht den Zugriff auf bestimmter Webbrowser-APIs und gleichzeitig bietet Elemento einige Erweiterungen wie HTML-Templates an. Abbildung 6 zeigt der Vergleich der auf JavaScript transpilierter Programmiersprachen wie TypeScript, Java mit GWT/J2CL sowie Kotlin mit KotlinJS.
Entwickler können Java-Code in der JavaScript-Welt wiederverwenden. Java-Entwickler können wie gewohnt mit Java-Werkzeugen und -Frameworks implementieren, testen und sie problemlos mit JsInterop in ihrer JavaScript-App integrieren. Somit bleiben sämtliche Vorteile von Java für den gesamten Lebenszyklus in der Anwendungsentwicklung vorhanden.
Dr. Lofi Dewanto
arbeitet als Leiter Gruppe Verkaufsanwendungen – Competence Center Java bei DEVK Versicherungen in Köln. Er ist Autor, Trainer und engagiert sich insbesondere für "javanische" Open-Source-Software sowie MDA.
(bbo)