Erste experimentelle Implementierungen von wasm in Microsoft Edge, Firefox und Chrome

WebAssembly erreicht ersten Meilenstein
Kommentare

WebAssembly – kurz wasm – ist ein low-level, portabler Bytecode, der bei fast nativer Geschwindigkeit ausgeführt und so zu einer überaus performanten JavaScript-Alternative werden soll. Nun hat die hinter der Entwicklung von wasm stehende Community Group mit mehreren experimentellen Browser-Implementierungen von WebAssembly ihren ersten großen Meilenstein erreicht.

„A virtual CPU for the Web“ – so beschreibt Luke Wagner den neuen Standard in einem Blogpost im Mozilla-Entwicklerblog. Hinter der Entwicklung von WebAssembly steht eine W3C Community Group, zu deren Mitgliedern insbesondere auch die großen Browser-Hersteller Mozilla, Google, Apple und Microsoft zählen. Und die dürfen sich nun über das Erreichen des ersten großen Meilensteins in der Entwicklung von WebAssembly freuen: die ersten experimentellen Browser-Implementierungen im Firefox Nightly, Microsoft Edge und Chrome Canary.

Was steckt hinter WebAssembly?

Schneller, besser, sicherer – das sind nur drei der Anforderungen an heutige Webstandards. Mit dem JavaScript-Subset asm.js hat sich bereits gezeigt, dass Browser eine fast native rechenbetonte Performance erreichen können, die reinem JavaScript deutlich überlegen ist. So wird asm.js derzeit mithilfe des Compilers Emscripten für verschiedene Applikationen eingesetzt; dazu zählen etwa Mapping-, Kryptographie-, Bildbearbeitungs- oder Gesichtserkennungsapplikationen, aber auch eine Vielzahl von Spielen setzt auf asm.

Mit wasm, so die Kurzform von WebAssembly, will man das Web nun noch einen Schritt weitertreiben: So soll WebAssembly als ein standardisiertes Binär-Format dienen, das gleichzeitig problemlos mit bestehenden Web-APIs funktioniert und eng mit JavaScript integrierbar ist – sprich, Calls zwischen WebAssembly und JavaScript ermöglicht. Gleichzeitig soll wasm in Zukunft auch eigene low-level-Features erhalten, die unabhängig von bestehenden JavaScript-Features nutzbar sind.

Go for PHP Developers

mit Terrence Ryan (google)

Everything you need to know about PHP 7.2

mit Sebastian Bergmann (thePHP.cc)

WebAssembly im Browser

Bei der Entwicklung von WebAssembly hat das Entwicklerteam vor allem auf der Erfahrung mit asm.js und Emscripten aufgebaut. Neben den ursprünglichen Plänen zum neuen Standard, einem Spezifikations- und Reference-Interpreter und 13.000 Zeilen an Tests hat die Community Group nun auch den ersten Entwurf des Binärformats vorgestellt – und das innerhalb einer relativ kurzen Entwicklungszeit.

So wurden WebAssembly-Prototypimplementierungen in vier Browser-Engines vorgenommen, die bereits eine deutlich bessere Performance als reines JavaScript oder asm.js an den Tag legen. Und es kommt noch besser: Nachdem die Basis für die Nutzung gelegt wurde, können nun erste Demos mit dem neuen Standard erstellt werden, die mit mehreren, experimentellen Implementierungen funktionieren.

Experimentell ist dabei allerdings das Stichwort. Dazu erklärt Wagner:

We do mean „experimental“: both the binary format and JS bindings for WebAssembly will likely change incompatibly over the next months until the first edition is stabilized.

Doch eine fertige erste Version von wasm war auch gar nicht der Fokus dieses ersten Meilensteins. Stattdessen ist es zunächst wichtig, alle Browser-Hersteller unter einen Hut zu bekommen, damit die Weiterentwicklung auch künftig möglichst schnell und problemlos vorangehen kann.

Trotzdem freut man sich natürlich über die erste funktionierende Demo, die in verschiedenen Browsern läuft. Dabei handelt es etwa um eine AngryBots-Demo in Microsoft Edge; für Firefox und Chrome stehen ähnliche Previews zur Verfügung. Das folgende Video zeigt die Demo in Microsoft Edge:

Besonders auffällig daran: Die Demo startet deutlich schneller als vergleichbare asm.js-Demos, da die WebAssembly-Binaries deutlich kleiner sind und schneller geparst werden können.

WebAssembly und die Zukunft

Bis eine Stable-Version von WebAssembly zur Verfügung stehen wird, dürfte es laut Wagner noch ein wenig dauern. So stehen noch einige Aufgaben aus, die zuvor erledigt werden müssen, etwa die Definition des offiziellen WebAssembly-Textformats, die weitere Verkleinerung der Binärformats-Größe und die Iteration auf dem WebAssembly-JavaScript-API. Darüber hinaus planen die Browserhersteller auch noch jeweils eigene Weiterentwicklungen und Feature-Implementierungen, die ebenfalls noch einige Zeit benötigen werden.

Mehr Informationen dazu bieten die jeweiligen Blogposts von Mozilla, Microsoft und Google.

Aufmacherbild: Red and white painted milestones in range on a country road under the sunlight von Shutterstock / Urheberrecht: Asia Images

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -