On peut aussi dessiner la chaîne de cette manière :
Ce que tu proposes :
Javascript => asm.js => code machine
Ce qui se fait actuellement :
Javascript => Code machine
Il ne faut pas oublier que le javascript est déjà compilé, de nos jours (avec le JIT).
asm.js et emscripten sont utiles pour compiler d'autres langages en Javascript. Vouloir transformer du javascript en asm.js va demander des cabrioles pour contourner les types de asm.js (puisque Javascript n'est pas typé), ce qui limite vachement l'intérêt de asm.js, non ?
Pour la même raison, compiler des langages dynamiquement typés en asm.js plutôt qu'en Javascript peut-être moins intéressant. Les projets comme Pyjamas, Lua.js, et même go2js transforment leur code directement en Javascript, en réutilisant les types dynamiques de Javascript. Réimplémenter un nouveau système de typage et d'objets alors qu'il en existe déjà un (optimisé par la compilation JIT, qui plus est) semble moins efficace, à vue de nez. (Vous vous imaginez, on aurait un code qui ressemble aux GObjects, mais en Javascript…)
Compiler l'interpréteur Python avec emscripten fera tourner le code Python à 50% de sa vitesse (pour le moment), compiler le code Python en javascript avec Pyjamas le fera tourner à la vitesse de Javascript (On va donc dire, à la même vitesse que le code Python d'origine, parce que ce sont deux langages dynamiques. C'est sans prendre en compte que le Javascript peut être plus rapide que le Python, ou pas, j'ai pas fait de tests ;-))
[^] # Re: pourquoi pas du js converti en asm.js
Posté par daeldir . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 3.
On peut aussi dessiner la chaîne de cette manière :
Ce que tu proposes :
Javascript => asm.js => code machine
Ce qui se fait actuellement :
Javascript => Code machine
Il ne faut pas oublier que le javascript est déjà compilé, de nos jours (avec le JIT).
asm.js et emscripten sont utiles pour compiler d'autres langages en Javascript. Vouloir transformer du javascript en asm.js va demander des cabrioles pour contourner les types de asm.js (puisque Javascript n'est pas typé), ce qui limite vachement l'intérêt de asm.js, non ?
Pour la même raison, compiler des langages dynamiquement typés en asm.js plutôt qu'en Javascript peut-être moins intéressant. Les projets comme Pyjamas, Lua.js, et même go2js transforment leur code directement en Javascript, en réutilisant les types dynamiques de Javascript. Réimplémenter un nouveau système de typage et d'objets alors qu'il en existe déjà un (optimisé par la compilation JIT, qui plus est) semble moins efficace, à vue de nez. (Vous vous imaginez, on aurait un code qui ressemble aux GObjects, mais en Javascript…)
Compiler l'interpréteur Python avec emscripten fera tourner le code Python à 50% de sa vitesse (pour le moment), compiler le code Python en javascript avec Pyjamas le fera tourner à la vitesse de Javascript (On va donc dire, à la même vitesse que le code Python d'origine, parce que ce sont deux langages dynamiques. C'est sans prendre en compte que le Javascript peut être plus rapide que le Python, ou pas, j'ai pas fait de tests ;-))