Dart 2.0 est disponible, le langage de Google
A été optimisé pour le développement Web et mobile côté client

Le , par Michael Guilloux, Chroniqueur Actualités
Google vient d’annoncer la sortie de la version 2.0 de Dart, son langage de programmation Web qui, comme de nombreux autres, vise à remplacer JavaScript. Cette nouvelle version majeure du langage a été optimisée uniquement pour le développement côté client pour le Web et le mobile. « Avec Dart 2, nous avons considérablement renforcé et rationalisé le système de types, nettoyé la syntaxe et reconstruit une grande partie de la chaîne d'outils de développement afin de rendre le développement mobile et Web plus agréable et plus productif », a déclaré Anders Thorhauge Sandholm, Product Manager chez Google. « Dart 2 intègre également les leçons apprises des premiers utilisateurs du langage, notamment Flutter, AdWords et AdSense, ainsi que des milliers d'améliorations, grandes et petites, en réponse aux commentaires des clients. »

Avant d'aller aux améliorations apportées par Dart 2, Google explique pourquoi son langage serait bien positionné pour les besoins des développeurs côté client. En plus des attributs nécessaires pour un langage moderne et polyvalent, Google estime que le développement côté client avec Dart est :

  • productif, rapide et portable : d’après Google, Dart augmente la vitesse du développeur, car il a une syntaxe claire et succincte et peut s'exécuter sur une VM avec un compilateur JIT. Ce dernier permet le déploiement à chaud et le rechargement dynamique lors du développement mobile. Cela veut dire que vous pouvez apporter diverses modifications aux applications et à leurs modules sans devoir arrêter et redémarrer le serveur. Cela entraine donc, selon Anders, des cycles de développement super rapides. Dart prend également en charge la compilation en code natif (ARM, x86, etc.) pour des performances mobiles rapides ainsi que la transpilation en JavaScript. Grâce à la compilation anticipée de code natif, Dart fournit encore un démarrage prévisible, haute performance et rapide sur les appareils mobiles ;
  • accessible : Dart est conçu pour être familier et donc accessible à de nombreux développeurs existants, grâce à ses aspects orientés objet et sa syntaxe qui – selon ses utilisateurs – permet à tout développeur C++, C#, Objective-C ou Java d’être productif en quelques jours ;
  • réactif : Dart fonctionne également bien pour la programmation réactive avec ses bibliothèques de base, y compris les flux et les futures (qui font référence à des techniques de synchronisation pour certains langages concurrents). Il a également un grand support pour la gestion des objets temporaires grâce à un ramasse-miettes générationnel rapide.



Dans Dart 2, Google dit avoir pris d'autres mesures pour rendre Dart plus solide en tant que langage idéal pour le développement côté client. En particulier, le langage s’est doté de plusieurs nouvelles fonctionnalités, notamment le typage fort.

« Les équipes derrière AdWords et AdSense ont créé avec Dart certaines des applications Web les plus importantes et les plus avancées de Google pour gérer les annonces qui génèrent une part importante des revenus de Google. En travaillant en étroite collaboration avec ces équipes, nous avons identifié une grande opportunité de renforcer le système de type de Dart », explique Anders. « Cela aide les développeurs Dart à détecter les bogues plus tôt dans le processus de développement, à mieux mettre à l'échelle les applications créées par de grandes équipes et à améliorer la qualité globale du code », dit-il.

Il illustre cela avec un exemple de code pour mettre en évidence l’inférence de type avec Dart 2. Rappelons que l’inférence de types est un mécanisme qui permet à un compilateur ou un interpréteur de rechercher automatiquement les types associés à des expressions, sans qu'ils soient indiqués explicitement dans le code source. Dans le petit exemple ci-dessous, l'inférence de type Dart 2 permet de découvrir une erreur plutôt subtile et, par conséquent, d'améliorer la qualité globale du code.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
void main() {
	  List<int> prices = ['99', '27', '10000', '20000000'];
	  
	  // Sort in place from smallest to largest
	  prices.sort();
	  
	  print('Lowest price is ${prices[0]}!');
	}
« Que fait ce code ? Vous pouvez raisonnablement vous attendre à ce que le résultat affiché soit '27'. Mais sans le système de typage de Dart 2, il va afficher '10000', parce que c'est le plus petit élément de la liste des chaînes lorsqu'elle est ordonnée de manière lexicographique. Avec Dart 2, cependant, ce code donnera une erreur de type », souligne Anders.

Dart 2.0 améliore également la manière dont l'interface utilisateur est définie comme code. Google estime en effet que lors de la création d'une interface utilisateur, le basculement entre un langage de balisage d'UI distinct et le langage de programmation dans lequel vous écrivez votre application génère souvent de la frustration. L'entreprise s'efforce donc de faire en sorte que la définition de l'interface utilisateur comme code soit une expérience agréable pour réduire considérablement le besoin de changer de contexte. Pour cela, Dart 2 rend par exemple new et const optionnels. Comme vous pouvez le voir dans l'exemple suivant, Google explique que cela permet par exemple de nettoyer la définition d'un widget d'interface utilisateur afin qu'il n'utilise pas un seul mot-clé. Et bien d'autres changements à venir iront dans le même sens.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Before Dart 2
	Widget build(BuildContext context) {
	  return new Container(
	    height: 56.0,
	    padding: const EdgeInsets.symmetric(horizontal: 8.0),
	    decoration: new BoxDecoration(color: Colors.blue[500]),
	    child: new Row(
	      ...
	    ),
	  );
	}
	

	// After Dart 2
	Widget build(BuildContext context) =>
	  Container(
	    height: 56.0,
	    padding: EdgeInsets.symmetric(horizontal: 8.0),
	    decoration: BoxDecoration(color: Colors.blue[500]),
	    child: Row(
	      ...
	    ),
	  );
Avec les améliorations annoncées, Google estime que Dart 2 est un langage productif, propre et éprouvé qui répond aux défis du développement d'applications modernes. Vous pouvez l'essayer dans Flutter (le nouveau framework d'interface utilisateur mobile de Google permettant de créer des interfaces natives de haute qualité pour iOS et Android) et le SDK Dart à partir de la ligne de commande.

Source : Anders Thorhauge Sandholm

Et vous ?

Avez-vous déjà utilisé le langage de Google ? Qu’en pensez-vous ?
Croyez-vous qu'il est assez pertinent pour remplacer JavaScript ?
Qu’attendez-vous de ce langage ?

Voir aussi :

Quelques expériences de Dart avec LLVM donnent des résultats prometteurs qui pourraient être améliorés avec des optimisations du ramasse-miettes
Google se sert de Dart pour la refonte de l'interface de son gestionnaire d'annonces AdWords, un de ses ingénieurs explique les raisons de ce choix
Google publie Dart 1.9 qui apporte le support de la programmation asynchrone


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de marc.collin marc.collin - Membre éclairé https://www.developpez.com
le 23/02/2018 à 22:24
intéressant, mais je n'ai pas l'impression que Google pousse vraiment son produit.
Peu de projet l'utilise.. même s'il est possible de l'utiliser avec angular

est-ce que ça va finir comme GWT?
Avatar de Mootookoi Mootookoi - Membre à l'essai https://www.developpez.com
le 24/02/2018 à 16:32
Que va devenir Dart avec l'arrivée de WebAssembly ?
Avatar de marc.collin marc.collin - Membre éclairé https://www.developpez.com
le 25/02/2018 à 0:54
le web assembly ne spécife qu'un langage bas niveau... donc rien n'empeche de faire du dart et que ça soit convertie en web assembly
Avatar de abriotde abriotde - Membre éprouvé https://www.developpez.com
le 25/02/2018 à 17:33
Dart reste du Javascript améliorer avec notamment le typage des données. Cela permet d'améliorer les performances à l'exécution, Dart est aussi plus encore que Node.JS destiné à tourner côté serveur.... Je pense que Dart à un avenir s'il est intégrer au Javascript par la suite. Je vois Dart comme un langage de Proof Of Concept pour Javascript.
Avatar de zulad zulad - Membre confirmé https://www.developpez.com
le 27/03/2018 à 19:00
Citation Envoyé par Mootookoi Voir le message
Que va devenir Dart avec l'arrivée de WebAssembly ?
Je crois qu'il va simplement continuer d'évoluer. Regardez flutter.io, dart m'a l'air de tenir la route.
Avatar de Stan Adkens Stan Adkens - Chroniqueur Actualités https://www.developpez.com
le 08/08/2018 à 10:19
Dart 2.0 : le langage de programmation de Google officiellement disponible en version stable
avec des améliorations de productivité et de performances

Anticipée depuis février 2018, où Google annonçait la sortie de la version 2 de son langage de programmation Web Dart comme version majeure et optimisée uniquement pour le développement côté client pour le Web et le mobile, Dart 2 est officiellement disponible depuis le 6 août 2018. Google estimait, lors de l’annonce de Dart 2 en février dernier, que la version intégrait non seulement des attributs nécessaires pour un langage moderne et polyvalent, mais également, que le développement côté client avec Dart était productif, rapide, accessible, réactif.

Dans la présentation de la version définitive de Dart 2 qui est maintenant immédiatement disponible, Google insiste sur la productivité, la performance et l’évolutivité. De nombreuses améliorations ont été apportées dont certaines sont des modifications de rupture avec les précédentes versions. En outre, la plateforme Web Dart a été réécrite. Google qualifie cette sortie officielle de renaissance de Dart comme un langage grand public pour les développeurs Web et mobile.


Cette publication pourrait permettre une sortie rapide de Flutter de sa version bêta. En effet, Flutter, le kit de développement d'applications multiplateformes de Google est écrit en Dart, dont il profite des versions préliminaires du SDK depuis plusieurs mois déjà. Dart est également l’un des principaux langages utilisés dans le développement de Fuchsia OS, le système d’exploitation de Google qui devrait remplacer Chrome OS et Android.

Dart 2 met l’accent sur la rapidité du développement, des expériences utilisateur plus améliorées et des outils puissants qui permettent l’identification et le débogage rapide des erreurs, tout en fournissant un code réduit d’exécution rapide.

Selon Google, l’utilisation de Dart est en croissance en externe. Le préprocesseur de feuille de style Sass a été récemment réécrit en Dart pour le rendre plus rapide, plus portable et plus facile à écrire, selon Kevin Moore, Product Manager chez Google, travaillant sur Dart. Google utilise également Dart, en interne, pour le développement Web. « En interne, Dart est l’un des rares langages que Google utilise pour le développement d’applications Web, avec des millions de lignes de code provenant de dizaines de projets différents, notamment Google Ads, Google Shopping et nos propres équipes d’infrastructure interne. »

Passons donc à quelques améliorations que Google a annoncé avoir apportées à la version stable de Dart 2. Plusieurs améliorations sont apportées à Dart 2. Entre autres :

Un système de type plus fort

Dart a été adapté à des applications extrêmement volumineuses. Ce qui lui donne, dorénavant, l’aptitude à détecter une grande classe de problèmes dans les applications pendant l'analyse et la compilation bien avant leur exécution par les utilisateurs. L’inclusion des vérifications au moment de l'exécution permet à Dart 2 de détecter les erreurs de types. « Avec Dart 2, vous ne pouvez pas entrer dans un état où une expression donne une valeur qui ne correspond pas au type statique de l'expression. Cela signifie que vous pouvez adapter votre base de code à des millions de lignes, entreprendre de grands projets de refactorisation et déployer votre code en toute confiance. »

Dart 2 améliore les conditions de travail du développeur

En effet, Dart 2 permet, par exemple, de créer une instance d'une classe sans les mots-clés « new » et « const » qui deviennent, dorénavant, facultatifs. L’avantage que cette amélioration apporte c’est de rendre le code plus lisible, moins encombrant et plus facile à taper.

Les applications Web au cœur de Dart 2

« En fait, la plupart des développements Dart chez Google sont destinés aux applications Web. Un des plus importants est Google Ads, qui alimente des milliards de dollars de l’économie Web.»

En plus des bibliothèques permettant d’accéder aux API de navigateurs fournies par le cœur de Dart SDK, Dart 2 prend en charge la création d’applications Web plus complexes. Ceci est rendu possible grâce à AngularDart 5 fourni avec Dart 2.

Dart 2 améliore la quantité de code traitée lors du chargement de la page en réduisant ainsi considérablement le temps d’interactivité des pages Web. 100 nouvelles classes, y compris date, heure et un menu de divers autres composants sont accessibles pour le développement Web.


Dart est dorénavant compilé en JavaScript

Dart 2 fait du langage un langage compilé en JavaScript de première classe introduisant d'excellentes caractéristiques de performances d'exécution pour le bonheur des développeurs Web et mobile. Les outils Web de Dart intègrent, dorénavant, un modèle de développement 100% JavaScript avec deux compilateurs JavaScript complémentaires. « Avec Dart 2, nos outils Web intègrent un modèle de développement 100% JavaScript avec deux compilateurs JavaScript complémentaires. Le compilateur de développement, dartdevc, fournit une compilation incrémentielle rapide tout en générant du code JavaScript facile à lire et à déboguer. », a déclaré Kevin Moore.

Pour ne citer que ces avantages. La publication de cette version dite stable suscite quelques débats dans le milieu des développeurs. En effet, l’un des débats concerne les types non-nullables. D’aucuns se demandent pourquoi apporter tant d’amélioration pour aboutir à une version stable sans y ajouter les types non-nullables. Cependant, Google y travaille apparemment déjà pour une prochaine sortie.

Source : Kevin Moore

Et vous ?

Qu’en pensez-vous ?
Avez-vous déjà installé Dart 2 ?
Que pensez-vous des performances du langage de Google ?

Voir aussi

Dart 2.0 est disponible, le langage de Google, a été optimisé pour le développement Web et mobile côté client
Google publie Dart 1.9, qui apporte le support de la programmation asynchrone
Google se sert de Dart pour la refonte de l'interface de son gestionnaire d'annonces AdWords, un de ses ingénieurs explique les raisons de ce choix
Avatar de Sodium Sodium - Membre éprouvé https://www.developpez.com
le 08/08/2018 à 13:17
Moi qui pensait Dart mort et enterré depuis longtemps ...
Impression renforcée par le fait que Google ait adopté le langage TypeScript de Microsoft pour son framework Angular.
Avatar de hotcryx hotcryx - Membre extrêmement actif https://www.developpez.com
le 08/08/2018 à 16:32
License BSD, bien verrouillé
Avatar de redcurve redcurve - Membre averti https://www.developpez.com
le 09/08/2018 à 8:02
Mouais un truc conçu par google à éviter donc
Avatar de jff06fr jff06fr - Nouveau Candidat au Club https://www.developpez.com
le 09/08/2018 à 14:14
ils ont fait un standard Dart...

Je sors