Premier tour d’horizon de DART
Javascript est une plaie pour le développeur web. A l’échelle du site internet, des problèmes de compatibilité multi-navigateurs, à l’échelle de l’application web, un langage non structuré, des typages dynamiques, des problèmes de mémoire etc.
Google propose ici une solution qu’il entend bien faire adopter à tous les développeurs web comme la nouvelle « langue universelle» du développement web.
Plus qu’un langage, DART va devenir une réelle plateforme :
- Tout comme Google Web Toolkit, le projet développé en DART pourra être compilé en JavaScript. Evidemment on attend de Google un Javascript obfusqué avec les même capacités de Deferred Binding que dans GWT (1 fichier JS/CSS par navigateur, chaque navigateur ne télécharge que ce dont il a besoin).
- Une machine virtuelle sera disponible pour faire tourner DART nativement dans la navigateur une fois qu’elle y sera intégrée (Google l’annonce pour Chrome très prochainement).
Quels sont les objectifs fixés par l’équipe Google pour DART ?
- Créer un langage à la fois structuré et flexible pour le développement web
- Faire en sorte que la prise en main de DART soit rapide pour les développeurs Java et Web
- Les applications DART devront démarrer rapidement et avoir d’excellentes performances
- DART devra être compatible avec un grand nombre d’appareils : tablettes, téléphones, ordinateurs portables et serveurs.
- Fournir les outils permettant de faire tourner DART sur tous les navigateurs récents (Chrome, Safari 5+, et Firefox 4+)
- Proposer rapidement aux développeurs tous les outils dont ils ont besoin (librairies, IDE, etc.)
Ce dernier point est une différence majeure de GWT, qui a pour force d’être toujours compatible avec les navigateurs que nous pourrions qualifiés de « non-modernes ».
L’objectif de Google est donc clair ici, aller plus loin que GWT en créant un nouveau langage à mi-chemin entre le Java nécessitant la JVM et le Javascript qui a bien des défauts (pas de classes, variables non typées, …) et ce compatible multi-navigateurs et multi plateformes.
A quoi cela ressemble concrètement ?
Un des grands avantages de DART est que les variables ont un typage « au choix ». L’idée de Google est que vous pouvez développer votre application sans typage (principalement quand les scripts restent minimes) et typer lorsque celle-ci prend de l’ampleur.
Il faut ensuite pouvoir l’utiliser dans notre page web. Pour cela, plusieurs possibilités :
- Le compiler en Javascript (compatible uniquement sous Chrome, Safari 5+, et Firefox 4+)
- Utiliser Dart Editor
- Bientôt : l’exécuter directement dans la machine virtuelle DART
- Bientôt : avec un nouveau MIME Type, être capable d’exécuter du DART sans avoir besoin de le recompiler en Javascript
Dart Editor est l’environnement de développé qui nous est mis à disposition par Google. Basé sur Eclipse, il permet aisément de pouvoir développer, exécuter et tester son code DART :
Il suffit ensuite d’exécuter notre fichier DART :
Vous pouvez télécharger DART :
- En version 32 bits ici : http://gsdview.appspot.com/dart-editor-archive-integration/latest/DartBuild-win32.win32.x86.zip
- En version 64 bits ici http://gsdview.appspot.com/dart-editor-archive-integration/latest/DartBuild-win32.win32.x86_64.zip
Pour télécharger le projet d’exemple fourni par l’équipe DART : http://www.dartlang.org/samples/sunflower/index.html
DART et les plateformes actuelles de Google
Evidemment la première question à se poser est : quel avenir pour GWT ? Google est en train d’investir massivement dans DART et les rumeurs parlent déjà de développeurs GWT basculant vers les équipes DART.
Google rassure sur le blog de GWT en expliquant que GWT est aujourd’hui une plateforme stable, très utilisée en entreprise (présente dans beaucoup d’applications Google d’ailleurs). Il nous est expliqué que les développeurs GWT travaillent aussi sur le projet DART mais qu’ils voient beaucoup de synergies entre DART et GWT, DART étant « la prochaine étape dans l’évolution de GWT ».
Rien pour nous rassurer donc. Pourquoi Google continuerait-il à développer deux plateformes ayant les mêmes objectifs ? Les desseins ne sont pas clairs et la communauté s’effraie. Des outils de migration de GWT vers DART ? Ça n’a pas l’air d’être l’idée. Quid des prochaines versions de GWT (une roadmap 2.5 mais rien pour une 3.0).
Autre idée intéressante qui paraît dans les commentaires du blog, Google aurait-il dans l’idée d’utiliser DART comme prochaine plateforme de développement dans Android ? Affaire à suivre.
Liens:
- Annonce sur blog GWT: http://googlewebtoolkit.blogspot.com/2011/11/gwt-and-dart.html
- Site officiel de DART: http://www.dartlang.org/
- Discussions autour de GWT et DART sur le Google+ d’un responsable GWT: https://plus.google.com/117487419861992917007/posts/6YWpsHpqMqZ