Je commence à entendre des rumeurs sur ce projet appelé ASM.js . Actuellement, leur site Web est horrible et déroutant. Voici ce que je sais de mes recherches sur le web.
Il ne semble pas y avoir d'informations concrètes sur le Web sur ce que c'est vraiment ou l'utilité ou le but ultime. Est-ce que je peux compiler mes bases de code sinon côté serveur et les faire exécuter dans le navigateur à des vitesses proches de celles natives? Quelles sont les ramifications pour les développeurs?
Vous avez déjà décrit ce que c'est . L'utilisation est que c'est un langage de bas niveau qui fonctionne sur tous les navigateurs , est assez rapide dans la plupart et très rapide dans certains. Ce que vous en pensez est aussi ouvert que ce que vous faites avec n'importe quel autre langage de programmation.
Le cas d'utilisation auquel Mozilla semble le plus attaché est le suivant: Il existe déjà des moyens de compiler des langages avec des backends LLVM (principalement C et C++) en JavaScript, via Emscripten. asm.js est très proche de ce que Emscripten émet déjà, ce qui permet au code Emscripten (qui est déjà incroyablement rapide sur les compilateurs JavaScript JIT d'aujourd'hui) de devenir encore plus rapide, ce qui contribue à l'objectif de portage des bases de code existantes sur le Web. Encore une fois, ce que vous utilisez exactement, c'est votre décision. Le portage de jeux est un cas d'utilisation (dans lequel Mozilla est apparemment activement impliqué), mais il existe d'innombrables choses écrites en C et C++, dont beaucoup pourraient être utiles pour le site Web de quelqu'un. Certains que j'ai vus jaillir (plus certains de ma propre conception), sans aucune garantie de faisabilité:
Imaginez ASM.js comme un grand ArrayBuffer binaire appelé un tas et un ensemble de modules JavaScript, qui commencent par une directive de prologue: "use asm";
et effectuer des opérations rapides de bas niveau sur des données binaires brutes, similaires aux langages d'assemblage. Ces modules pourraient être écrits à la main ou mieux compilés à partir du code LLVM par des scripts comme Emscripten. Leurs performances pourraient être améliorées grâce au moteur Mozilla OdinMonkey, mais elles sont rétrocompatibles avec la plupart des interpréteurs ECMAScript modernes.
ASM.js n'est pas limité aux jeux, vous pouvez même exécuter des applications Qt entières dans votre navigateur, comme ces !