Dart 1.2 améliore l'expérience du développeur
Google publie une nouvelle itération de son alternatif à JavaScript
Le 2014-02-27 12:29:27, par Hinault Romaric, Responsable .NET
À la suite de Microsoft qui a publié la Release Candidate de TypeScript 1.0, Google a dévoilé une nouvelle itération de son langage Dart.
TypeScript et Dart ont en commun de vouloir corriger les faiblesses de JavaScript. Alors que TypeScript est une sorte de « super JavaScript » entièrement compatible avec celui-ci, Dart est un langage alternatif proposé par Google, avec pour objectif inavoué la mise à la retraite du langage de Script.
La nouvelle version du langage de programmation structuré pour le Web rend plus facile le débogage des applications. Les points d’arrêt peuvent maintenant être fixés sur des affectations de variables locales. Le débogueur a été optimisé et élimine certains effets secondaires liés à son utilisation.
La bibliothèque de base de Dart continue à évoluer, avec un accent sur les performances. Le débit du module WebSocket a augmenté d’un facteur de quinze depuis la version 1.0. La vitesse des primitives asynchrones de base a également été améliorée de 10 %.
L’environnement de développement Dart Editor introduit un meilleur support d’Angular (navigation, recherche et ré-factorisation). Dart 1.2 apporte également des correctifs de bugs, des améliorations de performances et des améliorations pour la machine virtuelle Dart, le compilateur, les bibliothèques et les outils.
Dart a été adopté en décembre dernier par l’Ecma, qui a mis sur pied un comité pour superviser la création d’une norme pour le langage, afin de favoriser son adoption par l’industrie, notamment les éditeurs de navigateur.
Télécharger Dart v1.2
Source : Notes de version
Et vous ?
Entre Dart et TypeScript ? Quelle approche vous semble la meilleure pour combler les faiblesses de JavaScript ?
TypeScript et Dart ont en commun de vouloir corriger les faiblesses de JavaScript. Alors que TypeScript est une sorte de « super JavaScript » entièrement compatible avec celui-ci, Dart est un langage alternatif proposé par Google, avec pour objectif inavoué la mise à la retraite du langage de Script.
La nouvelle version du langage de programmation structuré pour le Web rend plus facile le débogage des applications. Les points d’arrêt peuvent maintenant être fixés sur des affectations de variables locales. Le débogueur a été optimisé et élimine certains effets secondaires liés à son utilisation.
La bibliothèque de base de Dart continue à évoluer, avec un accent sur les performances. Le débit du module WebSocket a augmenté d’un facteur de quinze depuis la version 1.0. La vitesse des primitives asynchrones de base a également été améliorée de 10 %.
L’environnement de développement Dart Editor introduit un meilleur support d’Angular (navigation, recherche et ré-factorisation). Dart 1.2 apporte également des correctifs de bugs, des améliorations de performances et des améliorations pour la machine virtuelle Dart, le compilateur, les bibliothèques et les outils.
Dart a été adopté en décembre dernier par l’Ecma, qui a mis sur pied un comité pour superviser la création d’une norme pour le langage, afin de favoriser son adoption par l’industrie, notamment les éditeurs de navigateur.
Source : Notes de version
Et vous ?
-
LutarezMembre chevronnéJustement, à titre personnel, c'est la raison majeure qui me fait détester le Javascript.
Quand je développe une application, je réfléchis en amont à l'architecture de mon code : les différentes entités, comment chaque composant va interagir, les fonctionnalités que je dois implémenter, etc. De là, et de là seulement, je serai en mesure d'écrire mon application. Ce n'est que très rarement que j'aurai besoin de modifier mon architecture. Avec du prototypage, toute cette réflexion en amont peut être réduite à néant car n'importe quoi peut s'amuser à redéfinir le comportement d'une méthode.
Pour la petite histoire, dans le cadre d'un ancien travail, j'avais réussi à détourner une IHM Siebel pour mon usage (automatisation de la saisie d'informations) en redéfinissant une fonction Javascript, juste en utilisant IE7... Je pouvais même modifier des valeurs en lecture seule !le 27/02/2014 à 14:03 -
anthymeMembre éprouvéTon exemple n'est pas bon, justement dans un langage typé avec une architecture correct on nfait pas de test d'instanceOf.
On sait partout où l'on est le type des éléments et on peut donc appeler la méthode car le compilateur nous a assuré qu'on pouvait le faire
Pour ma part je pense que typescript est plus efficace aujourd'hui pour son approche minimaliste et sa compatibilité absolue avec toutes les libs existantes. C'est le gros défaut de dart, quand il serra largement supporté et que les libs seront distribuées tant en js qu'en dart cela sera un choix du même niveau.
Il ne faut pas oublier l'objectif de typescript, être un langage "futur" du javascript, en gros on code en typescript comme on pourrait coder en ecmascript6, une fois l'ecmascript 6 arrivé on garde un code très proche.le 27/02/2014 à 14:44 -
Electron56Membre à l'essaiMaintenant un mois que j'ai migré mon projet en dart côté serveur et dartangular côté client.
Un vrai bonheur, les possibilités qu'ils proposent donnent un confort de conception que j'ai rarement pu avoir dans pas mal de technologies. Ce que j'aurais fait en un mois auparavant je le fais maintenant en une semaine. Cela reste bien sûr un outil et le développeur fait la différence mais je ne regrette pas mon choix du tout et j'ai hâte de tester cette 1.3 ce soir.le 10/04/2014 à 17:36 -
DonQuicheExpert confirméJe trouve en général tes avis sur les technos web très intéressants mais concernant les langages typés il est clair que tu es à côté de la plaque. Des List<Object> je n'en rencontre jamais parce qu'on n'a pas besoin de listes d'objets hétérogènes, ou alors très rarement. Et si vraiment tu as besoin de faire ça (une fois tous les cinq ans), alors le motif "adaptateur" est là pour ça.
Les seules fois où le typage statique me met inutilement des bâtons dans les roues, c'est relatif aux types paramétrés. Et encore c'est parce que je fais beaucoup de C# et que les types paramétrés y sont rudimentaires.je ne comptes pas le nombre de CastException que je vois passé sur le SI dans des produit à plusiers centaine de milliers d'euros lorsque ce n'est pas des nombres à plus de 6 chiffre.
Par ailleurs s'il y a erreur sur le type de donnes attendu, mieux vaut que ça te bondisse tout de suite à la tronche avec une exception que de voir le truc accepté en douce pour créer un bug tris kilomètres plus loin.une réalié au quotidient pas le choix la seule classe qui est capable de servir de base commune c'est Object.
certaines des lib fournissent la méthode dont j'ai bessoin d'autre pas. les classe sont final impossible de les dérivers. impossible même si on pouvait des dériver de faire en sorte que la lib produise des objets dérivés elle n'est pas là pour ça. impossible donc d'avoir un moyen d'être sur d'avoir la même méthode partout.
impossible de faire un traitement simple en parcourant les objet et en appliquant sur chacun une methode. du coup on caste on fait de s méthode utilitaire etc.
on pisse du code.Pourquoi tant de language lève les contrainte de classes ? pourquoi tant de language joue avec des mécanisme d'introspection ? pourquoi voit-on fleurir les injection de byteCode ?Parfoit les classes bien rigides sont des contraintes trop fortes.
Je n'ai pas dit toujours, j'ai dit parfois.
Par contre plus le projet est gros, plus le typage statique est utile. C'est à ce besoin que répond TypeScript.et lors on est confromté quotidiennement à ce genre de difficultés où on fini par pondre des centaines de lignes pour 1 appel de méthode ont change de méthode de travail et on prends des outils qui ont d'autres avantages pour d'autres usages avec des façons de travailler différents.biensur les nom des champs ne sont pas homogènes c'est donc des centaines de lignes à écrire. alors qu'avec un langage plus souple comme js une boucle sur tous les membres de l'objet une map qui traduit le nom du champ une autre les valeur etCode : out[translateNom[membre] = translate[origValue]
efficacité des classes 30 x 100 lignes de code java face à 3 lignes de js.le 27/02/2014 à 19:54 -
javan00bMembre actifSi tu veux developper en Javascript sans que sa coûte une fortune il te faut un gros stack d'une dizaine de librairie.
Ya vraiment quelqu'un qui fait des gros projets scalable en vanilla javascript de nos jours avec un budget limité ?
Faut etre serieux Dart c'est aussi bien structuré que Java, le temps de développement et la complexité sont reduit de beaucoup. C'est beaucoup mieux structuré que javascript et beaucoup + lisible pour n'importe quel programmeur qui fait de la POO sur un language qui n'a pas été architecturé en 10 jours !
C'est une question de temps, quand les gens vont s'en rendre compte et que Dart aura pris en maturité... On risque de voir beaucoup + de gens l'utiliser.le 28/02/2014 à 1:54 -
tomlevRédacteur/ModérateurTiens, j'ai l'impression d'avoir déjà vu ça quelque part... ça ressemble étrangement à ce que propose C# 5le 27/03/2015 à 16:11
-
VlozerMembre habituéPersonnellement après avoir essayé les deux, je porte beaucoup plus d'espoir en dart qu'en TypeScript, meme si dans l'immediat, j'espere que l'un ou l'autre prendra le dessus sur le js brut...
Je ne connais pas le javascript... En tout cas tout juste assez pour faire le cake sur des page web avec JQuery, mais j'ai énormément de mal a apprécier ce langage... Ok, à chaque fois que j'ai eu à l'utiliser, j'ai souvent été surpris de élégances de certaines de ses syntaxes, mais le constat et là: si je n'ai aucun problèmes pour lire du javascript, je dois sans arrêt plus ou moins "réapprendre le langage" pour en ecrire... La faute selon moi à un certain manque de rigueur/ une trop forte flexibilité dans l'ecriture (et je dis pas ça forcement pour le typage dynamique, les signature de fonction à rallonge ou encore les fonctions anonymes imbriquées sans fin)...
Pour tout dire, je n'ai pas eu la chance d'avoir pu suivre les étapes de l'evolutions du js, pourtant, j'ai l'impression de subir le poids de son age à chaque utilisation...
Et cela dès l'apprentissage... Je me souviens qu'il y a encore quelque années, on nous donnait un alert('Hello world!'); en guise de première instruction... C'est assez représentatif du problème du js je trouve... Et c'est ce qui me donne cette impression que le js est construit sur des fondations instables...
C'est peut etre une impression complètement fausse.... Mais c'est qui me donne envie de miser sur le Dart (qui part de 0) plutot que sur Typescript qui se content d'etre simplement une surcouche des-dites fondations.
Dart voit beaucoup plus loin, pour moi ca n'a pas vraiment de sens de le comparer avec TS, car il ne s'agit pas ici de simplement typer le js (d'ailleurs en production, le dart ne fait aucune verif) mais il s'agit surtout de penser directement le langage pour comment il sera utiliser demain (scalable, concurent)...
Et à ce titre, j'estime que Dart evoluera plus rapidement que Typescript/Javascript en plus d’implémenter nativement l’interprétation de certaines features qui ne seront qu'émulées en js...
Et puis, sans vouloir stigmatiser Microsoft, je fais plus confiance à Google pour promouvoir une technologie web open source...le 27/02/2014 à 23:55 -
youtpout978Expert confirméJe pense qu'il y a la place pour plusieurs concurrents, côté serveur on a le choix d'une infinité de langage alors que côté client on est cantonné au JS.
Si on peut avoir plusieurs solution capable de cohabiter pourquoi pas au lieu d'avoir le monopole d'un seul langage.le 28/02/2014 à 11:44 -
anthymeMembre éprouvéBon je precise deja je suis plus c# que java, mais j'ai fait pas mal de dev JS et typescript aussi.
Ecoute pour moi ce n'est pas de la POO ni même de la bonne programation, il y a des pattern pour ca Adapter ou Bridge.
Différentes implémentations de domaines complètements différents n’empêche pas une abstraction avec un contrat spécifique, si ce n'est "pas possible" c'est juste qu'il y a une erreur de conception.
Ces casts, test d'instance, switch de comportements sont justes des anti patterns.
Et bien je préfère mille fois l'encapsulation.
Ces questions nous avancent pas beaucoup ... Pourquoi les derniers langages qui sortent ajoutent le concept de classe ?
En effet les langages dynamiques sont naturellement plus doués pour le mapping d'objets à signature similaire. Mais on peut totalement le faire avec la majorité des langages typés soit en réflexion soit avec des lib éprouvés pour cela.Code : OrderDto dto = Mapper.Map<Order, OrderDto>(order);
Je n'ai pas bien compris ton cas, en tout cas en C# on a les méthodes d'extension qui permettent de rajouter une méthode à une classe existante, pourtant on est sur un langage typé.le 28/02/2014 à 12:08 -
sekaijinExpert éminentBon je crois que ça commence à troller fort.
je vais arrêter. car lorsqu'on dis
le fait que js soit différent ne le rend ni meilleur ni moin bon qu'un autre et qu'on interprète ça
ainsi :
Là je jette l'éponge
le 28/02/2014 à 15:47