Dart : compilation Javascript obligatoire pour le Web
Dart n'aura sa VM dans Chrome et dans les autres navigateurs. Les équipes de développement du langage mise tout sur la compilation Javascript pour le Web.
Comme un retour en arrière, les équipes de développements du langage Dart, initié par Google, ont finalement décidé de ne pas proposer une exécution du code natif dans les navigateurs. En matière de développement sur le Web, Dart sera systématiquement compilé en Javascript.
Le langage Dart est né chez Google en 2013. A l’époque, ce langage visait à combler les lacunes de Javascript, tout particulièrement en termes de performances et de facilité de développement. Très vite, Google a fait le choix de porter son langage auprès des organismes de standardisation, pour justement, le hisser au niveau de Javascript. Et rassurer les éditeurs de navigateurs. Dart est devenu un standard Ecma en juillet 2014.
A l’origine, Dart proposait deux méthodes d’exécution pour le Web : une première dans une VM maison de Google dont la vocation était de l’embarquer dans Chrome – et au final dans les autres navigateurs – pour une exécution native. Une seconde via un compilateur maison (dart2js) qui passe le code Dart en Javascript pour s’exécuter dans le navigateur. Cette 2e option est aujourd’hui la seule retenue par les équipes de développement de Dart. La VM native ne sera pas intégrée à Chrome.
Lars Bak & Kasper Lund, les créateurs de Dart, précisent dans un billet de blog que Dart était certes utilisé par de nombreux développeurs dans des applications critiques. Mais les utilisateurs souhaitaient également « une meilleure intégration avec Javascript », ainsi « qu’un moyen plus facile pour debugger et optimiser leurs applications sur tous les navigateurs modernes ». Or, les éditeurs de navigateurs restent toujours muets quant à une prochaine intégration de Dart dans leurs applications.
“Jusqu’en décembre 2014, aucun navigateur en production ne peut exécuter du code Dart, à moins qu’il ne soit d’abord compilé en JavaScript, précise d’ailleurs le site Dartlang, dans une FAQ.
Toutefois, pour les développements sur Dart côté serveur et client (comme les mobiles), « nous continuons à optimiser et à améliorer Dart VM pour les outils de développements, les serveurs et les applications mobiles. »