© Matej Kotula/Shutterstock.com
JavaScript Kompendium
Die „alternative“ virtuelle Maschine WebAssembly ist auf dem Vormarsch

Die neue Hoffnung

WebAssembly soll sowohl die Ladezeiten als auch die Ausführung von Webanwendungen gegenüber JavaScript beschleunigen. Die großen Browseranbieter treiben das zukunftsträchtige Projekt bei der Entwicklung voran. Zeit, sich WebAssembly mit seinen Stärken und Schwächen einmal genauer anzuschauen.

Tam Hanna


Die Entwicklung des Web war in vielerlei Hinsicht eine Sache von „Bedarf treibt Standard“. Hätten Brendan Eich und seine Mitstreiter vorausgesehen, dass JavaScript einmal eine so große Verbreitung erreichen würde, hätten sie sich sicherlich für einen saubereren Sprachstandard samt härterer Syntax entschieden. Wie dem auch sei: JavaScript ist heute nicht nur eine Programmiersprache für so ziemlich alles, sondern dient auch als Kompilierziel für andere Sprachen. CoffeeScript, TypeScript und Co. werden in JavaScript umgewandelt, bevor sie in der Runtime des Browsers zur Ausführung gelangen. Da die Auseinandersetzungen zwischen Opera, Mozilla und Microsoft zu einer immer größeren Performancesteigerung führten, sahen sich Entwickler dazu genötigt, eine virtuelle Maschine für den Browser zu konstruieren. Mit einem als Emscripten bezeichneten Compiler konnte man C-Programme transpilieren und danach in der gleichnamigen virtuellen Maschine im Browser ausführen.Emscripten mag mit kleineren Programmen problemlos funktionieren, stößt in der Praxis über kurz oder lang jedoch an Performancegrenzen. Das liegt daran, dass der Aufbau von JavaScript eher schlecht als recht für virtuelle Maschinen geeignet ist: Die Sprache muss geparst werden und vieles mehr. WebAssembly versucht dieses Problem durch Erweiterungen des Browsers zu umgehen. Es handelt sich dabei im Grunde genommen um eine alternative virtuelle Maschine, die im Browser neben der JavaScript-Umgebung ausgeführt wird und mit ihr interagiert. WebAssembly-Programme sind dann „High-Performance-Inseln“, die aus dem gewöhnlichen JavaScript-Code heraus aufgerufen werden können, wenn man die maximale Leistungsfähigkeit der zugrunde liegenden Hardware benötigt. Ähnlichkeiten mit dem in Palm OS 5 implementierten ARMlet-System sind rein zufällig, die Idee ist jedoch dieselbe.Immer weitere VerbreitungAls erste Versionen von Emscripten erschienen, betrachteten viele Entwickler das Produkt als Spielzeug. Im Fall von WebAssembly sieht die Situation jedoch anders aus – wer CanIUse nach Unterstützung für den Standard befragt, bekommt das in Abbildung 1 gezeigte und sehr befriedigende Ergebnis.Analog zur Entwicklung von Programmen für Microcontroller gilt auch in der Welt des WebAssembly, dass man Assemblercode nicht direkt von Hand erzeugt. Stattdessen kommen niedere Hochsprachen zum Einsatz, als Klassiker in besonderer Weise C. Tipp: Wer bereits erfahren in Sachen Assemblerprogrammierung ist, findet unter [2] eine Einführung...

JavaScript Kompendium
Die „alternative“ virtuelle Maschine WebAssembly ist auf dem Vormarsch

Die neue Hoffnung

WebAssembly soll sowohl die Ladezeiten als auch die Ausführung von Webanwendungen gegenüber JavaScript beschleunigen. Die großen Browseranbieter treiben das zukunftsträchtige Projekt bei der Entwicklung voran. Zeit, sich WebAssembly mit seinen Stärken und Schwächen einmal genauer anzuschauen.

Tam Hanna


Die Entwicklung des Web war in vielerlei Hinsicht eine Sache von „Bedarf treibt Standard“. Hätten Brendan Eich und seine Mitstreiter vorausgesehen, dass JavaScript einmal eine so große Verbreitung erreichen würde, hätten sie sich sicherlich für einen saubereren Sprachstandard samt härterer Syntax entschieden. Wie dem auch sei: JavaScript ist heute nicht nur eine Programmiersprache für so ziemlich alles, sondern dient auch als Kompilierziel für andere Sprachen. CoffeeScript, TypeScript und Co. werden in JavaScript umgewandelt, bevor sie in der Runtime des Browsers zur Ausführung gelangen. Da die Auseinandersetzungen zwischen Opera, Mozilla und Microsoft zu einer immer größeren Performancesteigerung führten, sahen sich Entwickler dazu genötigt, eine virtuelle Maschine für den Browser zu konstruieren. Mit einem als Emscripten bezeichneten Compiler konnte man C-Programme transpilieren und danach in der gleichnamigen virtuellen Maschine im Browser ausführen.Emscripten mag mit kleineren Programmen problemlos funktionieren, stößt in der Praxis über kurz oder lang jedoch an Performancegrenzen. Das liegt daran, dass der Aufbau von JavaScript eher schlecht als recht für virtuelle Maschinen geeignet ist: Die Sprache muss geparst werden und vieles mehr. WebAssembly versucht dieses Problem durch Erweiterungen des Browsers zu umgehen. Es handelt sich dabei im Grunde genommen um eine alternative virtuelle Maschine, die im Browser neben der JavaScript-Umgebung ausgeführt wird und mit ihr interagiert. WebAssembly-Programme sind dann „High-Performance-Inseln“, die aus dem gewöhnlichen JavaScript-Code heraus aufgerufen werden können, wenn man die maximale Leistungsfähigkeit der zugrunde liegenden Hardware benötigt. Ähnlichkeiten mit dem in Palm OS 5 implementierten ARMlet-System sind rein zufällig, die Idee ist jedoch dieselbe.Immer weitere VerbreitungAls erste Versionen von Emscripten erschienen, betrachteten viele Entwickler das Produkt als Spielzeug. Im Fall von WebAssembly sieht die Situation jedoch anders aus – wer CanIUse nach Unterstützung für den Standard befragt, bekommt das in Abbildung 1 gezeigte und sehr befriedigende Ergebnis.Analog zur Entwicklung von Programmen für Microcontroller gilt auch in der Welt des WebAssembly, dass man Assemblercode nicht direkt von Hand erzeugt. Stattdessen kommen niedere Hochsprachen zum Einsatz, als Klassiker in besonderer Weise C. Tipp: Wer bereits erfahren in Sachen Assemblerprogrammierung ist, findet unter [2] eine Einführung...

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