Dart

Présentation

Dart est un langage développé par Google et dévoilé en octobre 2011. Il a pour objectif de remplacer JavaScript en apportant un langage plus structuré pour développer des applications web. Le SDK comprends :

  • Le langage Dart
  • Les librairies Dart
  • Le compilateur Dart-to-JavaScript
  • Pub : le gestionnaire de paquets pour Dart
  • La VM Dart

Deux outils viennent compléter le SDK : L’éditeur Dart et Dartium (un navigateur).

Le langage Dart

Dart est un langage client et serveur qui s’inspire de nombreux langages :

source

On retrouve donc tous les concepts de l’orienté objet de C# avec les classes et l’héritage. Le langage est mono-thread mais utilise le concept d’Isolates de l’Erlang (programmation concurrente). La syntaxe est proche du JavaScript. Les développeurs Java, C# et JavaScript n’auront  pas de mal à développer avec Dart. L’extension d’un fichier dart est « .dart ».

Pour plus d’info sur le langage : dart

Un exemple de code Dart :

Les librairies Dart

Le SDK Dart fournit de nombreuses librairies pour nous aider à développer des applications web. Voici  3 exemples de librairies. Pour plus d’info : Librairies

Dart : core

La librairie dart : core est automatiquement intégré à tous les programmes Dart, elle fournit des éléments essentiels comme l’objet Number, String, les collections ou encore les expressions régulières.

Dart : io

La librairie dart :io n’est pas utilisable par les applications basées dans le navigateur. Elle fournit des API afin de gérer les fichiers, les dossiers, les processus, les sockets et les ressources HTTP. Par exemple, on utilisera cette librairie pour créer un serveur HTTP.

Dart : html

Dart : html n’est utilisable que pour les applications web. Elle fournit des APIs pour manipuler le DOM et accéder aux APIs  HTML5 (Storage et WebSocket par exemple).

Pub

Pub est le gestionnaire de paquets pour Dart. Il permet de récupérer du code,  des bundles ou des librairies que la communauté Dart a partagées. Le gestionnaire fait partie du SDK et a été installé au même moment. Il faudra ajouter une variable d’environnement pointant vers le dossier bin de Dart.

Insérer un paquet dans un projet :

Il faut définir créer/modifier  le fichier pubspec.yaml. C’est ce fichier qui va servir à renseigner les paquets qui seront utilisés dans l’application. Voici un exemple de ficher pubspec.yaml :


Pour installer un paquet, on utilisera la commande « pub install ». Pub installe dans le projet les paquets renseignés par le fichier pubspec.yaml.


Il ne reste plus qu’à importer le paquet dans notre fichier à l’aide de la ligne suivante :


Pour plus d’info : http://pub.dartlang.org/

VM dart

Le langage Dart a besoin de la VM Dart pour être interprété. Celle-ci a fournis par le SDK. La VM peut alors exécuter le programme Dart en deux modes : checked et production.

En mode checked, le compilateur prend en compte les déclarations « assert » et lancera des exceptions si celles-ci sont égales à « false ».

En mode production, ces déclarations sont ignorées.

Pour lancer la VM Dart, autrement dit compiler un fichier Dart, la ligne de commande est la suivante :


Cette méthode n’est utilisable que pour les applications en ligne de commande.

Dartium

Afin de lancer une application web écrite en Dart, Google a modifié son navigateur Chromium (version de développement de Chrome) afin d’y installer une VM Dart donnant ainsi naissance au navigateur Dartium. Celui-ci peut donc nativement exécuter les fichiers Dart.

Attention, Dartium est une preview et n’est donc pas à utiliser en navigateur principale.

Le compilateur Dart-to-JavaScript

Etant donné que la VM Dart n’est pas installé sur les navigateurs. Google fournit un compilateur afin de transformer le code Dart en code JavaScript.  Le compilateur est fourni par le SDK actuel mais il est également possible de le télécharger séparément. Pour lancer le compilateur, il suffit d’utiliser la ligne de commande ci-dessous :


Le compilateur nous donnera alors un fichier .js.

Dart Editor

Afin de faciliter le développement, Google a mis en place un éditeur spécifique pour Dart : Dart Editor. Celui intègre tous les outils énoncés plus haut : le langage, l’auto-complétion,  le gestionnaire de paquets « Pub », Dartium, le compilateur Dart-To-JavaScript, etc…

Synthèse

Points positifs

  • Dart est un langage structuré dont le but est de créer des applications web.
  • Dart est un langage client et serveur. Il est ainsi nécessaire de connaître qu’un seul langage pour développer coté serveur et côté client (bien qu’il faut tout de même connaître le langage HTML et CSS).
  • Dart  possède son propre éditeur rendant plus facile le développement et le  débogage.
  • Dart possède un gestionnaire de paquets rendant plus facile le partage de code.
  • Dart est open source.

Points négatifs

  • Dart nécessite une VM pour pouvoir être exécuté. Or celle-ci est indisponible pour les navigateurs principaux. Il nous faut donc convertir nos fichiers Dart en fichier js avec le compilateur Dart-to-JavaScript.
  • Dart est un langage très jeune (1 an) est n’est pour l’instant pas destiné à la production.

Conclusion

Bien que toujours en développement et donc inexploitable aujourd’hui pour de la production, Dart est un langage qui possède de réelles capacités à devenir un concurrent à JavaScript.