La dernière version du langage de programmation Dart de Google, arborant un système de type renforcé, une syntaxe nettoyée et une toolchain améliorée, est présentée par Google comme le moyen de développement d'applications mobiles et Web, permettant une augmentation de la productivité de 2 à 3x.
Dart 2 rend obligatoire le mode fortement typé pour s'assurer que les bugs seront détectés plus tôt dans le processus de développement. Les annotations de type restent cependant facultatives et les types sont déduits lorsqu'ils ne sont pas déclarés. Vous pouvez prévisualiser la disponibilité de votre code Dart 1.x pour Dart 2 en activant Dart 1.x en mode strong.
Un changement relativement mineur dans le langage ayant un grand impact sur la lisibilité de la syntaxe Dart est la possibilité d'omettre new
et const
lors de l'appel d'un constructeur. Cela permet de déclarer l'UI en utilisant une syntaxe plus déclarative. Par exemple, vous pouvez desormais écrire :
Widget build(BuildContext context) =>
Container(
height: 56.0,
padding: EdgeInsets.symmetric(horizontal: 8.0),
decoration: BoxDecoration(color: Colors.blue[500]),
child: Row(
...
),
);
au lieu de la version compatible Dart 1.x suivante :
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(
...
),
);
}
Dart prend en charge le développement d'applications mobiles via le framework Flutter de Google, qui vise à rendre possible la création d'UI natives pour Android et iOS. Flutter est capable de compiler nativement vers les processeurs ARM et x86. Associé au moteur de Flutter, qui fournit un garbage collector efficace, il permet de créer des applications mobiles fonctionnant entièrement en mode natif.
Le changement de positionnement de Dart pour le développement côté client est confirmé par le chef de produit Dart chez Google, Anders Thorhauge Sandholm :
L'objectif pour nous, en développant le langage et les bibliothèques Dart, est de maximiser la valeur et l'utilité du développement côté client.
Cependant, cela ne signifie pas que l'utilisation de Dart pour le code en ligne de commande ou côté serveur soit obsolète. Le nouvel accent de Dart sur le développement côté client peut être vu comme une tentative par Google d'augmenter l'adoption de Dart dans l'industrie en dehors de Google, qui reste son plus grand adoptant. Selon Sandholm, les performances et la prévisibilité de Dart, ainsi que son système de typage, ont permis aux ingénieurs de Google AdWords d'être deux à trois fois plus productifs qu'auparavant. En outre, explique Sandholm, les équipes Google utilisant Dart sur AdWords Express et AppTree ont pu partager entre 50% et 70% du code sur mobile et sur le Web.