EA2013 Dart

Présentation

 * Enseignants : Georges-Pierre Bonneau, Didier Donsez (EA2013)
 * Auteur : Nicolas Husson 
 * Sujet : Dart

Résumé
Dart est un langage structuré pour le web. Créé en 2011 par Google il a pour but premier de combler les lacunes du javascript. En effet selon Google ces dernières ne peuvent être palliées en améliorant le langage javascript. Comparé à javascript, Dart possède les avantages d'avoir un IDE complet (auto-complétion, debugger, génération de documentation...) ce qui permet d'améliorer la création/maintenance d'applications web complexes. Ce langage étant compilé, les performances sont meilleures que le javascript. De plus, ce dernier ressemble au C#, Java et Javascript en intégrant la possibilité de créer des interfaces et des classes. Ceci possède un double avantage, le premier est une meilleure adoption de la part de la communauté des développeurs, le second est une meilleure structuration du code en général.

Mots clés
Dart, Langage, Web, Google, Javascript

Abstract
Dart is a structured language for the web. Established in 2011 by Google it is primarily aimed at filling gaps in javascript. In fact according to Google the latter can not be remedied by improving the JavaScript language. Compared javascript, Dart has the advantages of having a complete IDE (auto-completion, debugger, documentation generation ...) which improves the creation / complex web applications maintenance. This language is compiled, the performance is better than the javascript. In addition, it looks like C #, Java and Javascript integrating the ability to create interfaces and classes. This has two advantages, the first is a better adoption from the developer community, the second is a better structuring of the code in general.

Keywords
Dart, Language, Web, Google, Javascript

Contexte
De nos jours le développement web permet de réaliser de petites applications de façon relativement simple, qui fonctionnent partout, et qui possède également l’avantage d’être adapter au développement incrémental. Les points négatifs du développement web apparaissent lors de la réalisation d’applications plus “importantes”. En effet, dans ce cas là, la structure devient plus complexe, ce qui implique une perte de productivité du point de vue développeur. De plus, la non présence d’un vrai IDE nuit également à cette productivité.

Dart
Google inventa Dart pour pallier à ces lacunes, mais aussi afin d’offrir de meilleurs performances que le javascript et une meilleure sécurité. “Les objectifs sont de créer un langage structuré mais flexible, familier et naturel donc facile à apprendre pour les programmeurs, délivrant des performances élevés sur tous les navigateurs et les plate-formes modernes, depuis les périphériques mobiles jusqu’aux serveurs d’exécution.” Lars Bark, un des créateurs de Dart. Cette citation de Lars Bark s’appuie sur le fait que Dart : utilise des classes et interfaces (langage structuré) typage statique optionnel (flexible) syntaxe inspiré de Java, C# et Javascript (familier et naturel) langage compilé (performance élevé) compilateur convertissant du dart en javascript (multi-navigateurs)

Ecosystème
Dart possède un IDE darteEditor (basé sur eclipse) disponible sur toutes les plateformes (mac, linux, windows). Le langage Dart peut être utilisé de deux façons différentes: Un gestionnaire de dépendance est également présent (Pub Package Manager). Un générateur de document dartdoc qui tends à ressembler à la documentation générer par java. Un SDK côté serveur permettant de créer une application en dart côté serveur.
 * via la machine virtuelle Dartium client qui permet d’exécuter des fichiers .dart et ainsi pouvoir profiter des performances de dart.
 * via le compilateur dart2js qui permet de porter ses applications sur tous les navigateurs

Performances
En bleu la courbe de performance de dart, en marron javascript et en violet le compilateur dart2js. Ce graphique est le résultat du benchmak Tracer qui test les performances en se basant sur le modèle d’émulation de classes. Les sources de ce benchmark sont disponible ici.

Comme on peut le constater dart possède de meilleurs performances que le compilateur dart2js mais également que du javascript (testé avec le moteur v8 de Chrome). Le plus étonnant est le résultat obtenu avec le compilateur. En effet, d’après ce benchmark ce dernier offre de meilleur résultat que le javascript lui même.

Informations complémentaires
⇒ monothread ⇒ angularjs

Liens
http://www.blog-nouvelles-technologies.fr/archives/10438/lavenir-du-javascript-jetez-y-un-oeil-des-aujourdhui/ https://gist.github.com/paulmillr/1208618 http://www.zdnet.fr/actualites/mais-que-nous-prepare-donc-google-avec-dart-39764845.html http://www.infoworld.com/d/application-development/first-look-google-dart-vs-javascript-179852 http://linuxfr.org/news/dart-va%E2%80%90t%E2%80%90il-remplacer-javascript-comme-langage-dans-les-navigateurs https://www.dartlang.org/ http://openweb.eu.org/articles/introduction_ecmascript http://blog.mistra.fr/dart-le-javascript-killer-made-in-google http://www.blog-nouvelles-technologies.fr/archives/38656/google-lance-la-version-2-0-de-son-outil-de-benchmark-javascript-nomme-octane/ http://news.cnet.com/8301-1023_3-57584979-93/google-dart-will-rescue-browsers-from-javascript/ http://soat.developpez.com/tutoriels/dart/langage-web-feedback-devoxx-france2013/ http://www.antoine-guillemaille.fr/document/dart/avenir.html http://www-igm.univ-mlv.fr/~dr/XPOSE2012/dart/types.html http://synonym.dartlang.org/