Non seulement il faut implémenter Dart dans les nouveaux navigateurs pour en tirer parti mais en plus toutes les étapes de manipulation DOM et events sont à réapprendre
Pour obtenir de meilleurs perfs que JavaScript, en effet il faut la Dart VM.
Mais la rupture que tu decris n'existe pas : dart2js permet de convertir du code Dart vers JavaScript (avec des perfs identiques a du JavaScript ecrit a la main).
Exactement de la meme facon que CoffeeScript ou TypeScript.
querySelector() va te retourner un seul element contrairement a jQuery qui retourne systematiquement une liste. De plus c'est "built-in" dans le langage, pas besoin de passer par une librairie externe.
Reellement, ca prends 30s chrono pour n'importe qui qui a deja ecrit du code jQuery et les avantages sont immediats.
Ta remarque "on sait ce qui se passe quand une techno google n'a pas le succès escompté" est parfaitement valide et tout le monde en a conscience. La normalisation du langage, l'integration de Dart VM dans Chrome et l'utilisation grandissante de Dart en interne par Google sont des elements determinants.
Revenons a ams.js.
1- Encore une fois, ca n'a pas le meme but. Les demos que tu donnes en exemples le montrent bien : ce sont des compilations de jeux videos OpenGL C/C++ !
Crois-tu que asm.js va remplacer du code JavaScript/jQuery (ou CoffeeScript, TypeScript...) avec AngularJS ou Backbone.js ?
Pourquoi alors Mozilla travaille encore sur les futurs versions de JavaScript si asm.js va tout changer ? Va t-on ecrire le prochain Facebook avec asm.js ?
2- asm.js n'est pas plus rapide que JavaScript au sens ou tu l'entends.
asm.js est plus rapide que JavaScript quand on compare l'execution d'un code C/C++ compilé vers JavaScript classique VS vers asm.js avec une VM specialisee. Il est aussi possible de comparer le code C/C++ original et la version compilee asm.js.
Mais il n'est pas possible de prendre une appli web existante (JavaScript, jQuery, Backbone.js), de la recompiler avec asm.js et de comparer les perfs : c'est juste completement different.
3- asm.js est une approche intelligente, comparativement peut-etre meilleur (ou pas) que NaCl (je n'ai utilise ni l'un ni l'autre).
Ca vient de sortir, ca a fait le buzz fin 2013, attendons que le buzz soit retombe.
[^] # Re: Petite digression sur asm.js
Posté par tanguy_k (site web personnel) . En réponse au journal Normalisation du langage Dart de Google par l'Ecma. Évalué à 1.
Pour obtenir de meilleurs perfs que JavaScript, en effet il faut la Dart VM.
Mais la rupture que tu decris n'existe pas : dart2js permet de convertir du code Dart vers JavaScript (avec des perfs identiques a du JavaScript ecrit a la main).
Exactement de la meme facon que CoffeeScript ou TypeScript.
Quant a reapprendre les APIs (pas bien epaisses) pour manipuler le DOM et les events (click, focus, hover...), c'est simplifie dans Dart et les fonctions s'inspirent de celles de jQuery.
Exemple :
querySelector() va te retourner un seul element contrairement a jQuery qui retourne systematiquement une liste. De plus c'est "built-in" dans le langage, pas besoin de passer par une librairie externe.
Reellement, ca prends 30s chrono pour n'importe qui qui a deja ecrit du code jQuery et les avantages sont immediats.
Cf http://www.parleys.com/play/52a9897ce4b04354fb7e57d0/chapter19/about : Montage, Blossom.io - apparemment bien etabli, GreenTea/Angular.dart
Oui c'est vrai, c'est encore pauvre comme exemples et Dart doit encore convaincre.
Ta remarque "on sait ce qui se passe quand une techno google n'a pas le succès escompté" est parfaitement valide et tout le monde en a conscience. La normalisation du langage, l'integration de Dart VM dans Chrome et l'utilisation grandissante de Dart en interne par Google sont des elements determinants.
Revenons a ams.js.
1- Encore une fois, ca n'a pas le meme but. Les demos que tu donnes en exemples le montrent bien : ce sont des compilations de jeux videos OpenGL C/C++ !
Crois-tu que asm.js va remplacer du code JavaScript/jQuery (ou CoffeeScript, TypeScript...) avec AngularJS ou Backbone.js ?
Pourquoi alors Mozilla travaille encore sur les futurs versions de JavaScript si asm.js va tout changer ? Va t-on ecrire le prochain Facebook avec asm.js ?
2- asm.js n'est pas plus rapide que JavaScript au sens ou tu l'entends.
asm.js est plus rapide que JavaScript quand on compare l'execution d'un code C/C++ compilé vers JavaScript classique VS vers asm.js avec une VM specialisee. Il est aussi possible de comparer le code C/C++ original et la version compilee asm.js.
Mais il n'est pas possible de prendre une appli web existante (JavaScript, jQuery, Backbone.js), de la recompiler avec asm.js et de comparer les perfs : c'est juste completement different.
3- asm.js est une approche intelligente, comparativement peut-etre meilleur (ou pas) que NaCl (je n'ai utilise ni l'un ni l'autre).
Ca vient de sortir, ca a fait le buzz fin 2013, attendons que le buzz soit retombe.