Firefox 52 supporte WebAssembly

Par:
fredericmazue

mer, 08/03/2017 - 15:37

La fondation Mozilla vient de publier Firefox 52, une mouture de son navigateur riche en nouveautés comme à chaque fois, mais qui se fait tout particulièrement remarquer par le support de WebAssembly.

JavaScript le langage commun à tous les navigateurs, est un souci constant. Prévu au départ pour de petits scripts d'accompagnement des pages web, par exemple pour vérifier la validité de la saisie dans un formulaire, JavaScript pose des problèmes de sûreté au niveau de la programmation et des performances pour les gros projets. Que dire alors des jeux 3D qui veulent décoiffer ?

De nombreuses tentatives ont été faites pour remédier à ces problèmes. En ce qui concerne les performances brutes, WebAssembly est une initiative très intéressante. Contrairement à de nombreux projets, WebAssembly ne se pose pas en remplaçant de JavaScript mais plutôt en un complément. WebAssembly est un projet open source sur GitHub, auquel Google et Microsoft participent, aux côtés de Mozilla.

WebAssembly ou wasm est un format de fichier binaire généré par un compilateur et destiné à être exécuté dans les navigateurs, avec des performances proches du code natif. Un fichier wasm contient d'une part un code-byte annoncé comme au moins 20 fois plus rapide à parser que du code asm.js et des informations de débogage d'autre part. Il est donc théoriquement possible de déboguer une application wasm après compilation.

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, Go  et C# les langages maisons des trois contributeurs, sont pressentis au moins.

Comment cela passe-t-il si un navigateur ne supporte pas wasm ? Le projet WebAssembly inclut le développement d'une libraire polyfill qui convertira le code-byte wasm en JavaScript. Même dans ces conditions le gain de performances apporté par wasm doit être non négligeable. Toutefois cette solution 'compliquée' ne doit être que temporaire. L'idée directrice du projet est que wasm soit supporté à relativemenr court terme par tous les navigateurs. 

Firefox 52 est le premier des navigateurs à supporter officiellement WebAssembly.

Vous pouvez en apprendre plus sur WebAssembly avec la première vidéo ci-dessous, ou vous faire une idée de ses performances en regardant la deuxième video ci-dessous, qui est une démonstration de WebAssembly publiée au mois de mars de l'année dernière.