La fondation Mozilla travaille sur une nouvelle technologie, le Asm.js. un sous-ensemble Javascript spécialement optimisé pour Firefox. Mozilla espère ainsi réduire drastiquement les temps d’exécution du Javascript.
Le Javascript est un langage de programmation particulièrement courant sur le Web. Il est utilisé dans beaucoup de domaines, autant pour contrôler les données des formulaires HTML que pour des optimisations graphiques de la page. Le code Javascript est exécuté directement dans le navigateur, ce qui pose le problème de la performance : une application tournant en natif à partir du bureau de l’ordinateur fonctionnera toujours plus rapidement qu’une application Javascript exécutée dans un navigateur.
La fondation Mozilla est bien consciente de ce problème et planche actuellement sur «Asm.js», un sous-ensemble Javascript permettant d’optimiser les performances de ce langage et de son exécution par le navigateur Firefox. C’est notamment sur cette technologie que repose la prouesse de Epic, qui était parvenu à faire fonctionner son Unreal Engine 3 dans un navigateur. L’outil Enscripten a été utilisé pour convertir le code du jeu, en C++, vers du Javascript capable de fonctionner sans plugins additionnels dans le navigateur de Mozilla.
Le site Ars Technica s’est lancé dans une série de tests pour évaluer les performances d’Asm.js. Mozilla a en effet affirmé que les applications écrites en asm.js bénéficiaient d’un temps d’exécution 50% inférieur aux applications natives. En moyenne, selon les tests effectués par Ars Technica, le code asm.js est effectivement deux fois plus rapide que du Javascript classique, et se rapproche beaucoup de la vitesse d’exécution native. Avec quelques limites néanmoins : d’une part le Asm.js ne tire pas parti des multi cœurs qui équipent nos chers ordinateurs modernes, et d’autre part cette technologie reste encore au stade de développement et ne fonctionne que sur les dernières versions du navigateur Firefox. Google a déjà exprimé son intérêt pour Asm.js, mais il faudra encore attendre quelques années pour que cette solution soit effectivement supportée par tous les navigateurs.
L’enjeu est de taille, puisqu’une telle technologie pourrait faire basculer le développement des applications vers le Web plutôt que vers des applications natives. C’est également un enjeu important pour l’industrie du jeu vidéo, qui avec le développement de tels outils, pourrait se tourner encore plus résolument vers le Web, avec notamment des outils 3D.