WebAssembly est désormais supporté par les principaux navigateurs

Par:
fredericmazue

mar, 14/11/2017 - 15:12

WebAssembly est un projet lancé par Mozilla, en coopération avec Brendan Eich, le créateur de JavaScript. WebAssembly, plutôt que remplacer javaScript, veut lui être complémentaire, et apporter la performance dans les applications web très exigeantes. Google et Microsoft se sont jointes dès le départ au projet et WebAssembly est en passe de devenir un standard industriel.

WebAssembly ou wasm est un format de fichier binaire, destiné à être exécuté dans les navigateurs, avec des performances proches du code natif. Un fichier wasm contient un code-byte 20 fois plus rapide à parser que du code asm.js. Il contient également des informations de débogage  ce qui rend possible le débogage une application wasm après compilation. En outre le code d'un fichier wasm s'exécute dans un environnment isolé (une sandbox) ce qui renforce la sécurité.

La compilation, quant à elle, convertit le code source d'un langage en ce byte-code wasm. Pour l'instant il s'agit de code C/C++, mais de nombreux autres langages devraient être supportés ultérieurement. Rust (Mozilla), Go (Google) et C# (Microsoft) au moins sont pressentis.

Pour un projet de ce genre, la question est toujours : comment cela se passe-t-il quand un navigateur ne supporte wasm ? Pour un tel cas, le projet WebAssembly inclut une bibliothèque polyfill qui convertira le code-byte wasm en JavaScript. Même dans ces conditions, le gain de performances apporté par wasm est important. Mais dès le départ, cette solution n'a été conçue n'être que temporaire, jusqu'à ce que les principaux navigateurs supportent WebAssembly, ce qui est désormais le cas.

En effet, dans un billet, Mozilla souligne qu'en plus d'être supporté depuis longtemps par Firefox et Google Chrome, WebAssembly est désormais supporté par Safari et Edge, grâce aux effort d'Apple et de Microsoft respectivement. WebAssembly est donc désormais disponible sur les principaux navigateurs, Internet Explorer étant destiné à disparaître.

Une très bonne nouvelle pour les développeurs d'applications Web qui demandent d'excellentes performances.

La vidéo ci-dessous est une démonstration du jeu AngryBots dans Edge. Démonstration réalisée en 2016 au moment où le support de WebAssembly dans Edge était expérimental.