Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Dart 1.8 : le langage de programmation structuré pour le Web de Google s'enrichit des énumérations
Son support intégré à App Engine

Le , par Hinault Romaric

11PARTAGES

4  0 
Google vient de publier une nouvelle itération de son langage de programmation Dart. Dart 1.8 apporte quelques nouveautés qui feront le plaisir des développeurs qui ont adopté le langage.

Pour rappel, Dart est un langage de programmation structuré pour le Web. L’objectif inavoué de Google avec ce langage est de mettre JavaScript à la retraite, en proposant un langage qui offre la même flexibilité, mais qui se distingue par son typage fort et optionnel.

La version 1.8 enrichit la bibliothèque Dart de nouveautés pour manipuler des collections, des connexions sécurisées et traiter des objets d’erreurs.

Avec cette itération, Google répond à l’une des principales demandes des programmeurs : l’ajout des énumérations au langage. Encore au stade expérimental, cette nouveauté offre au langage une nouvelle structure de données qui permet de contenir une série de données constantes ayant un type sûr, ce qui veut dire que ni le type, ni la valeur réelle de chaque constante n'est précisé.

Le support des énumérations va permettre aux développeurs d’écrire du code semblable à ce qui suit :


Parallèlement, Google a ajouté le support de Dart à App Engine, sa plateforme PaaS (Platform as a Services) pour l’exécution d’applications dans le Cloud. Il sera désormais possible d’exécuter des applications Dart côté serveur sur des machines virtuelles App Engine, et bénéficier de la souplesse qu’offre la plateforme (temps de réponse, montée en charge, stockage, etc.).

Google a mis en place un runtime personnalisé pour Dart qui permet de développer et déployer facilement des applications serveur Dart qui vont s’exécuter dans le Cloud. Le runtime permet de disposer d’un environnement de développement local complet qui simule Google App Engine (Datastore, Memcache, Logging, etc.) sur votre ordinateur.

Ce support de Dart dans App Engine permet d’étendre les possibilités du langage, présenté comme une alternative à JavaScript, qui s’exécute dans le navigateur. Le support de Dart dans App Engine est encore au stade de bêta.

Après un démarrage plutôt lent, Dart semble petit à petit séduire des développeurs. Le langage s’est hissé dans le top 20 de l’indice Tiobe le mois dernier, occupant la 17e place. Mais, il faut noter, cependant que les développeurs se tourneraient vers le langage parce que son compilateur Dart-to-JavaScript permettrait de générer du code JavaScript plus performant que du JavaScript idiomatique.

Actuellement, pour exécuter des applications Dart, vous devez utiliser Dartium, une version personnalisée de Chrome disposant de la machine virtuelle Dart. Jusqu’ici, le langage n’a pas été adopté par les navigateurs, y compris Chrome de Google.

Télécharger Dart 1.8

Plus de détails sur Dart sur App Engine

Source : Notes de version

Et vous ?

Dart représente-t-il une menace sérieuse pour JavaScript ?

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

Avatar de 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
2  0 
Avatar de 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... :/
1  0 
Avatar de 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.
1  0 
Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 27/03/2015 à 14:13
C'est moi ou Google commence à partir dans tous les sens ?
1  1 
Avatar de 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.
1  1 
Avatar de 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 ...
0  0 
Avatar de 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.
0  0 
Avatar de 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.
0  0 
Avatar de 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.
0  2