Quel est l'état actuel du langage de programmation Dart de Google? [fermé]

15

Dart est sorti depuis des siècles (en années Internet), mais à en juger par Google Trends , il n'a pas beaucoup de battage médiatique, et le fait qu'il ne fonctionne que dans Chrome n'aide pas non plus. Néanmoins, Chrome gagne chaque jour des parts de marché, ce qui se prête à une meilleure vue sur Dart.

Quelle est la situation dans son ensemble maintenant? Dans quel état est la langue? Les gens en ont-ils une haute estime? Part de marché? Vitrine d'applications Web? Certaines implémentations de fonctionnalités qui vous font dire "je dois l' utiliser"?

Mihalis Bagos
la source
2
Cette question peut être jugée trop localisée dans le temps et ne pas savoir comment la rendre moins localisée sans demander son avis sur la langue elle-même.
Matthieu
1
@Matthieu: Trop localisé? Sérieusement?
Jim G.
1
@JimG. : Pour une langue qui est dans sa version 0.06 , et qui est mise à jour tous les mois , je pense qu'il est juste de dire que cette langue pourrait ne pas être la même dans les 6 prochains mois, et que tout jugement rendu aujourd'hui sera alors inutile.
Matthieu
1
Dart fonctionne dans les navigateurs modernes en le compilant en JavaScript.
Seth Ladd
2
Je ne comprends pas vraiment la raison de cette fermeture. Il nécessite des faits (part de marché / utilisation), des références (exemples en ligne, etc.), l'état dans lequel se trouve la langue (aperçu technique comme indiqué dans les réponses), des implémentations de fonctionnalités (fait / référence / expertise spécifique). Le message fournit même des informations similaires à celles qu'il attend, qui sont claires et concises
Mihalis Bagos

Réponses:

27

La réponse courte à "Quel est l'état de Dart?" est: c'est dans Technology Preview. C'est une façon particulière de dire: «nous avons lancé tôt pour pouvoir tout ouvrir en open source et travailler en plein air». "Aperçu de la technologie" signifie également "nous ne sommes pas encore en Alpha, nous avons beaucoup de travail à faire, mais il y en a assez pour que vous puissiez jouer avec et donner votre avis".

Le temps sur Internet peut fonctionner pour les actualités ou les itérations de produits de consommation, mais probablement pas pour quelque chose d'aussi ambitieux et large que l'effort Dart. N'oubliez pas, Dart est plus qu'une simple langue. C'est également un ensemble de bibliothèques, une meilleure interface DOM, une machine virtuelle, un éditeur et une intégration avec Chrome. L'équipe travaille très dur sur beaucoup de threads parallèles, mais je m'attends personnellement à ce que cela prenne six mois avant que la plupart des pièces soient en place.

Ce n'est pas vrai que Dart ne fonctionne que dans Chrome. Dart se compile en JavaScript et cible les navigateurs modernes. Bien sûr, Chrome sera le premier à être lancé avec la prise en charge native de Dart, mais garantir que Dart se compile en JavaScript performant et efficace est une contrainte et une fonctionnalité de base du projet.

La vue d'ensemble est que Dart deviendra un environnement de développement «batteries inclus» pour les applications Web modernes. L'objectif principal de Dart est de garantir que le Web reste une plate-forme productive et agréable pour le développement et le déploiement d'applications. Cela signifie que de nombreux éléments doivent être mis en place: langage, bibliothèques, éditeurs, machines virtuelles et intégration de navigateur. Dans l'ensemble, nous pensons que Dart sera une option intéressante pour les développeurs d'applications Web modernes.

La grande grande image est que nous voulons amener les développeurs d'applications sur le Web, et nous voulons que les développeurs Web écrivent des applications Web plus complexes. S'ils utilisent Dart, c'est super. Mais à la fin de la journée, la langue n'a pas d'importance. La seule chose qui compte, c'est que des applications Web complexes, côté client, haute fidélité, faible latence, sont en cours de création.

La langue est en cours de développement. Nous voyons de nouvelles versions de la spécification environ une fois par mois. Les fonctionnalités principales manquent, telles que la réflexion, mais nous continuons à répéter. Nous venons d'ajouter le support map () à Collection, par exemple. Gilad Bracha, un gars qui connaît ses langues (ayant créé NewSpeak et travaillé sur Java Lang Spec) et Josh Bloch, un gars qui connaît ses bibliothèques (ayant écrit Effective Java et travaillé sur les bibliothèques Java Collection) travaillent sur le langage et bibliothèques, ainsi que la plus grande équipe.

Est-ce que les gens considèrent hautement Dart est difficile à généraliser, et cela n'a probablement pas trop d'importance pour vous. Vous devriez tirer vos propres conclusions après avoir joué avec Dart. D'après mon expérience, les développeurs d'applications d'autres plates-formes telles que Java, C # ou Flex trouvent Dart attrayant et familier. Mon expérience avec les développeurs JavaScript est partagée. Si ce développeur JavaScript a également créé des applications sur d'autres plates-formes, il est prudemment optimiste à propos de Dart (ou, du moins, de la solution qu'il essaie de fournir). Si ce développeur JavaScript a grandi sur JavaScript et n'a programmé qu'en JavaScript, il y a plus d'hésitation. Cela pourrait être une préoccupation fondamentale concernant le langage, une hésitation à quitter une zone de confort, ou tout simplement ne pas rencontrer de cas marginaux avec JavaScript. Ce n'est qu'une généralisation, mais je '

Quant à la part de marché, c'est très tôt dans le jeu. Ce n'est probablement pas la bonne question à poser, car Dart n'expédie même pas. Une question plus intéressante serait: "Quelle est la part de marché des applications sur le Web?" puis allez voir comment nous pouvons y remédier.

Quant à une vitrine Web App, l'équipe de Dart a construit Swarm, un lecteur de news élégant. Malheureusement, nous ne l'avons que dans le code source pour le moment: http://www.dartlang.org/samples/index.html

En ce qui concerne certaines fonctionnalités "killer", je dirais qu'il y en a quelques-unes assez intéressantes:

  • les types facultatifs sont lisses, ils ajoutent des annotations et des documentations pour les humains et les machines.
  • Les isolats sont un excellent moyen d'atteindre la concurrence simultanée de manière sûre.
  • Les bibliothèques (modularité) sont absolument nécessaires pour la pile Web, et Dart a des bibliothèques et des classes.
  • Les instantanés permettront un démarrage extrêmement rapide
  • Les bibliothèques groupées (comme les collections, le chronomètre, etc.) unifieront les bases de code et réduiront le code shippable
  • Belle nouvelle interface DOM, ce qui rend le travail avec DOM beaucoup plus agréable. Cela ressemble au code Dart natif.

J'espère avoir répondu à vos questions. Je pense que la seule question qui importe est: "Est-ce que mon langage m'aide à créer des applications Web complexes, haute fidélité, faible latence, modulaires et modernes?" L'état final de tout cela est simplement d'aider plus de développeurs d'applications à proposer des applications plus performantes sur le Web moderne.

Seth Ladd
la source
est venu à ce fil en regardant votre vidéo Introduction to Dart. Prêt pour une expérience pratique avec Dart. :)
SachinGutte
8

Vous ne pouvez pas mesurer l'âge du langage de programmation en "années Internet". En fait, vous ne pouvez mesurer aucune technologie réelle au cours des années Internet. Tout ce que vous pouvez vraiment mesurer dans les années Internet, ce sont les hypes, mais les hypes ne reflètent pas la réalité.

Dart est public depuis 3 mois maintenant. Comparez cela aux technologies "fraîches" et "chaudes" du domaine, comme CoffeeScript ou Node.js, qui sont publiques depuis 2 ans et presque 3 ans respectivement. Il convient également de noter que les deux sont des étapes relativement petites par rapport à Dart. Fondamentalement, CoffeeScript signifiait brancher un générateur JavaScript à un analyseur basé sur Ruby et Node.js signifiait lier des E / S non bloquantes au Google V8.

Dart est une tentative de refonte de la programmation Web frontale à tous les niveaux, c'est-à-dire la syntaxe, les fonctionnalités du langage, l'environnement d'exécution, les API. Par exemple, comparer Dart à CoffeeScript, c'est comme comparer un prototype d'avion personnel autopilote à énergie solaire avec un Shelby GT de 1968. Bien sûr, le premier a beaucoup plus de potentiel, mais y investir, sans parler de l'embarquer, demande beaucoup d'audace. Ce dernier a beaucoup de lacunes connues, mais elles sont connues, ce qui rend le tout prévisible et fiable.

Bien sûr, ce ne sont que des spéculations, mais je pense que Dart est une impasse, qui sera finalement récupérée pour faire avancer JavaScript ou d'autres solutions. Si vous voulez un langage dynamique, CoffeeScript et Parenscript font déjà ce que promet Dart. Si vous préférez plutôt un langage typé statiquement, haXe et Opa feront l'affaire. Tous les quatre ont une longueur d'avance sur Dart. Et tous sont conçus pour être compilés en JavaScript par défaut, pas seulement comme solution de rechange.

back2dos
la source
3
Je pense que même si Dart est nouveau en tant que langue, je n'y ai rien vu de particulièrement innovant . Pour autant que je sache, il est principalement composé de fonctionnalités provenant de langues plus anciennes. Il ne ressemble donc pas vraiment à un "prototype d'un avion personnel autopiloté à énergie solaire".
Tikhon Jelvis
@ back2dos +1 "Vous ne pouvez pas mesurer l'âge du langage de programmation en" années Internet ". En fait, vous ne pouvez mesurer aucune technologie réelle en années Internet." Cela m'a ouvert une nouvelle perspective. Pourquoi ne peut-on pas et comment mesurer la technologie aux époques pré et post Internet?
Ubermensch
@TikhonJelvis: La comparaison portait davantage sur la maturité. Pourtant, l'énergie solaire, le pilotage automatique et l'aviation existent tous, donc le véhicule que j'ai décrit est similaire à Dart, "juste" une recombinaison d'idées existantes. Le défi de l'ingénierie n'est pas de se recombiner, mais de le faire voler;)
back2dos
Comparer Dart à d'autres langues est hors de cette discussion, et autant que je peux imaginer à n'importe quelle discussion, car ce sont des choses différentes de toute façon. Dart est plus qu'un préprocesseur et il n'est certainement pas orienté côté serveur. Cependant, je suis d'accord sur les spéculations sur l'avenir de Dart, et c'est l'une des choses auxquelles j'attendais une réponse
Mihalis Bagos
@MihalisBagos: Eh bien, puisque Dart peut compiler en JS, vous pouvez déjà l'exécuter sur Node.js, donc il peut être utilisé côté serveur. Le temps est également difficile à mesurer de manière significative, donc pour comprendre jusqu'où Dart peut aller en quel temps, une comparaison à une langue donnée à un stade ultérieur avec un nombre compréhensible de fonctionnalités est à peu près le meilleur cadre de référence que vous pouvez obtenir.
back2dos
5

Dart est toujours en avant-première technique. Pour le moment, la spécification de langue a la version 0.0.6, un 0.0.7 est attendu quelque part cette semaine. C'est loin d'être "complet". Il existe plusieurs exemples dans le référentiel: http://www.dartlang.org/samples/index.html

Voici une vue de ce qui est mieux en termes de syntaxe qu'en JavaScript: http://www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html Avertissement: c'est mon message . Je dois dire ici que j'aime JavaScript, mais à certains moments, il a des bizarreries, ce que je n'aime pas beaucoup.

Il y a aussi une communauté croissante autour d'elle: http://www.dartosphere.org

Certaines personnes ont réussi à porter Box2D à Dart, un autre gars connecté à CouchDB. Quoi qu'il en soit, vous ne devez rien utiliser en production.

Avant un moment, Josh Blochua a rejoint l'équipe pour travailler sur une refactorisation de l'API. Vous pouvez vous attendre à certains changements même dans l'API Core.

Prise en charge du navigateur: vous pouvez transcompiler Dart en JavaScript, de préférence avec Frog (pas DartC, il se compile en d'énormes fichiers javascript). Dartium est l'un des navigateurs qui prend en charge Dart natif, une branche Webkit controversée est également quelque part.

Mon attente personnelle est d'obtenir quelque chose de plus concret au milieu de l'année prochaine. D'après mon expérience, Google Devs fait beaucoup pour rendre le langage approprié et bon, empruntant non seulement à Java, mais aussi à Erlang et JavaScript.

Voici un exemple, un jeu porté depuis JavaScript: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

On peut s'attendre à ce que Dart arrive sur Android, peut-être même en tant que «langue principale». Les gens disent que cela arrivera à AppEngine.

Personnellement, je pense que Dart est très élégant et déjà assez sympa. De plus je pense qu'il aura une part de marché une fois qu'il sera terminé.

Vous trouverez de nombreuses réponses à vos questions dans cette FAQ: http://www.dartlang.org/support/faq.html#compare-to-coffeescript

Christian
la source
Merci pour la réponse orientée pratique, liens très intéressants!
Mihalis Bagos
0

Dart est sorti depuis des lustres (en années Internet)

Il n'est même pas largement utilisé et il est immature. Les technologies prêtes pour la production existent depuis 10-15 ans et plus ... pour Dart, vous ne pouvez même pas dire que c'est un pré-alpha. Les nouvelles technologies ont toujours fière allure, sur papier, lorsque personne ne les utilise.

il n'a pas beaucoup de battage médiatique

Je pense le contraire. C'est dommage qu'un langage aussi mauvais et arriéré ait reçu des critiques si positives. Cela remonte de la belle POO Ecma / Java Script avec héritage parasite, fermetures et rappels à une POO en bois vieille de dix ans prise de Java avec toutes les pratiques de programmation horribles que Java propose.

Certaines implémentations de fonctionnalités qui vous font dire "je dois l'utiliser"?

Aucun. Si vous connaissez Java et que vous avez une intolérance aux connaissances pour apprendre correctement Ecma / JavaScript, Dart est probablement la seule chose qui fonctionnera pour vous.

Vous savez comment fonctionne Google. Ils utilisent beaucoup Java, c'est probablement pourquoi ils ont produit un langage aussi horrible ... ils y sont juste habitués.

À côté, il fragmente davantage le Web et je ne peux qu'espérer que Mozilla et Opera ne l'implémenteront jamais (car MS n'apportera pas de support pour certains google java comme une langue à coup sûr). À côté du fait que le concept entier est daté, nous devrions nous débarrasser des langages comme C ++ ou Java au moins lors du codage des interfaces utilisateur car ils sont très inefficaces. C'est comme remplacer C ++ par Assembler, car les codeurs à la fin de la cinquantaine refusent d'apprendre de nouvelles choses.

Slawek
la source
2
Vous voudrez peut-être atténuer un peu vos préjugés linguistiques; votre premier paragraphe fait un bon résumé et vous vous retrouvez avec une belle observation mais celles-ci se perdent dans tous les "horribles".
Patrick Hughes
+1 à la baisse, c ++ est toujours bien vivant (tout comme l'assembleur) pour des applications spécifiques. Ce n'est peut-être pas le meilleur outil pour chaque travail, mais dans de nombreuses circonstances, il est génial. L'assembleur est par exemple utilisé dans les moteurs de jeu je crois.
Paul Hiemstra
Je n'ai pas dit que Java ou C ++ était mauvais ... les deux sont mauvais pour les interfaces utilisateur, c'est ce que JS est utilisé (principalement) pour programmer. Les deux sont bons dans d'autres domaines. Dart est juste une approche naïve des gens qui ne programment qu'en Java, donc ils pensent probablement que Java est bon pour tout. À côté, j'ai travaillé avec MFC et Java sur les interfaces utilisateur, donc je pense que j'ai le droit de le dire :) C'est comme dire que Assembler est plus avancé que C car ASM est tout ce que vous savez :)
Slawek
J'ai travaillé avec Java et JavaScript et je peux dire que votre message est horrible et naïf. Les langages de programmation ne sont pas une religion, et Dart a une assez bonne approche. Je ne pense pas que nous puissions ou devrions nous débarrasser de langages comme Java. Ce n'est qu'un discours de pirate sans aucun raisonnement.
Christian
Raisonnement? Vous pouvez faire la même chose dans JS qu'en Java ... juste quelques fois plus vite + le code est beaucoup plus facile à gérer et à modifier, si nous parlons d'interfaces utilisateur. Temps = argent. C'était déjà assez grave lorsque nous avions ensemble VBScript et ECma sur les navigateurs ... pourquoi revenir aux années 90? JS est un langage spécifique pour un cas très spécifique pourquoi le remplacer par quelque chose de général et de merdique?
Slawek
0

Dart est un concept imparfait qui suit les traces de Javascript. Google devrait collaborer à la création d'un runtime standard pour les navigateurs Web (un peu comme un HTML 6). Similaire au code d'octet java ou à l'IL de Microsoft.

Nous ne devons pas standardiser des langages spécifiques, mais des runtimes. Le "navigateur est un système d'exploitation". Droite? WTF google? Suivez votre propre vision !!!

Lord Tydus
la source
2
Le bytecode Java est un langage spécifique. Tout comme CIL.
Jörg W Mittag