Dart, le remplaçant de javascript made in Google.
Vous souhaitez mettre votre solution en avant en haut de cet article ? Contactez-nous
Focus sur la sortie de Dart, le remplaçant de javascript made in Google.
Pour bien commencer, posons les bases
Dans le monde du Web, les standards, langages et bonnes pratiques sont dictées par le W3C. Ce sont eux qui décident des évolutions que doivent suivre le HTML et le CSS et le Javascript.
Pour le javascript, c’est un peu plus compliqué : Au tout départ (il y a looooooongtemps), Netscape créea l’ancêtre du javascript, un langage de programmation coté client pour manipuler les éléments d’une page web. Son créateur décida ensuite de déposer une standardisation du langage, l’ECMAscript, que le W3C choisis comme standard. De ce langage standardisé est né plusieurs langages: le javascript, l’AS3, …
Tout comme le HTML et le CSS ont subit des mises à jours majeurs récemment, celle de javascript est prévu, un groupe de travail est dessus depuis quelques temps, déjà. Nom de code : Harmony.
Et cette mise à jour, on en a bien besoin : le javascript n’est vraiment pas bien fournis sur quelques points : le typage, les classes, la gestion des tableaux, … C’est ce qui fait que les frameworks JS ont autant le vent en poupe.
Donc, si le monde avait suivi son cours, nous aurions eu, dans quelques temps, une nouvelle version du JS, avec toutes ces choses bien qui nous manques, et tout en restant dans les standards. Une simple grosse mise à jour, finalement.
Là dessus, Google arrive avec une surprise : Dart.
Dart est un langage de programmation fait pour être embarqué dans un navigateur, ou s’exécuter coté serveur via une machine virtuelle. Il peut même s’interpréter en JS.
Dart est un langage avec un joli typage, une syntaxe à première vue bien clair, qui me rappelle l’AS3 et le java, avec quelques petits sucres syntaxiques. (Mais Dart rappelle des choses car il fait un peu ‘vieux’, aussi. À mon goût moins sympa que CoffeeScript)
Dart sera très bientôt compatible nativement dans Chrome, et sera en plus le langage dans lequel seront faites toutes les app google (Gmail, Calendar, et consœurs). Pour les autres, il suffit de le convertir en JS.
Donc Dart, c’est trop bien ? Oui, mais…
Mais quoi??
Même si l’on ne peut pas retirer à Dart qu’il est bien fait, le fait est que google a travaillé, comme à son habitude, dans le dos de tout le monde. Plutôt que d’aider les autres groupes de travail, il a fait son petit cachottier et n’a même pas regardé ce que faisaient les autres. Dommage, on aurait pu réunir les bons cotés des deux technos, sinon.
Donc oui, Dart vas avoir son Content-Type à lui, et il sera certainement possible de charger un script JS et un script Dart sur la même page. Mais nous nous retrouvons donc avec deux technos pour le même rôle. Je suis pour la multiplication des langages, mais dans le web, jusque là, nous n’avions qu’un seul langage pour chaque tache: CSS pour le style, HTML pour la structure de l’info, JS pour le dynamique. Et c’était très bien comme ça.
Maintenant, non content d’avoir la communauté séparée entre différents frameworks, elle sera séparé entre différents langages en plus, d’où selon moi une raréfaction des ressources utilisables dans un projet (dans le sens ou un projet sera normalement mono-langage et mono-framework).
De plus, la vie sera dure pour les développeurs de navigateurs : Les compatibilités seront encore plus dures à assurer pour les navigateurs, de même que les optimisations : plutôt que de se concentrer sur un standard, les développeurs devront s’occuper des avancées de deux langages.
Conclusion
Le Javascript avait besoin d’une mise à jour, c’est certain, et la copie de Google est plutôt bonne dans le fond (vm pour l’utiliser sur server, typage) que sur la forme (syntaxe propre). Néanmoins, c’est sur l’intention que le Géant de Mountain View ne soit pas au top. S’il voulait faire avancer le web, il n’avait qu’à se concerter avec le groupe de travail d’Harmony. Là, google a décidé d’imposer son nouveau langage à la communauté, et disons le, Google est bien assez gros pour le faire.
Pour aller plus loins, quelques liens: