Google publie Dart 1.9 qui apporte le support de la programmation asynchrone

Le , par Hinault Romaric, Responsable .NET
L’univers Dart est sceptique suite à l’annonce de l’abandon du développement d’une machine virtuelle (VM) Dart pour le navigateur Chrome. Par cette nouvelle Google, à demi-mot, met fin à son ambition d’offrir Dart comme une alternative à JavaScript.

Au contraire, Google va investir pour faire de Dart l’outil qu’il faut pour l’écriture du code JavaScript de qualité et performant. Pour ceux qui voyaient en cette annonce une fin probable du jeune langage Dart, ils devront attendre.

D’ailleurs, 24 heures après cette annonce, Google a publié une nouvelle version de Dart pour montrer que le langage compte bien se tailler une place dans l’écosystème du Web. Mais, cette fois aux cotés de JavaScript, tout comme des outils tels que JQuery et Node.js.

Dart 1.9 apporte une nouveauté qui fera plaisir à de nombreux fans du langage : le support de la programmation asynchrone.

Cette version introduit les méthodes async et les expressions await. Grace à ces nouveautés, les développeurs pourront écrire plus facilement du code qui ne bloque pas l'UI et ne monopolise pas inutilement des threads de travail.

A titre d’exemple, le code ci-dessous :


Devient plus simple avec le support de la programmation asynchrone :


En plus du support de la programmation asynchrone, Dart 1.9 apporte d’autres améliorations, dont :
  • le support complet des énumérations (enum). Une fonctionnalité très demandée par les développeurs ;
  • le déplacement de « Dart Analyzer » à « Dart Analysis Server ». Cela rend plus facile l’intégration de l’analyseur de code Dart avec d’autres EDI ;
  • une mise à jour du moteur d’expressions régulières pour la machine virtuelle Dart. Il est désormais 150x plus rapide que la mise en œuvre précédente ;
  • l’intégration de l’API Isolate dans la VM Dart, ce qui rend plus facile la création d’applications qui ciblent plusieurs processeurs.


Dart 1.9 et ses outils sont disponibles en téléchargement sur le site du projet.

Télécharger Dart 1.9

Source : Blog Dart

Et vous ?

Etes-vous sceptique par rapport à l’avenir de Dart ou pensez-vous que le langage a encore un futur glorieux ?


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


 Poster une réponse

Avatar de Traroth2 Traroth2 - Membre chevronné https://www.developpez.com
le 27/03/2015 à 14:13
C'est moi ou Google commence à partir dans tous les sens ?
Avatar de tomlev tomlev - Rédacteur/Modérateur https://www.developpez.com
le 27/03/2015 à 16:11
Citation Envoyé par Hinault Romaric Voir le message
Tiens, j'ai l'impression d'avoir déjà vu ça quelque part... ça ressemble étrangement à ce que propose C# 5
Avatar de Vlozer Vlozer - Membre habitué https://www.developpez.com
le 27/03/2015 à 18:47
Citation Envoyé par Hinault Romaric Voir le message
Dart 1.9 apporte une nouveauté qui fera plaisir à de nombreux fans du langage : le support de la programmation asynchrone.
L'asynchronisme en Dart existe depuis bien longtemps et etait deja tres simple à utiliser grace aux Stream/Future, surtout coté utilisateur.
Là c'est juste l'ajout de certains mot clées qui permettent d'avoir un code plus propre (eviter d'avoird 40 imbrication d'exp lambda dans certaines situations, simplifier la creation des retours des methode asynchrone...)

Citation Envoyé par tomlev Voir le message
Tiens, j'ai l'impression d'avoir déjà vu ça quelque part... ça ressemble étrangement à ce que propose C# 5
C'est tres largement assumé par la DartTeam. Et ça me desole un peu qu'Anders Hejlsberg n'en fasse pas de meme pour typescript... :/
Avatar de yahiko yahiko - Rédacteur/Modérateur https://www.developpez.com
le 30/03/2015 à 19:23
Pas de panique les amis. Anders Hejlsberg et son équipe ont prévu l'async/await dans la version 1.6 du compilateur TypeScript. Soit grosso modo vers la fin de l'année je présume vu que la version 1.5 devrait être publiée très prochainement.
Avatar de SurferIX SurferIX - Membre chevronné https://www.developpez.com
le 04/05/2015 à 11:26
Citation Envoyé par Hinault Romaric Voir le message
...

Devient plus simple avec le support de la programmation asynchrone :

...
Quand je vois ces deux images, deux constats :
- la première montre simplement qu'il n'y a absolument aucun intérêt à développer en dart, car la lecture est très difficile - donc la maintenance (ce qui coûte le plus cher aux entreprises) quasiment impossible (imaginez 10 fois plus de code comme ça pour une application entière)
- la seconde montre simplement que... bah ça existe déjà en Php, en Python, en CSharp et en C++. Pourquoi ré-inventer la roue ? J'aimerais comprendre les avantage supplémentaires par rapport aux autres langages. S'il n'y en a pas et que c'est juste pour le fun histoire de connaître un langage en plus, ça n'a strictement aucun intérêt du point de vue d'une entreprise.
Avatar de Logan Mauzaize Logan Mauzaize - Rédacteur/Modérateur https://www.developpez.com
le 05/05/2015 à 12:15
Citation Envoyé par SurferIX Voir le message
- la première montre simplement qu'il n'y a absolument aucun intérêt à développer en dart, car la lecture est très difficile - donc la maintenance (ce qui coûte le plus cher aux entreprises) quasiment impossible (imaginez 10 fois plus de code comme ça pour une application entière)
Qu'est-ce que tu trouves difficile ? La programmation asynchrone ? ca n'est en rien spécifique à Dart ...

Citation Envoyé par SurferIX Voir le message
- la seconde montre simplement que... bah ça existe déjà en Php, en Python, en CSharp et en C++. Pourquoi ré-inventer la roue ? J'aimerais comprendre les avantage supplémentaires par rapport aux autres langages. S'il n'y en a pas et que c'est juste pour le fun histoire de connaître un langage en plus, ça n'a strictement aucun intérêt du point de vue d'une entreprise.
La réponse la plus évidente : l'écosystème JS (node/io.js, web browser)

Sinon à ma connaissance (et n'étant pas vraiment au fait de ces langages) :
  • Python n'a pas de contrôle du type
  • C++ ne permet pas de s'affranchir du type (ou de l'inférer)
  • Les fonctions anonymes/lambda sont "récentes" en C++
  • Les lambdas en Python sont limitées
  • PHP n'a de généricité


Sinon avec ce genre de philosophie, on inventerait plus grand chose ...
Avatar de youtpout978 youtpout978 - Membre expert https://www.developpez.com
le 05/05/2015 à 12:34
Je pense qu'il voulait simplement dire que le code était plus concis et de ce faite plus lisible que le gros pâté en dart.
Avatar de SurferIX SurferIX - Membre chevronné https://www.developpez.com
le 05/05/2015 à 12:35
Citation Envoyé par Logan Mauzaize Voir le message
Qu'est-ce que tu trouves difficile ? La programmation asynchrone ? ca n'est en rien spécifique à Dart ...
Je n'ai jamais dit que c'était difficile, j'ai dit que la "lecture était difficile", énorme nuance.
Je pense que tu es une personne intelligente, mais il semble te manquer un truc qui manque souvent aux personnes intelligentes : la capacité d'imaginer que beaucoup de gens ne comprendront pas aussi facilement qu'eux le code.

Si je dis que le code est difficile à lire, ça n'est pas forcément pour moi, c'est avec du recul, la maintenabilité du programme : tout nouveau développeur aura énormément de mal à comprendre facilement et rapidement énormément de lignes de codes asynchrone. Et quand on voit le turnover énorme en entreprise, il faut toujours imaginer cela - c'est peut être ce qui est devenue une mauvaise habitude de ma part : lorsque le développeur qui a écrit ça partira, est-ce que le suivant pourra comprendre rapidement ? La réponse est : neuf chance sur dix : "non". Toi, oui, tu es le un sur dix Mais pas les neuf autres.

Citation Envoyé par Logan Mauzaize Voir le message
La réponse la plus évidente : l'écosystème JS (node/io.js, web browser)

Sinon à ma connaissance (et n'étant pas vraiment au fait de ces langages) :
  • Python n'a pas de contrôle du type
  • C++ ne permet pas de s'affranchir du type (ou de l'inférer)
  • Les fonctions anonymes/lambda sont "récentes" en C++
  • Les lambdas en Python sont limitées
  • PHP n'a de généricité


Sinon avec ce genre de philosophie, on inventerait plus grand chose ...
Python n'a pas de contrôle du type ? Je te laisse te googler...
C++ ne permet pas de s'affranchir du type (ou de l'inférer) Je te laisse te googler...
Les fonctions anonymes/lambda sont "récentes" en C++ WTF
Les lambdas en Python sont limitées
PHP n'a de généricité

Comme dans une autre conversation, j'ai perdu trop de temps à vouloir m'exprimer, ça ne donne pas une image positive, et je n'arriverai pas convaincre - même si je donne des éléments concrets...
Et l'écosystème JS...
La seule chose qui intéresse tous les développeurs JS du moment c'est : "c'est à la mode, ça m'intéresse". Vive bower, node, interact, nosql (et pas prononcer jquery c'est plus à la mode).
Ca passera d'ici quelques années. Seuls les langages dignes de ce nom survivront. D'ailleurs pourquoi Google essaie de rajouter tout ce qui manque à JS ? Regarde tout ce qui est ajouté au fur et à mesure... c'est qu'il a de gros manques, et que ça coûte cher à une entreprise de maintenir du JS. Ils implémentent en réalité ce que le meilleur langage existant, C++, a déjà. Même chose pour tous les mauvais langages qui deviennent connus (regarde toutes les nouveautés et implémentations de Php : ils en ont marre des problèmes de typage, ils ajoutent la possibilité de préciser le type des arguments, ils en on marre du manque d'héritage multiple, ils créent les traits (au passage, quelle horreur, l'écriture des traits omg...), et je pourrais te citer chaque évolution de Php : c'est combler un manque qui existe déjà dans la plupart des bons langages). Donc quelque part, faire évoluer un langage pour qu'il ressemble à ce qui existe déjà depuis des années, c'est simplement réinventer la roue. Je suis bien content qu'à l'IUT d'Aix, ils forcent énormément sur le C++, parce qu'une fois que tu comprends ce langage, tous les autres sont faciles (voire très faciles) à apprendre.

Donc désolé pour ne plus suivre le fil de cette conversation après ce post, mais tu dois avoir moins de 30 ans, car sinon tu verrais qu'on ré-invente systématiquement la roue pour faire les mêmes choses et je me lasse d'expliquer que je trouve inutile de réinventer la roue (sous prétexte de nouveauté) systématiquement.
Avatar de Logan Mauzaize Logan Mauzaize - Rédacteur/Modérateur https://www.developpez.com
le 05/05/2015 à 14:43
Citation Envoyé par SurferIX Voir le message
Je n'ai jamais dit que c'était difficile, j'ai dit que la "lecture était difficile", énorme nuance.
C'est bien ce que j'entendais également

Citation Envoyé par SurferIX Voir le message
Je pense que tu es une personne intelligente, mais il semble te manquer un truc qui manque souvent aux personnes intelligentes : la capacité d'imaginer que beaucoup de gens ne comprendront pas aussi facilement qu'eux le code.
De mon expérience (et une fois de plus, n'ayant pas encore atteint le cap fatidique des 30ans, il la prendre avec des pincettes), tant qu'on explique aux gens, ils finissent par comprendre.
Surtout apprendre une API pour un développeur ne pose généralement pas des masses de problèmes.

Après je te l'accorde, les entreprises "gaspillent" rarement leurs temps à formerexpliquer aux nouveaux.

Citation Envoyé par SurferIX Voir le message
Si je dis que le code est difficile à lire, ça n'est pas forcément pour moi, c'est avec du recul, la maintenabilité du programme : tout nouveau développeur aura énormément de mal à comprendre facilement et rapidement énormément de lignes de codes asynchrone. Et quand on voit le turnover énorme en entreprise, il faut toujours imaginer cela - c'est peut être ce qui est devenue une mauvaise habitude de ma part : lorsque le développeur qui a écrit ça partira, est-ce que le suivant pourra comprendre rapidement ? La réponse est : neuf chance sur dix : "non". Toi, oui, tu es le un sur dix Mais pas les neuf autres.
En fait on maintient déjà énormément de lignes de code asynchrone avec les moyens du bord : API graphique, dialogues réseaux, etc.

Ceci étant, cela n'est encore et toujours pas spécifique à Dart. Certains ne saventconnaissent pas la programmation parallèle, ca ne fait pas des langages qui le permettent de mauvais langages.

Citation Envoyé par SurferIX Voir le message
Python n'a pas de contrôle du type ? Je te laisse te googler...
Je n'ai rien trouvé dans le documentation de Python mais bien quelques documents de travail. Une source officielle du support du "static typing" ?

Citation Envoyé par SurferIX Voir le message
C++ ne permet pas de s'affranchir du type (ou de l'inférer) Je te laisse te googler...
Je connaissais pas l'inférence de type. Mais cela reste "récent". Et quid du typage dynamique ?

Citation Envoyé par SurferIX Voir le message
Les fonctions anonymes/lambda sont "récentes" en C++ WTF
2011 c'est une broutille. Ca correspond exactement à l'annonce de Dart.

Citation Envoyé par SurferIX Voir le message
Les lambdas en Python sont limitées
Les lambdas sont limités à une seule expression (https://docs.python.org/3/reference/...ns.html#lambda). Bon ok, ce n'est pas peut-être pas un mal, mais c'est une limitation en soit. A la rigueur, je préfère ne pas avoir de lambda mais des "pointeurs" de fonction.

Comme je le précisai, c'était du maigre haut de mes connaissances de ces langages que je ne connais guère.

Citation Envoyé par SurferIX Voir le message
Et l'écosystème JS...
La seule chose qui intéresse tous les développeurs JS du moment c'est : "c'est à la mode, ça m'intéresse". Vive bower, node, interact, nosql (et pas prononcer jquery c'est plus à la mode).
J'avoue que l'écosystème n'est pas très stable. Mais l'arrivée de bower, karma, npm, etc. montre que la technologie gagne en maturité. Rien ne dit si node/io survivront mais le JS dans les navigateurs risque de durer encore bien longtemps !

Citation Envoyé par SurferIX Voir le message
Ca passera d'ici quelques années. Seuls les langages dignes de ce nom survivront. D'ailleurs pourquoi Google essaie de rajouter tout ce qui manque à JS ? Regarde tout ce qui est ajouté au fur et à mesure... c'est qu'il a de gros manques, et que ça coûte cher à une entreprise de maintenir du JS. Ils implémentent en réalité ce que le meilleur langage existant, C++, a déjà. Même chose pour tous les mauvais langages qui deviennent connus (regarde toutes les nouveautés et implémentations de Php : ils en ont marre des problèmes de typage, ils ajoutent la possibilité de préciser le type des arguments, ils en on marre du manque d'héritage multiple, ils créent les traits (au passage, quelle horreur, l'écriture des traits omg...), et je pourrais te citer chaque évolution de Php : c'est combler un manque qui existe déjà dans la plupart des bons langages). Donc quelque part, faire évoluer un langage pour qu'il ressemble à ce qui existe déjà depuis des années, c'est simplement réinventer la roue. Je suis bien content qu'à l'IUT d'Aix, ils forcent énormément sur le C++, parce qu'une fois que tu comprends ce langage, tous les autres sont faciles (voire très faciles) à apprendre.
On est vendredi ? :troll:
Plus sérieusement, le C++ s'inspire également des standards du moment. Et je pense également que c'est un bon langage (mais que je connais que trop peu, surtout avec les grosses évolutions qu'il a connu).
Mais il ne fait pas le café. Sinon il n'y aurait pas autant de langages différents.

Citation Envoyé par SurferIX Voir le message
Donc désolé pour ne plus suivre le fil de cette conversation après ce post, mais tu dois avoir moins de 30 ans, car sinon tu verrais qu'on ré-invente systématiquement la roue pour faire les mêmes choses et je me lasse d'expliquer que je trouve inutile de réinventer la roue (sous prétexte de nouveauté) systématiquement.
Même avant 30ans on peut avoir connu beaucoup de choses (je dis pas que c'est mon cas ). Je vois les choses différemment : je trouve intéressant de s'améliorer systématiquement.
Contacter le responsable de la rubrique Accueil