WebAssembly lÀuft auf der Zielgeraden zum W3C-Standard
Das BinÀrformat ist nun eine Proposed Recommendation, das Konsortium ruft noch bis Ende Oktober zu Kommentaren auf.
Das World Wide Web Consortium (W3C) hat WebAssembly 1.0 zur Proposed Recommendation ernannt. Damit erreicht das BinĂ€rformat die vorletzte Stufe des Standardisierungsprozesses beim Konsortium. WebAssembly (wasm) ist ein Ansatz zur clientseitigen Browserprogrammierung ĂŒber ein BinĂ€rformat, das im Vergleich zu JavaScript eine erhöhte Performance erreicht.
Der Standardisierungsprozess ist seit dem ersten Entwurf Anfang 2018 [1] in drei Bereiche unterteilt: Die Core Specification fĂŒr den Kern [2] von WebAssembly, das JavaScript Interface [3] fĂŒr das Zusammenspiel der Skriptsprache mit wasm und die Web API [4]. Letztere legt eine Schnittstelle nach auĂen fĂŒr einzelne Bereiche innerhalb des WebAssembly-Codes fest, die sich aus der URL des Moduls, dessen Funktionsindex und der jeweiligen Position als Offset im Modul zusammensetzt:
${url}:wasm-function[${funcIndex}]:${pcOffset}
Entwicklung mit Format
Die WebAssembly Community Group hatte WebAssembly erstmals 2015 vorgestellt und 2016 einen ersten Release Candidate [5] veröffentlicht. Der Bytecode war von Anbeginn explizit nicht als Alternative, sondern als ErgĂ€nzung zu JavaScript ausgelegt. Er soll dort zum Einsatz kommen, wo Performance eine groĂe Rolle spielt.
BinĂ€rformate im Browser haben keinen guten Ruf, und WebAssembly soll schon mit dem Standardisierungsprozess Fehler vermeiden von Formaten wie Java und Flash, die im Browser vor allem aufgrund zahlreicher SicherheitslĂŒcken scheiterten, oder ActiveX, dem Microsofts proprietĂ€rer Alleingang zum VerhĂ€ngnis wurde.
Browser, Programmiersprachen und Engines
Das Format hat die breite UnterstĂŒtzung der Browserhersteller: Mozilla, Microsoft, Google und Apple waren von Anbeginn in die WebAssembly Community Group eingebunden. Letztere war unter dem Dach des W3C aufgestellt, aber bis dato keine eigene Untergruppe. Anfang 2017 hat das Format erfolgreich die Browser-Preview-Phase abgeschlossen [6], woraufhin das W3C den Standardisierungsprozess gestartet hat.
WebAssembly-Code lĂ€sst sich mit diversen Programmiersprachen erstellen, darunter C, C++, C#, Go und Rust, aber auch fĂŒr exotischere Sprachen wie F# existieren Tools. Die Hersteller der Spiele-Engines waren ebenfalls bereits Anfang 2017 an Bord: Unity mit Version 5.6 [7] und die Unreal Engine seit dem 4.16-Release [8].
Standardisierung beim W3C
W3C kennt fĂŒr den Standardisierungsprozess vier Stufen beziehungsweise Reifegrade (Maturity Levels). Nach dem ersten Working Draft (WD) im Februar 2018 folgte im Juli diesen Jahres [9] die Candidate Recommendation (CR).
Die aktuelle AnkĂŒndigung [10] der Proposed Recommendation (PR) ist die dritte Stufe, die schlieĂlich in der endgĂŒltigen W3C Recommendation (REC) mĂŒnden soll. Aktuell ruft das Konsortium zu Kommentaren auf, die es bis zum 27. Oktober entgegennimmt. (rme [11])
URL dieses Artikels:
https://www.heise.de/-4544315
Links in diesem Artikel:
[1] https://www.heise.de/news/W3C-veroeffentlicht-Entwuerfe-fuer-WebAssembly-Spezifikationen-3971413.html
[2] https://www.w3.org/TR/2019/PR-wasm-core-1-20191001/
[3] https://www.w3.org/TR/2019/PR-wasm-js-api-1-20191001/
[4] https://www.w3.org/TR/2019/PR-wasm-web-api-1-20191001/
[5] https://www.heise.de/news/Browserprogrammierung-Erster-Release-Candidate-von-WebAssembly-erschienen-3454250.html
[6] https://www.heise.de/news/Webentwicklung-WebAssembly-schliesst-Browser-Preview-Phase-ab-3641371.html
[7] https://www.heise.de/news/Unity-5-6-unterstuetzt-Nintendo-Switch-Vulkan-und-360-Grad-4K-Videos-3673090.html
[8] https://www.heise.de/news/Unreal-Engine-4-16-bringt-VR-Erweiterungen-und-WebAssembly-3725837.html
[9] https://www.heise.de/news/W3C-geht-den-naechsten-Schritt-zum-WebAssembly-Standard-4475468.html
[10] https://www.w3.org/blog/news/archives/7970
[11] mailto:rme@ix.de
Copyright © 2019 Heise Medien