Sortie de la version stable de Dart 2.0 et Dart Web Platform

Remarque: Rejoignez la communauté russophone de Dart sur Telegram , Slack et Google+ . Et à la fin de l'article, vous trouverez une petite annonce.


La renaissance de Dart en tant que langage de programmation populaire pour le développement mobile et web


Aujourd'hui, nous annonçons la sortie de la version stable du langage de programmation Dart - 2.0, ainsi que de la plate-forme Web Dart, qui offre une combinaison unique de productivité, de performances et d'évolutivité.




Les développeurs de Flutter profitent des nombreuses fonctionnalités de Dart 2 depuis que Flutter utilise des versions préliminaires du SDK Dart 2 depuis plusieurs mois maintenant. Néanmoins, la sortie de la version stable de Dart 2 est une autre étape importante vers la sortie de Flutter en raison de la connexion étroite entre le framework et le langage. Si vous n'avez pas encore installé Flutter, vous pouvez l' essayer maintenant .

Avec la sortie de Dart 2, les développeurs Web peuvent désormais utiliser cette version du langage, toutes les bibliothèques et tous les outils bénéficieront d'un certain nombre d'améliorations spécifiques au Web. Toutes les informations nécessaires sur l'installation et la création de la première application se trouvent ici .

Dart: une popularité croissante


Dart 2 est une étape importante sur la voie de la relance de Dart en tant que langage de programmation populaire axé sur le développement rapide et pratique d'applications mobiles et Web. Nous voulons que les développeurs qui créent des applications clientes soient productifs: avec un langage, un framework et des composants qui réduisent le code standard et leur permettent de se concentrer sur la logique métier, ainsi que des outils qui identifient les erreurs dès le début, aident au débogage et génèrent des compacts et code rapide.

Nous avons constaté une forte augmentation de la popularité de Dart au cours de la dernière année. Nos propres analyses montrent une multiplication par dix de l'utilisation externe. Le trimestre dernier, Dart était l' une des langues à la croissance la plus rapide sur GitHub mesurée par pull request; les questions croissantes de StackOverflow montrent également une tendance positive dans la popularité de Dart:



Pour Google, Dart est l'une des rares langues que nous utilisons pour développer des applications Web avec des millions de lignes de code provenant de nombreux projets différents, y compris Google Ads, Google Shopping et nos propres projets d'infrastructure interne.

En fait, vous pouvez déjà utiliser Dart sans vous en rendre compte: le préprocesseur de style Sass populaire a récemment été réécrit dans Dart pour le rendre plus rapide, plus portable et plus facile à développer. Sass est maintenant distribué en tant qu'exécutable autonome sur Homebrew et Chocolatey et compilé pour JavaScript sur npm. Dart facilite l'installation d'applications n'importe où sans dépendances externes, ainsi que le déploiement de workflows pour les utilisateurs qui écrivent sur Dart, ainsi que pour les utilisateurs qui ne le font pas.



Dart 2 se concentre sur trois aspects: le renforcement et le resserrement du langage, le développement de notre prise en charge des plateformes Web et mobiles et la création d'outils et de composants qui prennent en charge l'utilisation de Google Dart pour le monde extérieur. Le reste de cet article couvrira ces trois sujets.

Dart 2: un langage optimisé pour le développement client


Comme nous l'avons dit en février ( version russe ) , le système de type Dart est explicite . Cela signifie qu'avant que les utilisateurs lancent votre application, elle passera par l'étape d'analyse et de compilation, au cours de laquelle une large classe de problèmes est souvent découverte. Lorsque nous avons adapté Dart à des applications extrêmement volumineuses sur Google, le système de type a détecté de nombreuses erreurs à un stade précoce de développement, ce qui a conduit à la création d'un meilleur code.

Avec Dart 2, vous ne pouvez pas entrer dans un état dans lequel une expression est exécutée avec une valeur qui ne correspond pas au type statique de cette expression. Cela signifie que vous pouvez adapter votre base de code à des millions de lignes, refactoriser de grands projets et déployer votre code en production, en ayant confiance en lui.

Ne vous inquiétez pas: explicite ne signifie pas des montagnes de code inutile. Le système de types inclut une sortie étendue - même pour les arguments de type génériques .

final _field = [3.14, 6.28]; void main() { //   ,   <int>   print([1, 2, 3].runtimeType); // List<int> //    ,       // int (1)  double (3.14)    `num` print([1, 3.14].runtimeType); // List<num> //        print(_field.runtimeType); // List<double> } 

En savoir plus sur le système de type Dart 2 sur cette page.

Comme mentionné dans les articles de blog précédents, Dart 2 réduit également le bruit de la langue dans plusieurs domaines clés: par exemple, le nouveau mot clé est désormais facultatif et le mot clé const est facultatif dans le contexte approprié .

Enfin, nous avons fait beaucoup de travail en arrière-plan pour unifier les différents outils d'aide, qui sont désormais unis par une interface commune qui prend en charge nos compilateurs et nos runtimes . Cela offre une cohérence à nos utilisateurs et promet d'améliorer la vitesse et la qualité des nouvelles fonctionnalités à mesure que Dart continue d'évoluer.

Dart 2 sur le Web: un cadre riche et puissant


Les applications Web depuis le tout début ont été au cœur de la mission de Darth. En fait, la plupart des développements Dart de Google concernent des applications Web. L'un des plus importants est Google Ads, qui génère des milliards de dollars d'économie en ligne. Dans le processus de portage du code vers Dart, ils ont réduit la taille de la base de code de l'interface utilisateur de 40%, tout en améliorant les performances et la qualité des applications.

Alors que le Dart SDK de base fournit des bibliothèques pour accéder aux API de navigateur modernes, nous prenons également en charge un cadre robuste basé sur les angles pour la création d'applications Web complexes. AngularDart 5 , livré dans le cadre de Dart 2, tire parti du système de type Dart explicite et du nouveau système de génération (décrit ci-dessous) afin que l'utilisateur puisse utiliser des générations incrémentielles rapides au moment de la conception et un code JavaScript compilé plus compact.

L'une des principales directions de cette version était de réduire la quantité de code qui est traitée lors du chargement de la page, ce qui réduit considérablement le «temps d'interactivité» des pages Web. Dans de nombreuses applications, la taille du code a été réduite de plus de moitié par rapport à AngularDart 4.

Pour démontrer les améliorations de la plate-forme Web Dart, nous avons créé une implémentation client basée sur Dart pour le site Web HackerNews en tant qu'application Web progressive; il est publié avec d'autres exemples sur le site Web populaire de HNPWA . En utilisant les meilleures pratiques pour créer des applications Web sur Dart, nous avons pu créer une application entièrement fonctionnelle qui est entièrement interactive en une seconde sur les appareils modernes et jusqu'à cinq secondes sur un appareil mobile modeste dans un réseau 3G lent. Ceci est compétitif même par rapport aux frameworks Web légers optimisés pour les petites applications.


https://hnpwa.dartlang.org/

Nos investissements dans l'infrastructure s'étendent également à notre bibliothèque de composants , que nous avons également mise à jour. Vous avez maintenant accès à 100 nouvelles classes, y compris divers composants de matériaux . Vous pouvez explorer tous nos composants dans la galerie de composants .


Le sélecteur de date de matériau est l'un des composants disponibles pour votre application Web.

Boîte à outils pour Dart 2


Avec Dart 2, Dart devient le langage compilé en JavaScript de première classe, avec le cycle de développement attendu par les développeurs Web et d'excellentes fonctionnalités de performance d'exécution. Ceci est réalisé grâce aux avantages que la plupart des langages orientés JS ne fournissent pas: un système de type explicite et un excellent support pour les applications mobiles natives.

Avec Dart 2, nos outils Web couvrent un modèle de développement 100% JavaScript avec deux compilateurs JavaScript supplémentaires. Le compilateur de développement, dartdevc , fournit une compilation incrémentielle rapide lors de la génération de JavaScript facile à lire et à déboguer. Cela permet à notre compilateur dart2js de se concentrer sur la création de JavaScript hautement optimisé pour les applications Web avancées pour les applications de bureau d'entreprise mobiles et complexes. Les deux compilateurs utilisent le système de type Dart explicite pour optimiser leur sortie.

Nos outils Web sont basés sur un nouveau système de construction conçu pour être rapide, débogué et extensible. Désormais, les tâches telles que la génération de code de sérialisation, la compilation de Sass en CSS et la compilation de Dart en JavaScript, se déroulent toutes dans une seule chaîne d'outils, qui prend en charge les mises à jour rapides et incrémentielles au fur et à mesure des modifications de votre application. Le système de génération est également conçu pour prendre en charge une utilisation en dehors du Web. Exemple: il est utilisé par les développeurs Flutter pour générer du code pour la sérialisation en JSON .

Avec Dart 2, nous avons un ensemble étendu d'outils pour les développeurs. En plus de prendre en charge les outils Android Studio et JetBrains, notamment IntelliJ IDEA et WebStorm , nous prenons également en charge Visual Studio Code avec l'extension Dart Code . Et nous avons également une plateforme d'expérimentation: DartPad , qui a été complètement mise à jour pour Dart 2.

Enfin, le SDK Dart est livré avec un ensemble d'autres outils utiles: un gestionnaire de packages qui fonctionne avec notre site Web , un analyseur statique , un linter que vous pouvez utiliser à partir de la ligne de commande ou en tant que package, ainsi que des outils de documentation Web et de mise en forme conformes aux normes linguistiques. Dart .

En savoir plus


Consultez notre guide de démarrage Flutter et la boîte à outils Web Dart .

Les notes de publication fournissent des informations techniques détaillées sur de nombreuses autres améliorations mineures apportées depuis Dart 1, dont certaines sont essentielles. Si vous rencontrez des problèmes que Google ne peut pas résoudre, nous vous recommandons de commencer avec StackOverflow . Inscrivez-vous à la newsletter Dart Announcements et suivez-nous sur Twitter pour recevoir des mises à jour. Nous aimerions également vous voir dans nos communautés, par exemple, dans Gitter et r / dartlang reddit .

Je vous remercie


Dart est devenu un langage polyvalent optimisé pour le développement sur le Web et sur les appareils mobiles. Nous travaillons sur Dart 2 depuis plusieurs années, période pendant laquelle il a affecté tous les aspects de notre écosystème et a nécessité la migration de millions de lignes de code et de centaines de packages.

Nous remercions les communautés Dart et Flutter , ainsi que les centaines d'ingénieurs Google qui nous ont aidés dans cette aventure. Nous n'aurions pas pu le faire sans vous!


De la communauté


Je tiens à féliciter l'équipe de développement de Dart pour un événement aussi important, c'est vraiment une étape majeure pour le développement du langage. Bien sûr, la plupart des mots de cet article peuvent vous sembler assez discutables , vous pouvez en discuter à la fois dans les commentaires et dans nos chats Telegram , Slack et Google+ .
Et l'annonce promise: en plus des petits mitaps, nous organisons des grands événements annuels dédiés au langage, aux outils, Flutter, AngularDart et tout ce qui s'y rattache. L'année dernière, nous avons reçu la visite d'ingénieurs de Google, nous avons brassé une bière spéciale, et en général c'était amusant. Cette année, nous allons essayer de faire encore mieux! Par conséquent, réservez fin novembre - début décembre et restez à l'écoute pour les annonces.

Source: https://habr.com/ru/post/fr419635/


All Articles