Détours : JavaScript, le langage machine du web ?

Des applications de plus en plus évoluées sont maintenant proposées en JavaScript. Dernier exemple en date, un émulateur de PC capable de lancer une version minimaliste de Linux.

La vitesse des moteurs JavaScript intégrés aux navigateurs web connait une accélération sans précédent. Si les éditeurs ont toujours tenté d’améliorer les performances de leurs butineurs respectifs, il faut bien admettre que c’est Google, qui a – le premier – mis en avant la vélocité de son moteur JavaScript, lançant ainsi une course effrénée entre les différents acteurs du secteur.

Certes, ceci n’est pas du goût de tout le monde, certains ne voyant aucun intérêt dans le fait que leur navigateur favori effectue un test en 500 ms, plutôt qu’en 250 ms ou en 1000 ms. Pourtant, en se rapprochant de la vitesse du code natif, les moteurs JavaScript actuels permettent de créer des applications web presque aussi riches que celles présentes sur le bureau de l’ordinateur. Mieux, en association avec l’accélération graphique 2D ou 3D, des jeux très évolués pourront rapidement être diffusés sous la forme d’applications web.

Quoiqu’initialement non conçus dans ce but, les compilateurs JavaScript just-in-time intégrés aux butineurs font maintenant de plus en plus office de langage machine universel sur la Toile. Laissons donc de côté les adeptes du « personne n’aura jamais besoin de plus de 640 ko de mémoire » (phrase faussement attribuée à Bill Gates) pour se pencher vers ces nouveaux usages. En février, Google a mis en ligne un moteur de rendu de fractales. En début d’année, nous avions également mis en valeur les outils permettant de convertir du code C/C++ en JavaScript.

Fabrice Bellard vient de créer un émulateur de PC en pur JavaScript. Il permet de lancer une version épurée de Linux, du nom de JS/Linux. Le fonctionnement de l’ensemble est plus que correct, un compilateur C étant même de la partie (tentez un « tcc -run hello.c » depuis la ligne de commande). Certes, le PC simulé reste très lent. Toutefois, le système est parfaitement utilisable, pour peu que vous disposiez d’une configuration pourvue d’un navigateur web récent : Firefox 4, Chrome 11, Opera 11.11 ou Internet Explorer 9 (utilisez de préférence l’un des deux premiers).

En dehors de l’exploit réalisé au sein de cette démonstration technologique, Fabrice Bellard livre deux messages. Primo, les moteurs JavaScript actuels sont réellement performants et peuvent être utilisés pour des applications lourdes. Les développeurs web qui arrivent à mettre à genoux les machines de leurs utilisateurs avec cent lignes de code JavaScript n’auront donc plus aucune excuse derrière laquelle se cacher. Secundo, des outils fermés ne sont pas nécessaires pour réaliser de telles applications. Des produits comme Flash ou Silverlight auraient permis de créer cet émulateur bien plus aisément (et avec probablement de meilleures performances à la sortie), cependant, Fabrice Bellard montre ici que les standards du web sont suffisants.