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

64PARTAGES

4  0 
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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de 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?
1  0 
Avatar de 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
1  0 
Avatar de Sodium
Membre extrêmement actif 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.
2  1 
Avatar de Mootookoi
Membre du Club https://www.developpez.com
Le 24/02/2018 à 16:32
Que va devenir Dart avec l'arrivée de WebAssembly ?
0  0 
Avatar de abriotde
Membre expérimenté 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.
1  1 
Avatar de 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.
0  0 
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 09/08/2018 à 8:02
Mouais un truc conçu par google à éviter donc
3  3 
Avatar de jff06fr
Nouveau Candidat au Club https://www.developpez.com
Le 09/08/2018 à 14:14
ils ont fait un standard Dart...

Je sors
0  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 09/08/2018 à 23:19
Citation Envoyé par hotcryx Voir le message
License BSD, bien verrouillé
Pourquoi tu dis ça ? La BSD est approuvée par l'OSI au même titre que la MIT par exemple.

https://fr.wikipedia.org/wiki/Licence_BSD
0  0 
Avatar de lequebecois79
Membre éclairé https://www.developpez.com
Le 10/08/2018 à 0:12
Citation Envoyé par Aurelien.Regat-Barrel Voir le message
Pourquoi tu dis ça ? La BSD est approuvée par l'OSI au même titre que la MIT par exemple.

https://fr.wikipedia.org/wiki/Licence_BSD
surement car n'importe qui peut prendre le code et le foutre dans un soft sans un retour des sources concernés, sans aucune mention de l'auteur et cie... au final du travail.... et moi je prends...
0  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web