URL: https://linuxfr.org/users/tanguy_k/journaux/normalisation-du-langage-dart-de-google-par-l-ecma Title: Normalisation du langage Dart de Google par l'Ecma Authors: tanguy_k Date: 2013年12月23日T17:17:34+01:00 License: CC By-SA Tags: dart, javascript, langage et firefox Score: 48 Le [langage Dart](http://fr.wikipedia.org/wiki/Dart_(langage_informatique)) de Google va être normalisé par l'ECMA au sein du [commité TC52](http://www.ecma-international.org/memento/TC52.htm). L'annonce a eu lieu [le 12 décembre 2013](http://blog.chromium.org/2013/12/ecma-forms-tc52-for-dart-standardization.html). Dart a été présenté la première fois en octobre 2011. La version 1.0 est sortie [le 13 novembre 2013](http://blog.chromium.org/2013/11/dart-10-stable-sdk-for-structured-web.html). Dart est multiplateforme et disponible sous licence BSD et sa syntaxe est très proche de celle de Java et C#. # 1. Objectif Le but de Dart à long terme est de remplacer JavaScript, [jugé impropre à la création d'applications web complexes](http://pastebin.com/raw.php?i=NUMTTrKj) :> "Javascript has fundamental flaws that cannot be fixed merely by evolving the language"> "The "clean break" option is extremely high risk--it will be a huge challenge to convince other browser vendors to rally around a new language--but is the only way to escape the historic problems with Javascript. Thus, its high risk is matched by the potential for a very high reward--a classic leapfrog strategy."> "When the leapfrog attempt succeeds (that is, it is an open standard and browsers covering a majority of market share implement it), web programmers will have a viable and superior alternative to JavaScript."> "Developers focusing on all browsers will have to wait multiple years for direct Harmony support, due to the relatively slow pace of the standardization process." Le (l'un ?) métier de Google est de créer des applications web complexes, ils ne peuvent plus se contenter des limitations de JavaScript. # 2. Quelques commentaires suite à l'annonce de la normalisation ## Hacker News (https://news.ycombinator.com/item?id=6897701 et https://news.ycombinator.com/item?id=6902520)> "I like Dart after trying it. The tools are great and the libraries are starting to come into their own."> "I've used it for a few projects now and have been really impressed with how quickly it's matured and how much fun it is to develop in."> "Google has gone about the introduction of Dart in a scrupulously open way. They publicized the language early on it's design and implementation, they open sourced their implementation immediately on announcement and continued development in the open with input and contributions from all comers. [...] Now they've begun a standardization process. [...] Mozilla couldn't ask for a more open [...] Regardless of Google's overall impact on the world, the Dart project is very much in line with Mozilla's mission. [...] I expect Mozilla will oppose Dart, but they'll have to twist themselves into rhetorical contortions in the process. NIH is alive and well." ## [Ars Technica](http://arstechnica.com/information-technology/2013/12/googles-dart-language-heads-for-standardization-with-new-ecma-committee/)> "Microsoft, Google, and ~~Apple~~ [ndlr : Jeremy Ashkenas] each independently realized that designing large projects in Javascript is a nightmare, so they designed something to replace it. That's why we have Typescript, Dart, and Coffeescript." ## [Slashdot](http://developers.slashdot.org/story/13/12/14/2047248/googles-dart-becomes-ecmas-dart)> "Google is gaining way too much power over [...] the internet."> "I want to say I like Dart. I have translated some of my javascript stuff over to see how it compares. In many ways it is a big improvement. However, it still does things I hate about javascript."> "As a web developer, I'm quite excited for Google Dart and am interested in seeing where it leads; I'm not sure what's with all the bashing about it, except out of pure ignorance. Javascript is a very useful and neat, but rather strange language, riddled with tricks, "gotchas", and downright strange behavior." # 3. En attendant que Dart VM arrive dans les navigateurs web (si jamais cela arrive) Actuellement beaucoup de développeurs utilisent des pré-processeurs pour compenser les défauts de JavaScript, notamment [CoffeeScript](http://coffeescript.org/) et [TypeScript](http://www.typescriptlang.org/) de Microsoft. Il y a deux problèmes avec ces (pseudo ?) langages : - Ils ne sont pas standardisés - Ils demandent une étape supplémentaire lors du développement en "compilant" le code vers JavaScript - Ils héritent de certains défauts de JavaScript Comparativement, les avantages de Dart sont : - Le langage est en cours de normalisation (pérennité supérieur) - Une version de [Chromium embarque la VM Dart](https://www.dartlang.org/tools/dartium/) et permet donc d'éviter l'étape de compilation vers JavaScript ce qui réduit les temps de développement Un outil ([dart2js](https://www.dartlang.org/docs/dart-up-and-running/contents/ch04-tools-dart2js.html)) est fournit pour compiler vers JavaScript en production tout comme CoffeeScript et TypeScript. # 4. Performances par rapport à JavaScript Les benchmarks de Google montrent que Dart VM est grosso-modo 2x plus rapide et que dart2js est légèrement au dessus que le code JavaScript équivalent écrit à la main : https://www.dartlang.org/performance/ D'autres benchmarks montrent que ce n'est pas encore toujours le cas : http://benchmarksgame.alioth.debian.org/ A noter que le développeur principal de Dart est [Lars Bak](http://en.wikipedia.org/wiki/Lars_Bak_(computer_programmer)) qui a écrit la VM JavaScript (V8) de Chrome qui est très performante. D'après lui et son équipe, les gains attendus dans le futur sont bien supérieurs alors que les VMs JavaScript ont commencées à atteindre leurs maximums. Dans certains cas, Dart VM va plus vite que la JVM : http://www.infoq.com/news/2013/05/Dart-Java-DeltaBlue De manière générale, les auteurs de Dart ont fait de la performance l'un des objectifs premiers : http://www.youtube.com/watch?v=huawCRlo9H4 # 5. Dart VM par défaut dans Chrome et Android ? Actuellement une version experimentale de [Chromium embarque la VM Dart](https://www.dartlang.org/tools/dartium/) Dixit le très bon article de [CNET](http://news.cnet.com/8301-1023_3-57615837-93/google-dart-target-chrome-soon-other-browsers...someday/), la VM Dart devrait arriver dans Chrome d'ici 1 an. Pour Android, aucune annonce n'a été faite mais il est déjà possible de [compiler et lancer Dart VM](https://code.google.com/p/dart/wiki/Android) sous cet OS. # 6. Idées reçus et trolls baveux ## Ca va être le nouveau ActiveX/Flash/Silverlight/... 1. Techniquement c'est difficilement comparable 2. Les objectifs sont différents 3. Contrairement à ActiveX/Flash/Silverlight/... les spécifications de Dart sont ouvertes depuis le début. L'implémentation est libre (licence BSD), le langage est en cours de normalisation et tout le monde peut participer. Comme indiqué dans un commentaire sur HackerNews: ["Google has gone about the introduction of Dart in a scrupulously open way"](https://news.ycombinator.com/item?id=6903420) ## Dart est contrôlé par Google contrairement à JavaScript Pour le moment oui : Dart est contrôlé par Google (initiateur du projet) ; tout comme JavaScript était contrôlé par Netscape dans les années 90. C'est la raison pour laquelle Google a lancé le processus de normalisation Ecma : pour inviter tout le monde à participer. Il y a déjà [des contributeurs externes](https://plus.google.com/+dartlang/posts/1VqDU9gLbao) mais la proportion est certainement très faible actuellement. ## Dart va segmenter le web Pour le moment non puisque les développeurs utilisent dart2js (même principe que CoffeeScript et TypeScript). Le risque est effectivement que Chrome embarque la VM Dart ET que Chrome (et non pas WebKit/Blink) possède 95% de part de marché (tout comme IE 6 à son époque). Alors certains développeurs seraient tentés de ne pas utiliser dart2js. ## Dart VM ne sera jamais intégrée à Firefox ni à Internet Explorer Peut-être. C'est ce qu'a annoncé par exemple [Brendan Eich](http://fr.wikipedia.org/wiki/Brendan_Eich), le CTO de Mozilla et créateur de JavaScript, en août 2011 : ["I guarantee you that Apple and Microsoft (and Opera and Mozilla, but the first two are enough) will never embed the Dart VM"](https://news.ycombinator.com/item?id=2982949). En attendant il y a dart2js. ## [asm.js](http://asmjs.org/) c'est mieux ! Rien à voir, asm.js est un sous-ensemble de JavaScript, une sorte de bytecode ou langage assembleur. Cela permet de convertir du C/C++ vers du JavaScript. ## Google a trop de pouvoir sur le web C'est vrai :/ # PS Je n'utilise pas Dart (mais compte le faire plutôt que d'utiliser CoffeeScript ou TypeScript), je ne suis pas employé par Google et je n'ai jamais possédé d'actions de cette entreprise. Il y a beaucoup de dénigrements autour de Dart qui a mon avis ne sont pas justifiés.

AltStyle によって変換されたページ (->オリジナル) /