
le langage de Google a été optimisé pour le développement Web et mobile côté client
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]}!'); } |
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( ... ), ); |
Source : Anders Thorhauge Sandholm
Et vous ?



Voir aussi :



Vous avez lu gratuitement 3 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.