© Excellent backgrounds/Shutterstock.com
Java Magazin
WebAssembly: Die nächsten Schritte

Kolumne: EnterpriseTales

Der WebAssembly-Standard steht in den meisten Browsern zur Verfügung und wird bereits in vielen Webanwendungen verwendet. Die Features und APIs sind aktuell zwar noch vergleichsweise rudimentär, die geplanten Erweiterungen der Spezifikation aber vielversprechend. Zudem gibt es einen Standardisierungsvorschlag, der die Verwendung von WebAssembly außerhalb des Browsers ermöglicht. Zeit für einen Ausblick.

Sven Kölpin


WebAssembly (Wasm) ist ein standardisiertes Binärformat, das auf einer stackbasierten virtuellen Maschine ausgeführt wird. Es wurde zwar vor dem Hintergrund entwickelt, ein Binärformat für die Webplattform zur Verfügung zu stellen und so Programmiersprachen abseits von JavaScript in den Browser zu bringen, aber Wasm ist keineswegs auf das Web beschränkt. Ähnlich wie für Java braucht man für die Ausführung von WebAssembly eine Laufzeitumgebung, die virtuelle Maschine, in der das jeweilige Binärformat in Maschinencode übersetzt und dann ausgeführt wird. Diese Umgebung kann im Fall von WebAssembly als Teil des Browsers, in Node.js oder auf beliebigen anderen Plattformen implementiert sein.Die aktuelle Version 1.0 von WebAssembly ist eine Minimum-Viable-Product-(MVP-)Version, die bereits seit 2017/2018 in allen relevanten Browsern zur Verfügung steht. Dieser erste Standard enthält vornehmlich grundlegende Features, weshalb die Verwendung von Wasm auf einem vergleichsweise geringen Abstraktionslevel stattfindet. Zudem liegt der Fokus auf den Sprachen C, C++ und Rust, da sie über ein manuelles Memory-Management verfügen. Trotz der Einschränkungen ist WebAssembly allerdings bereits ein fester Bestandteil der Webplattform, der Vorteile in verschiedenen Bereichen bringen kann.Vornehmlich wird der Performancegewinn gegenüber JavaScript als positives Merkmal von Wasm herausgestellt. Schließlich handelt es sich bei WebAssembly um ein Binärformat, das in fast nativer Geschwindigkeit ausgeführt werden kann und weniger Datenmengen verursacht. In der Realität hängt dieser Vorteil aber natürlich vom konkreten Anwendungsfall ab [1], [2]. Unabhängig davon garantiert WebAssembly allerdings eine weitestgehend konsistente Ausführungsgeschwindigkeit in verschiedenen Browsern.Die Portierbarkeit von Libraries und ganzen Anwendungen aus anderen Sprachen, aktuell vornehmlich aus C und C++, ist eine weitere Stärke von WebAssembly. Ein plakatives Beispiel hierfür ist das Projekt AutoCAD [3], bei dem Teile einer über dreißig Jahre alten Codebasis der Hilfe von WebAssembly ins Web portiert werden konnten. Auch eBay setzt bei der Implementierung eines webbasierten Barcodescanners auf WebAssembly [4]. Dort wird eine von C++ nach Wasm portierte Bibliothek für Barcodes verwendet.Zusätzlich bringt WebAssembly eine langersehnte Flexibilität in den Browser. Wasm ist schließlich ein standardisiertes Binärformat und deshalb, zumindest in der Theorie, ein Kompilierungsziel für beliebige Sprach...

Java Magazin
WebAssembly: Die nächsten Schritte

Kolumne: EnterpriseTales

Der WebAssembly-Standard steht in den meisten Browsern zur Verfügung und wird bereits in vielen Webanwendungen verwendet. Die Features und APIs sind aktuell zwar noch vergleichsweise rudimentär, die geplanten Erweiterungen der Spezifikation aber vielversprechend. Zudem gibt es einen Standardisierungsvorschlag, der die Verwendung von WebAssembly außerhalb des Browsers ermöglicht. Zeit für einen Ausblick.

Sven Kölpin


WebAssembly (Wasm) ist ein standardisiertes Binärformat, das auf einer stackbasierten virtuellen Maschine ausgeführt wird. Es wurde zwar vor dem Hintergrund entwickelt, ein Binärformat für die Webplattform zur Verfügung zu stellen und so Programmiersprachen abseits von JavaScript in den Browser zu bringen, aber Wasm ist keineswegs auf das Web beschränkt. Ähnlich wie für Java braucht man für die Ausführung von WebAssembly eine Laufzeitumgebung, die virtuelle Maschine, in der das jeweilige Binärformat in Maschinencode übersetzt und dann ausgeführt wird. Diese Umgebung kann im Fall von WebAssembly als Teil des Browsers, in Node.js oder auf beliebigen anderen Plattformen implementiert sein.Die aktuelle Version 1.0 von WebAssembly ist eine Minimum-Viable-Product-(MVP-)Version, die bereits seit 2017/2018 in allen relevanten Browsern zur Verfügung steht. Dieser erste Standard enthält vornehmlich grundlegende Features, weshalb die Verwendung von Wasm auf einem vergleichsweise geringen Abstraktionslevel stattfindet. Zudem liegt der Fokus auf den Sprachen C, C++ und Rust, da sie über ein manuelles Memory-Management verfügen. Trotz der Einschränkungen ist WebAssembly allerdings bereits ein fester Bestandteil der Webplattform, der Vorteile in verschiedenen Bereichen bringen kann.Vornehmlich wird der Performancegewinn gegenüber JavaScript als positives Merkmal von Wasm herausgestellt. Schließlich handelt es sich bei WebAssembly um ein Binärformat, das in fast nativer Geschwindigkeit ausgeführt werden kann und weniger Datenmengen verursacht. In der Realität hängt dieser Vorteil aber natürlich vom konkreten Anwendungsfall ab [1], [2]. Unabhängig davon garantiert WebAssembly allerdings eine weitestgehend konsistente Ausführungsgeschwindigkeit in verschiedenen Browsern.Die Portierbarkeit von Libraries und ganzen Anwendungen aus anderen Sprachen, aktuell vornehmlich aus C und C++, ist eine weitere Stärke von WebAssembly. Ein plakatives Beispiel hierfür ist das Projekt AutoCAD [3], bei dem Teile einer über dreißig Jahre alten Codebasis der Hilfe von WebAssembly ins Web portiert werden konnten. Auch eBay setzt bei der Implementierung eines webbasierten Barcodescanners auf WebAssembly [4]. Dort wird eine von C++ nach Wasm portierte Bibliothek für Barcodes verwendet.Zusätzlich bringt WebAssembly eine langersehnte Flexibilität in den Browser. Wasm ist schließlich ein standardisiertes Binärformat und deshalb, zumindest in der Theorie, ein Kompilierungsziel für beliebige Sprach...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang