Compilez du code C/C++ pour les navigateurs web

Réutiliser son code C/C++ au sein de pages web, voilà ce que permet le projet Emscripten. Il offre même d’embarquer des logiciels massifs, comme l’interpréteur Python.

Des solutions comme les ActiveX ou Native Client permettent de lancer du code compilé au sein des navigateurs web. Elles ne sont toutefois ni très populaires, ni standardisées. Le développeur qui souhaite aborder le web en tant que plate-forme ouverte devra donc opter pour une approche différente, mettant en jeu de multiples langages côté serveur, et un seul côté client, le JavaScript.

Tout ceci est toutefois en passe de changer. Ainsi, le projet Emscripten, permet de compiler du code C/C++ en JavaScript (traduire serait peut-être ici un terme plus exact). Il ne s’agit aucunement d’une simple démonstration technique. Emscripten s’appuie en effet sur le très sérieux LLVM dont il pourra reprendre les frontends C et C++.

Aujourd’hui, ce projet est suffisamment avancé pour permettra la compilation de programmes de grande taille, comme les interpréteurs CPython ou LUA. Grâce Emscripten, les navigateurs web peuvent ainsi supporter de nouveaux langages de programmation, sans aucun greffon. Le code ne s’exécute toutefois pas aussi rapidement que celui compilé en langage machine. Suivant les navigateurs, un rendement de 5 % à 10 % a ainsi pu être mesuré (ce chiffre s’accroissant avec les nouvelles versions des moteurs JavaScript).

Projet amusant à priori, Emscripten est également un moyen de réutiliser du code existant à l’intérieur des navigateurs web. Notez que llvm-js-backend a des visées similaires. Il pourrait à terme être fondu avec le projet Emscripten.