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 : l'alternative de Google à JavaScript est prête à l'action

Le , par Hinault Romaric

25PARTAGES

1  0 
Mise à jour du 17/10/2012

Google vient de sortir la première version du SDK de Dart, son langage de programmation structuré pour le Web, basé sur les classes et optionnellement typé.

Cette publication marque le premier anniversaire du langage. Dévoilé en technology preview il y a de cela un an, le projet Dart propose un langage de programmation moderne, des bibliothèques et des outils pour construire des applications Web complexes.

La nouvelle version du SDK de Dart apporte plusieurs améliorations et nouvelles fonctionnalités dont une machine virtuelle plus rapide pouvant même surpasser le compilateur JavaScript V8 sur le Benchmark Octane pour certains tests. Un nouveau traducteur JavaScript Dart permet une génération plus rapide et compacte.

L’outil embarque également un éditeur de code (Dart Editor), un nouveau gestionnaire de packages (Pub), un langage de spécification, ainsi que Dartium, un navigateur fondé sur Chrome qui dispose du support natif de Dart.

Cette version dispose d’une bibliothèque pour interagir avec le code JavaScript, une bibliothèque E/S serveur et une bibliothèque HTML pouvant s’exécuter de manière transparente sur les navigateurs modernes.

Dart 0.1 gagne en robustesse et en fiabilité, et peut désormais être utilisé dans un environnement de production.

Le langage sera amené à évoluer dans les mois à venir, selon Google, mais la compatibilité ascendante sera maintenue.



L’objectif de Google avec Dart est de proposer une alternative au langage JavaScript, qui offre la même flexibilité que celui-ci, mais qui se distingue par son typage fort et optionnel. Il est vu comme un JavaScript-killer. Microsoft, pour sa part, a adopté un chemin différent avec TypeScript, qui est un sur-ensemble de JavaScript.

Télécharger le SDK de Dart

Source : Google

Et vous ?

Que pensez-vous du langage Dart ? Allez-vous l'utiliser ?

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

Avatar de ptah35
Membre éclairé https://www.developpez.com
Le 26/05/2013 à 22:07
Citation Envoyé par ugo-sans-h Voir le message
[...] je trouve simplement que Javascript n'évolue pas assez avec sont temps et l'utilisation que l'on en fait aujourd'hui. Sont approche n'a pas changé depuis des années, hors, notre approche du web elle a beaucoup évoluée. Hier javascript servait à gérer trois onclick, aujourd'hui on développe des Web App qui concurrencent directement les applications lourdes.
Il existe aujourd'hui un nombre incalculable de langages de programmation, mais les paradigmes et les concepts qui sont mis en œuvre dans ces langages sont en nombre limités et la plupart ont été inventés entre la fin des années 50 et le début des années 70. Le fait de "ne pas évoluer avec son temps" est donc une critique que l'on pourrait adresser à n'importe quel langage.

Le fait que JavaScript ait été utilisé pour gérer "trois onclick" n'implique pas qu'il ait été développé avec cette seule ambition. En effet, JavaScript, qui devait à l'origine s'appeler LiveScript, était destiné à devenir un langage de script pour le serveur http "Netscape Entreprise Server" et si son nom contient le terme "script", ce n'est pas parce qu'il s'agit d'un langage de programmation au rabais, mais parce qu'il est destiné un environnement d'exécution particulier (en l'occurrence un navigateur). Le fait que des applications concurrençant des « applications lourdes » aient pu être réalisées, montre d’une part les progrès qu’ont fait le html et les navigateurs et, d’autre part, que JavaScript est un vrai langage de programmation.

Tous les langages de programmation ont été développés pour permettre la création d'abstractions pour que les programmeurs puissent plus facilement gérer la complexité des programmes. Les variables, les procédures, les fonctions, les modules, les classes sont autant de moyens permettant la création d'abstractions. JavaScript n'utilise ni classe ni module, mais cela ne signifie pas qu'il ne dispose pas de moyens puissant pour créer des abstraction. En JavaScript, le principal moyen d'abstraction est la fonction qui est, dans ce langage, un objet de première classe (first-class citizen) et une fermeture (closure).

Si l'on aborde JavaScript en espérant y trouver les même concepts qu'en Java ou qu'en C#, il est évident que l'on risque d'être déçu, et je pense que si ce langage a une si mauvaise réputation, ce n'est pas tant à cause de ses défauts bien connus, mais plutôt à cause de programmeurs déçus de ne pas trouver dans ce langage ce qu'ils espéraient y trouver et qui n'ont pas voulu ou pas pu faire l'effort de regarder ce qu'il avait à offrir.

Même si un autre langage remplace un jour JavaScript dans les navigateurs, il reste pour l’heure le lingua franca des navigateurs et en tant que tel, le seul langage utilisable pour réaliser la partie cliente d’une application Web, il convient donc de l’apprendre lorsque l’on se considère comme un professionnel du Web. Cela étant dit, puisque tous les langages de programmation Turin-complet sont équivalents, il es possible de compiler n’importe quel langage en JavaScript et c’est une très bonne chose que de tels compilateurs existent. Si donc vous êtes plus à l’aise avec un autre langage, utilisez-le, mais ne dénigrez pas JavaScript parce qu’il ne correspond pas à vos attentes.

« Tout le monde est un génie. Mais si vous jugez un poisson sur ses capacités à grimper à un arbre, il passera sa vie à croire qu’il est stupide » (Albert Einstein)
9  0 
Avatar de
https://www.developpez.com
Le 17/10/2012 à 19:11
Je m'y suis essayé il y a quelques semaines. J'ai développé un player reposant sur la balise <video>.

Le fait de travail en objet déjà, c'est un énorme plus;
La gestion des librairies est pas mal (j'aurais aimé des namespaces ça aurait été parfait);
Très simple est clair de travailler avec le DOM et les évènements;
La fonction "query('mon selector')" Qui est ni plus ni moins l'équivalent de "jQuery('mon selector') avec lequel on peut travailler sur id, class, attribut, etc...);
Les accesseurs qui m'ont rappelé C#, j'ai trouvé ça sympa;
La gestion des socket est clair, simple.

Il manque encore deux trois détails (vraiment de très petites chose notamment pour le DOM), par exemple, j'aurais aimais avoir un méthode .position() retournant une instance Point sur la classe Element.

L'api est pas super super clair, beaucoup de méthodes abstraite, mais sans savoir pourquoi.
J'aurais aimé voir plus d'exemples concrets sur le site officiel, notamment sur les socket, les évènements, et le DOM.

Mon premier retour est très positif, je suis plutôt confiant sur le développement d'application complexe avec ce langage.

Bien sur j'entends déjà : "Oui mais ça on peut déjà le faire avec js, oui mais ça aussi" !! Oui, mais là on peut le faire plus proprement, plus structuré, plus homogène, le travail en équipe devient plus simple et la productivité en bénéficie à coup sur.
7  0 
Avatar de rt15
Membre éclairé https://www.developpez.com
Le 23/10/2012 à 17:42
Citation Envoyé par pierre-y Voir le message
premièrement : Est ce qu'une modification en profondeur de javascript est réellement nécessaire?
Le javascript a été conçût pour ajouter un soupçon de dynamicité au HTML. Le problème est qu'il est utilisé de façon intensive de nos jours, dans des applications de plus en plus complexes et sur des appareils plus ou moins puissants comme les smartphones. Il s'agit d'un langage de script et de haut niveau donc ses performances à l'exécution ne pourraient pas être pires, malgré les efforts des navigateurs. Côté développement, son modèle objet original déroute certains développeurs, et il n'est pas du tout rigoureux.

Cela dit l'approche de google et M$ ne me paraissent pas optimale, que ce soit à ajouter un autre moteur de script au navigateur (Pour exécuter directement du dart), ou pour générer du javascript à partir d'un autre langage.

Côté navigateur, il serait bien plus efficace et optimisé qu'ils exécutent un langage intermédiaire type byte code, facilement compilable en langage machine du processeur de la machine.

Côté développeur, on devrait pouvoir utiliser le javascript, pourquoi pas... Mais pas seulement. Tout autre langage, par exemple plus stricte, devrait pouvoir être utilisé aussi. Et tout ces autres langages pourraient se compiler vers un byte code au final envoyé au navigateur.

En fin de compte cela revient au modèle java, compile once, run everywhere. Et ce modèle à justement beaucoup plus de sens dans un navigateur que pour des logiciels desktop, où il est souvent intéressant voir obligatoire d'intégrer le logiciel à l'OS.

Citation Envoyé par pierre-y Voir le message
Deuxièmement : si oui, pourra t'elle voir le jour autrement que par un pluging (un peut comme unity3d ou adobe player mais libre) par exemple étant sonné la concurrence que les firme se livre entre elle pour imposer leur programme? Je vois mal Dart par exemple être accepté sans bronché par microsoft et apple et ceci même dans l'hypothèse ou il serait parfait.
Évidement, pour remplacer le javascript dans tous les navigateurs, ou du moins apporter une nouvelle toute nouvelle version de javascript, il faut que rapidement, les principaux navigateurs (Chrome, Firefox, Internet Explorer, Opera, Safari) supporte cette nouvelle fonctionnalité.

Ce qui pourrait aider, bien sûr, c'est que cette nouvelle technologie soit poussée par le w3c... On voit ce que ça donne avec le HTML5.

Mais il ne faut pas être négatif : si la techno commence à devenir à la mode (Ce qui veut pas dire qu'elle est bonne), elle peut tout à fait être prise en charge relativement rapidement. Prenons le cas de javascript lui même qui vient de netscape ou de XMLHttpRequest et donc AJAX qui vient de internet explorer.
7  1 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 23/05/2013 à 14:03
Citation Envoyé par DarkSeiryu Voir le message
Mais je me demande quand même, quel est l'intérêt de coder en autre chose qu'en JS si au final le compilo' met tout en JS pour être exécuté dans le navigateur ?
Moi je me demande quel est l'intérêt de coder en autre chose qu'en assembleur, puisqu'au final le compilateur ou la machine virtuelle convertit tout en langage machine...
Javascript est l'assembleur du web
6  0 
Avatar de yann2
Membre expérimenté https://www.developpez.com
Le 17/10/2012 à 16:04
Bonjour

Citation Envoyé par Flyers Voir le message
Dart à l'air sympa comme langage avec pas mal de features intéressantes.

Le problème c'est qu'il faut le Dart Editor, Dartium et DartXXX pour vraiment pouvoir profiter du langage.

Bref, ça fait très Microsoft ActiveX je trouve avec un produit créer par une entité pour cette même unique entité.

Personnellement, je préfère une surcouche à la TypeScript pour réaliser mon code et pouvoir le customiser après si nécessaire.
Tu peux générer du javascript depuis un programme écrit en Dart. La volonté de google c'est de simplifier le développement et notamment le développement d'applications clientes WEB à l'aide d'un langage mieux spécifié (c'est certainement pour ça que Dart n'est qu'en 0.1). Seulement google sait que firefox et IE et safari et ect. ne supportent pas ce langage donc ils ont simplement proposer une génération de code Javascript (ils ne sont pas débiles). L'information est sur la page d'accueil du site du langage donc il n'y a pas besoin de pousser les recherches très loin

Pour avoir parcouru les spécifications du langage, je trouve ça très prometteur et j'espère que les autres éditeurs de navigateurs changeront d'avis sur ce langage qui est un vrai plus comparé au monstre hybride qu'est javascript (qui a quand même de bons côtés, je ne le nie pas. Seulement, ils sont gâchés par les mauvais côtés ).
4  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 06/05/2013 à 9:29
Citation Envoyé par Uther Voir le message

Quand je fais une application classique, c'est quand même bien agréable de pouvoir choisir le langage le plus adapté. Heureusement, maintenant, il y a des langages qui compilent vers Javascript, avec même des performances supérieure à du Javascript qui aurait été fait main, ce qui en dit long sur la "puissance" du langage.
Perso ça me fait penser que dans un monde idéal, le javascript ne serait pas un langage mais un bytecode du style de celui qui est avalé par la JVM. Càd des opérations simples, moins difficiles à implémenter et à optimiser pour les browsers et des langages qui compilent vers ce bytecode commun.

Parce que de fait, c'est à cela qu'on vient avec des dart2js, des asm.js, des coffeescript et autre. Bientôt la seule vraie différence ce sera qu'au lieu de compiler vers du bytecode, on le fera vers un sous-ensemble optimisé de javascript.
5  1 
Avatar de LSMetag
Expert confirmé https://www.developpez.com
Le 23/05/2013 à 12:45
Citation Envoyé par DarkSeiryu Voir le message
Salut à tous.

Alors, je n'ai jamais testé Dart et je fais pas mal de JS donc je ne sais pas du tout ce que ça donne.
Mais je me demande quand même, quel est l'intérêt de coder en autre chose qu'en JS si au final le compilo' met tout en JS pour être exécuté dans le navigateur ? Parce que OK, Dart est dit plus simple à coder/debugger que JS, mais au final faut rajouter au temps d'exécution du JS, le temps de compilation en JS...
D'après moi, ça perd de son intérêt quand même.
Alors, il y a plusieurs intérêts. D'une part oui le gain de productivité et de "fun" est indéniable (sauf si tu maîtrise et aime javascript).
Deuxièmement, pour les gens pas forcément experts en javascript, le code généré est quand même de qualité. Dans certains cas, il est plus performant que du natif.
Enfin, le Dart n'est pas dynamiquement compilé en Javascript au chargement de la page. C'est à la compilation (dans l'IDE) qu'il est généré en Javascript, et c'est ce Javascript qu'il faudra déployer. Le Dart ne sert vraiment qu'au développement (sauf en utilisant la machine virtuelle Dart (uniquement dans Chrome) où là il explose Javascript).

Donc, si tu es expert en Javascript, ça aura sûrement peu d'intérêt, car tu sauras sûrement optimiser mieux que Dart2JS et tu ne galèreras pas comme beaucoup. Le problème c'est que j'ai l'impression que dans notre milieu, être expert en Javascript n'est pas très courant. Donc pour la maintenabilité, ça peut être utilise aussi.
4  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 06/05/2013 à 8:30
Citation Envoyé par BPiero Voir le message
Cependant, cette apparente faiblesse (voir complexité inutile) se révélera être d'une puissance redoutable pour le développeur qui est prêt a réapprendre ce qu'il croyait savoir sur la programmation. Bien sûr beaucoup vont me moinser (, mais je m'en fout, ça ne m’empêchera pas de dire la vérité), car ils ne sont pas prêts a admettre qu'un langage de script permissif et simple d'accès au départ puisse être puissant.
Tout dépend la définition que l'on se donne de "puissant", car au premier abord, ça ne veux pas dire grand chose.

Personnellement des que quelqu'un me parle d'un langage en me disant qu'il est puissant, j'ai peur. Car en général, il entend que le langage leurs évite de réfléchir à certains problèmes par magie, ce qui finit généralement par ce traduire par des performance mauvaises, parce que la magie ça a un coût, ou des comportement déroutants, car la magie, ça a ces limites.
Bref si on veux aller dans le complexe on se retrouve a apprendre tout le comportement que la magie essayait de cacher et on fini par ce retrouver avec quelque chose d'encore plus complexe que le problème initial.

Citation Envoyé par BPiero Voir le message
Malheureusement pour eux, le JS devient de plus en plus omniprésent, donc ils vont être forcés à terme d'évoluer ou d’arrêter le développement (ou c'est peut-être pour ça qu'ils vont me moinser? comme toujours je préfère dire ce que je pense plutôt que d'éviter les moins, question d'intégrité).
C'est le problème le plus énervant de JS. On est obligé de l'utiliser (du moins dans un navigateur) non pas parce que c'est un bon langage, mais parce que l'on a pas le choix.
Quand je fais une application classique, c'est quand même bien agréable de pouvoir choisir le langage le plus adapté. Heureusement, maintenant, il y a des langages qui compilent vers Javascript, avec même des performances supérieure à du Javascript qui aurait été fait main, ce qui en dit long sur la "puissance" du langage.
5  2 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 29/05/2013 à 17:22
Citation Envoyé par Golgotha Voir le message


Sérieusement : Je ne crois pas un seule instant à ce langage Quoique Apple à bien réussi à mettre en place un langage du même style, et par style j'entends : Un langage élitiste, dont uniquement une poignée de gourou comprennent le fonctionnement, avec un besoin boulimique d'outils propriétaire pour faire tournée le machin, je n'ai qu'un seule demande, si ce machin surpasse une bon vieux Notepad avec de l'HTML et du JS : Filez moi un coup sec derrière la nuque ! On à déjà assez avec l'Objective-C...
Tout à ma connaissance est open source et plutôt community driven, genre saloperie propriétaire, franchement y'a pire.
Quant à dire que c'est pour les gourous, c'est probablement moins difficile de relire du dart que du javascript (en tout cas pour moi), qui est un langage facile seulement en apparence (fais le test : tu pièges facilement quelqu'un sur un problème de scope ou de contexte en JS).
3  0 
Avatar de Code62
Membre éclairé https://www.developpez.com
Le 17/10/2012 à 14:35
Citation Envoyé par Flyers Voir le message
Le problème c'est qu'il faut le Dart Editor, Dartium et DartXXX pour vraiment pouvoir profiter du langage.
- il ne faut pas plus le dart editor pour écrire du dart qu'il ne faut eclipse pour écrire du java: tu peux écrire du code dart dans notepad si tu veux
- il faut dartium (pour le moment) pour executer nativement le dart dans un navigateur, mais il est aussi possible de "traduire" le code dart en javascript pour l'utiliser dans tous les autres navigateurs, en attendant qu'ils adoptent dart
- il faut dans ce cas effectivement un outil pour transformer le code, tout comme il faut un compilateur si on veut faire du C ou du Java, ce n'est pas vraiment un argument "contre" le langage

Citation Envoyé par Flyers Voir le message
Bref, ça fait très Microsoft ActiveX je trouve avec un produit créer par une entité pour cette même unique entité.
sauf que dart fonctionnera aussi sous linux ou mac, alors qu'activeX n'a jamais fonctionné que sous windows; que dart est libre et open source, confié à une communauté avec pour but de le faire adopter aussi largement que possible

Citation Envoyé par Flyers Voir le message
Personnellement, je préfère une surcouche à la TypeScript pour réaliser mon code et pouvoir le customiser après si nécessaire.
mouais, mais une surcouche ne corrige pas réellement les problèmes de la sous-couche (qu'on ne vas pas énumérer ici, c'pas le sujet), au mieux ça les masque... avec dart, un départ "from scratch" permet simplement de ne pas avoir ces problèmes, ni visibles ni cachés

Citation Envoyé par Flyers Voir le message
En plus, on commence à se rendre compte que Google est une entreprise et que de plus en plus de leurs produits soit disant gratuits deviennent payants. Rien à voir avec la philosophie du libre...
faut pas tout mélanger: oui évidemment google est une entreprise qui fait payer ses services... mais c'est aussi une entreprise dont la très grande majorité des services sont sur le web, et qui perd de l'argent quand ses développeurs perdent leur temps à travailler avec javascript... si dart est largement adopté et supporté par tous les navigateurs, google est gagnant de facto... ils n'ont aucun intérêt à monnayer Dart

In Dart I Trust, et je me réjouis de son démarrage ^^
4  2