WebAssembly : plusieurs acteurs mondiaux œuvrent pour un Internet plus rapide
Les grands acteurs du petit monde d’Internet font naturellement tout pour vous fidéliser le plus possible à leur propre système d’exploitation et l’écosystème environnant qui va de pair. C’est pourquoi il est très réjouissant d’apprendre qu’ils sont actuellement en train de collaborer dans le cadre du développement d’un nouveau script pour les navigateurs qui est censé briser les barrières : WebAssembly.
JavaScript, l’élément essentiel
Google, Apple, Microsoft et Mozilla ont uni leurs forces pour faire en sorte que les sites web puissent non seulement se charger plus rapidement, mais aussi atteindre un niveau d’interopérabilité plus élevé. Internet est entièrement basé sur des standards qui permettent d’afficher correctement des sites web – qu’ils soient simples ou complexes, super interactifs, et pleins de médias en tous genres – dans n’importe quel navigateur, sur n’importe quel ordinateur, et quel que soit le système d’exploitation utilisé.
JavaScript forme actuellement le ciment qui garantit cette interopérabilité, mais le langage de programmation a ses limites. Cela fait déjà quelques années que les développeurs cherchent des moyens de dépasser ces limites en construisant des compilateurs qui traduisent le code écrit en d’autres langages en JavaScript. Parmi ces compilateurs, on retrouve notamment TypeScript de Microsoft et le projet asm.js de Mozilla.
Code binaire
Ces efforts semblent aujourd’hui avoir été fusionnés en un projet commun baptisé WebAssembly. Pour résumer la situation : les fichiers JavaSript sont de simples fichiers texte, qui sont téléchargés du serveur et ensuite analysés et compilés par le moteur JavaScript intégré au navigateur. Avec WebAssembly, on n’envoie plus de simples fichiers texte, mais bien des fichiers binaires. Ainsi, le code peut être encore plus compressé, et le moteur JavaScript est capable de décoder le format binaire jusqu’à 23 fois plus rapidement que ce n’est le cas actuellement.
Il y aurait même une « bibliothèque polyfill », grâce à laquelle le code WebAssembly serait transformé en JavaScript, de manière à ce qu’il puisse être utilisé dans n’importe quel navigateur, même si ce dernier n’offre pas une prise en charge native de WebAssembly.
L’objectif n’est pas de remplacer JavaScipt, mais de compiler beaucoup plus de langages de programmation pour le Web. Il est de ce fait aussi très fort probable que JavaScript et WebAssembly coexisteront sur Internet. Certains éléments d’une application utiliseront les modules WebAssembly, p. ex. pour l’animation, l’affichage, la compression, etc. D’autres resteront par contre codés en JavaScript, comme p. ex. l’interface utilisateur.
Ce que vous devez absolument retenir de cette évolution, c’est que WebAssembly ouvrira plus de possibilités aux applications web – c’est-à-dire des applications qui tournent dans le navigateur et qui sont, par définition, indépendantes de toute plateforme. Plus d’applications dans le navigateur signifie aussi une plus grande interopérabilité. Et donc moins de travail pour le développeur qui doit à chaque fois recoder son application pour différents systèmes d’exploitation (iOS, Android, Windows Mobile...). Il s’agit donc clairement d’une évolution positive !
Si vous désirez en savoir plus, n’hésitez pas à jeter un coup d’œil sur la page WebAssembly de Git-Hub, ainsi qu’à l’interview avec Brendan Eich sur Medium.com. Pour de plus amples explications concernant le fonctionnement de WebAssembly, rendez-vous sur ModusCreat.