Avec Dart, Google veut combler les failles de Javascript
Google devrait lever le voile le mois prochain sur son langage Dart. Objectif : proposer un langage alternatif à JavaScript censé combler ses failles, notamment en matière de performances. Google entend ainsi donner un coup d'accélérateur au développement côté client Web.
Après avoir démarré le projet du langage Go, Google n'en finit pas de bouleverser l'éco-système des langages de développement. Cette fois-ci, Mountain View a décidé de s'attaquer à la sphère Javascript afin de combler les lacunes, connues et reconnues, du langage qui motorise nombre d'interfaces clientes du Web.
A la clé, la mise au point du langage Dart. Alors que Go semblait donner le change à C++ notamment, côté serveur, Dart entend révolutionner le monde Javascript en jugulant ses problèmes de performances. Si le groupe prévoit de lever officiellement le voile sur son projet le mois prochain, à l'occasion de la conférence Goto (du 10 au 12 octobre), nos confrères d'Infoworld ont repéré un mémo interne datant de novembre 2010, qui détaille les intentions de Mountain View. A l'époque, le projet se baptise Dash. Celui-ci fait partie d'un plan stratégique en deux étapes : une poursuite des développements de la filière "classique" de Javascript, sur le projet Harmony de l'Ecma d'une part, et d'autre part le développement de Dash dont "le but est préserver les spécificités dynamiques de Javascript mais avec des performances optimisées et se prêtant aux grands projets, en termes d'outillage." Le ton semble donc donner : pour Google, il s'agit de marquer, avec Dash - aujourd'hui Dart - une rupture qu'il qualifie lui-même de "hautement risquée', mais à haut rendement. "Javascript renferme des failles fondamentales qui ne peuvent pas être comblées en faisant simplement évoluer le langage", se justifie-t-il.
Google entend ainsi mener de concert ces deux politiques, et pas de façon "isolée". Mark Miller, chercheur chez Google et membre du comité EmacScript (Javascript) à l'Ecma, qualifie de "capital" le fait de préserver la position de leadership dans la définition de standards ouverts clés". Google poursuivra également ses travaux d'évangélisation d'Harmony, explique-t-il également à l'époque.
De son côté, Dash doit prendre à bras le corps les problèmes de performances liés à EcmaScript (la base de Javascript), préserver l'utilisabilité de Javascript et l'entourer d'outillages pour aborder les grands projets, confirme ce même Mark Miller. Ainsi Dash pourra être "consommé" de plusieurs façons : dans une machine virtuelle au sein du navigateur, afin d'en faire "un substitut viable à Javascript", sous forme d'un " langage client natif de choix pour tous les navigateurs" ; côté serveur pour les applications à large échelle, le transformant ainsi en un langage abordant à la fois le client et son pendant serveur ; et enfin au sein d'un compilateur Javascript, "pour cibler les plates-formes Javascript dites Legacy".
Au final, l'idée de Google est de faire de Dart la "Lingua Franca" du développement Web et venir ainsi remplacer Javascript, soulignait à l'époque Mark Miller.
"Javascript est un langage inventé en 15 jours, qui contient certes de bonnes idées, mais souffre des aléas d'un langage mis au point en très peu de temps", nous rappelle Stéphane Fermigier, fondateur et président du Conseil de surveillance de Nuxeo, éditeur de solution ECM (Enterprise Content Management) et expert multi-langages.
Ainsi depuis les premières implémentations, il y a 15 ans environ, "nous sommes coincés dans Javascript, même si depuis 4 à 5 ans on se rend compte que de nouvelles possibilités ont émergé", ajoute-t-il, citant le projet Harmony de l'Ecma. "Mais comment faire pour améliorer Javascript sans tout casser ?" Le contexte est donc posé.
Avec Dart, l'objectif de Google est donc de faire un " Javascript +1, purifié de toutes vérrues", quitte à être un peu "brutal dans sa démarche", souligne-t-il, pour accélérer le bouleversement d'un éco-système en proie à la stagnation.
Reste à voir quelle sera la réaction des éditeurs de navigateurs. Si une implémentation est logiquement prévue dans Chrome, rien n'est pour l'heure sûr quant aux autres applications du marché (Firefox, Safari et bien sûr Internet Explorer). Restera également à connaître la réaction des développeurs. Difficile en effet de convertir ces derniers à un nouveau langage, à moins qu'il ne devienne un standard.