La plupart des sites Web et des applications Web sont écrits en JavaScript, ou du moins quelque chose qui est converti en JavaScript. Il y a eu de nombreuses tentatives au fil des ans pour changer cela, mais ne vous attendez pas à ce que JavaScript disparaisse complètement de si tôt.
Zaplib est une startup qui a créé un framework pour réécrire des parties d’applications Web basées sur JavaScript dans le langage de programmation Rust, qui s’exécuteraient ensuite dans des navigateurs Web utilisant WebAssembly. Rust est un langage de programmation de bas niveau optimisé pour les performances et la sécurité, et de nombreuses applications ont utilisé Rust pour améliorer considérablement les temps de chargement et la réactivité. Mozilla a réécrit le moteur CSS du navigateur Web Firefox à l’aide de Rust en 2017, dans le cadre de la mise à jour « Firefox Quantum », qui a doublé les performances typiques de Firefox. WebAssembly permet aux sites d’écrire leur code dans des langages de programmation plus traditionnels, comme C++, et de l’exécuter dans un navigateur Web, tout comme JavaScript.
Zaplib espérait que la réécriture des applications Web dans WebAssembly alimenté par Rust, une section à la fois, entraînerait une augmentation des performances jusqu’à 10 fois. Cependant, les fondateurs de la société ont déclaré dans un « post-mortem » que les sauts massifs ne se sont pas tout à fait déroulés. « Notre pari était qu’il serait 10 fois plus ergonomique d’accélérer votre application, progressivement, dans Rust. Cela n’a pas résisté dans les implémentations réelles », a déclaré l’équipe.
Le groupe a noté quelques problèmes avec son plan. La plupart des entreprises hésitaient (naturellement) à réécrire leur code dans un langage que leurs ingénieurs ne connaissaient peut-être pas, mais plus important encore, il n’y avait pas de différence de vitesse significative entre un bon code JavaScript et un bon code Rust. Zaplib a aidé une entreprise à porter un outil de simulation sur Rust, qui n’a finalement été que 5 % plus rapide que la version JavaScript existante. Zaplib espérait également que son moteur de rendu 2D accéléré par le matériel aiderait, mais la majeure partie de l’amélioration des performances provenait de WebGL, qui n’a pas du tout besoin de Rust ou de WebAssembly.
Cela ne signifie pas que WebAssembly est terrible ou inutile – Google Earth et Photoshop ont tous deux été portés sur les navigateurs Web grâce à WebAssembly, et des entreprises comme Microsoft créent des cadres pour que davantage de développeurs effectuent la même transition. Il y a absolument une raison pour qu’il existe, mais JavaScript a également considérablement évolué au cours des dernières années. Le moteur « V8 » qui gère le code JavaScript dans Chrome, Microsoft Edge et d’autres navigateurs basés sur Chromium devient de plus en plus rapide. Selon Google, des optimisations récentes ont fait de Chrome le navigateur Web le plus rapide disponible sur Mac, et d’autres modifications ont également accéléré les versions Windows et Android.
WebAssembly apporte déjà une nouvelle vague d’applications sur le Web qui n’aurait pas pu exister il y a quelques années, mais ne vous attendez pas à ce que tout JavaScript disparaisse de sitôt. Zaplib a déclaré dans son article, « il existe généralement des moyens plus simples de trouver des améliorations de performances que Rust [or WebAssembly].”
Source : Zaplib