Les applications Web gagnent de plus en plus en complexité. De nos jours, de nombreuses pages Web disposent de contenus riches. Les jeux sur le Web sont en train de se démocratiser. Les navigateurs doivent offrir de meilleures performances.
Les éditeurs de navigateurs ont apporté de nombreuses optimisations à leur moteur d’exécution JavaScript, afin d’améliorer les performances de ceux-ci.
Cependant, les performances des applications JavaScript demeurent toujours très en dessous des performances des applications natives.
Plusieurs solutions ont été développées par des géants du Web afin de rapprocher les performances des applications Web de celles des applications natives.
L’une des premières solutions avait été proposée par Google. Le géant de la recherche avait développé Native Client, une technologie permettant d'exécuter du code C/C++ à l'intérieur du navigateur dans un environnement protégé. Native Client avait été intégré au navigateur Chrome. Mais, les autres éditeurs n’ont pas suivi le mouvement et la solution est restée peu utilisée.
La fondation Mozilla de son côté a développé Asm.js. Une technologie qui semble plus prometteuse que Native Client. Asm.js est un sous-ensemble de JavaScript qui permet d’améliorer considérablement les performances des applications Web.
Microsoft, quant à lui, pour faire de JavaScript une plateforme idéale pour le développement de costaux projets, a développé TypeScript. TypeScript est un préprocesseur qui ajoute un typage statique et optionnel au langage JavaScript.
Il est donc clair que JavaScript a de nombreuses faiblesses. Mais, il jouit d’une popularité et des avantages qui le rendent incontournable sur le Web. Il est supporté par tous les navigateurs, il est agnostique et fonctionne sur de nombreuses architectures. De plus, les scripts JavaScript sont exécutés dans le navigateur, au sein d’un sandbox, ce qui réduit les risques liés à la sécurité.
Au lieu d’évoluer de façon dispersée, des géants de l’IT se sont mis ensemble pour tirer parti du meilleur de leurs précédents investissements pour développer une solution qui pourra bénéficier d’une large prise en charge.
C’est ainsi qu’est né le projet WebAssembly, qui est soutenu par Google, Mozilla, Microsoft et des développeurs du moteur de rendu Web Webkit.
WebAssembly est un nouveau format binaire pour la compilation d’applications pour le Web.
Selon Brendan Eich, père du langage JavaScript, WebAssembly est une évolution de Asm.js. La solution permettra de combler certaines limitations de Asm.js.
En effet, si Asm.js permet d’optimiser la vitesse d’exécution des fichiers JavaScript, le recours à un analyseur de code pose encore problème, surtout sur les terminaux mobiles. « La compression est nécessaire et permet d’économiser la bande passante, mais la décompression avant l’analyse fait mal », explique Brendan Eich, qui fait savoir qu’en plus, JavaScript dispose de quelques maladresses, même dans son sous-ensemble Asm.js.
WebAssembly (wasm) comprendra à la fois une notation binaire que les compilateurs pourront produire et une notation texte correspondante, qui sera adaptée pour un affichage dans les environnements de développement.
Compte tenu du fait que JavaScript est supporté par tous les navigateurs, les développeurs du projet ont mis sur pied polyfill. Il s’agit d’un script JavaScript qui permettra de convertir wasm en asm.js pour les navigateurs qui ne supportent pas WebAssembly. Selon des tests avec un prototype de polyfill , wasm serait de 20% plus rapide que asm.js grâce, notamment, aux optimisations au niveau de la compression du code.
Une fois que la prise en charge de WebAssembly sera effective dans tous les navigateurs, la technologie pourra diverger de JavaScript, et s’éloigner « des aspects dangereux et inappropriés du langage de script ». De nouveaux outils (compilateurs, débogueurs, etc.) seront développés pour ouvrir le Web à d’autres langages utilisés pour le développement natif.
L’ équipe en charge du projet fait savoir que l’idée n’est pas de remplacer JavaScript. Mais, d’offrir plus de possibilités pour le Web et permettre aux développeurs d’utiliser des langages adaptés pour des opérations complexes, tandis que JavaScript continuera à exceller au niveau de l’interface utilisateur.
Avec le support dont bénéficie le projet, il devrait rapidement, à terme, se retrouver dans les navigateurs populaires. Un groupe communautaire a été créé pour le projet sur le site du W3C.
Source : Billet de Brendan Eich
Et vous ?
Que pensez-vous de ce projet ? JavaScript a du souci à se faire ?
Mozilla, Microsoft et Google veulent booster le Web avec un nouveau format binaire,
WebAssembly représente-t-il une menace pour JavaScript ?
Mozilla, Microsoft et Google veulent booster le Web avec un nouveau format binaire,
WebAssembly représente-t-il une menace pour JavaScript ?
Le , par Hinault Romaric
Une erreur dans cette actualité ? Signalez-nous-la !