Status Quo von WebAssembly in Java

WebAssembly (Wasm) ermöglicht die Verwendung bisher nativer Sprachen im Webbrowser. Der Fokus liegt dabei auf hardwarenahen Sprachen wie C, C++ und Rust. Da stellt sich die Frage, ob und wie gut sich die Technologie auch für Java nutzen lässt. Aktuell gibt es nur wenige Wasm-Compiler für Java. Dies liegt daran, da es sich bei Wasm noch immer um eine junge Spezifikation handelt, die momentan in der Version 1.0 ausgeliefert wird. Dennoch existieren drei größere Projekte, die es ermöglichen, Java durch Wasm in das Web zu bringen. Dazu gehören TeaVM, JWebAssembly (JWasm) und CheerpJ. Im Fokus sollen hier die beiden erstgenannten Open-Source-Projekte stehen. Beide beanspruchen zum aktuellen Zeitpunkt noch nicht, produktionsreif zu sein, was sich in einem Praxistest auch bewahrheiten wird. Spannend ist ein derartiger Zwischenstand jedoch allemal.

Java im Web – wofür überhaupt?

Doch welche potenziellen Vorteile bietet die Nutzung von Java mit WebAssembly überhaupt? Einerseits kann Java dadurch noch gezielter für die Webprogrammierung eingesetzt werden, da der Code nun neben dem Backend auch direkt im Frontend genutzt werden kann. Andererseits eröffnet die Ausführung im Browser auch die Möglichkeit in Java geschriebene Altanwendungen einfacher als Webanwendungen zu portieren, um sie somit vielleicht auch für neue Kundengruppen interessant zu machen.

Für C# gibt es demgegenüber keinen eigenständigen Compiler, der Code in das Wasm-Format übersetzt. Microsoft stellt stattdessen eine Erweiterung des ASP.NET-Core-Frameworks namens Blazor zur Verfügung, welches Webentwicklung mit C# und .NET-Bibliotheken ermöglicht.

Eine Anwendungsportierung als Praxistest

Um die aktuellen Möglichkeiten der Java-Compiler vergleichen zu können, führte der Student Christian Jehle in seiner Abschlussarbeit einen Praxistest durch. Ziel war es eine bereits bestehende JavaFx-Anwendung mittels der Compiler als Single-Page-Webanwendung zu portieren. So konnte der Frage nachgegangen werden, ob die verfügbaren Tools produktionsreif sind und wie aufwendig es ist, bestehenden Java-Code zu portieren.

Um einen Vergleich über die Java-Grenzen hinweg vorzunehmen, wurde die Anwendung auch in C# nachgebaut und im Framework Blazor eingebunden.

Veröffentlicht im Java Magazin

Veröffentlicht wurden die Ergebnisse im Java Magazin, Ausgabe 11/22. Das Java Magazin informiert seit ca. zwanzig Jahren praxisbezogen über die wichtigsten technologischen Entwicklungen im Java-Markt, führt in neue Technologien ein und leistet Unterstützung bei der Realisierung komplexer Softwareprojekte. Die Druckauflage beträgt über 10.000 Exemplare.

Als Unternehmensbetreuer der Arbeit fungierte Matijas Milos von der doubleSlash GmbH in Friedrichshafen.