Dart : l'alternative de Google à JavaScript est prête à l'action

Le , par Hinault Romaric, Responsable .NET
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 ?


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


 Poster une réponse

Avatar de Flyers Flyers - Candidat au Club https://www.developpez.com
le 17/10/2012 à 14:04
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.

Donc Dart, non merci, trop Google Fanboy pour moi. 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...
Avatar de Code62 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 ^^
Avatar de yann2 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 ).
Avatar de ugo-sans-h ugo-sans-h - Membre régulier 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.
Avatar de - https://www.developpez.com
le 18/10/2012 à 20:31
et tu a une demo du player ayant moi meme fait un player en js j'aurait voulu comparer le js generé et aussi le dart créé
Avatar de ferber ferber - Membre éprouvé https://www.developpez.com
le 19/10/2012 à 8:07
Citation Envoyé par mekal Voir le message
et tu a une demo du player ayant moi meme fait un player en js j'aurait voulu comparer le js generé et aussi le dart créé
personnellement je serrais plus intéressé par une comparaison des temps de développement

J'ai télécharger le pack Dart,
L'auto-complétion marche bien, la recherche de membre aussi, ainsi que l'indispensable bouton "aller a la définition".

Au première abord certaine chause sont assez déstabilisante

genre
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
String ToString()
 =>"on dirais pas mais je suis une function";

au lieu de 
toString=function(){ return "on dirais pas mais je suis une function";}

ou de 

public function toString():String{ return "on dirais pas mais je suis une function";}
de plus j'ai trouvé intérréssant de pouvoir définir une implémentation par défaut pour une interface.

J'ai été surpris que la surcharge d'opérateur soit disponible.

Et j'ai aussi été surpris de voir le nombre de class déjà existante.

Ils ont bien bossé.

Le seul point négatif et l'ide basé sur éclipse( que je trouve affreusement lent ).

Sinon je doit avouer que le langage me plait.
Mais sachant que FF MS Apple vont tous faire pour empêcher le développement du projet, ça donne pas envie d'investir même si on peut exporter en js.
Si google et le seul mécènes du projet ça peut vite tourner cour.
Dart risque potentiellement de devenir un flash2 ou silverlight2 dans le sens ou adobe et Ms sont en train de ce désengager de ces projets laissant les utilisateurs du produit le bec dans l'eau a plus ou moins long terme au grand plaisir du W3C.
Et je n'ai pas envie d’apprendre un nouveau langage et un nouveau framework pour le coup en sachant que la communauté open source &W3c vont tout faire pour que le langage finisse à la poubelle sans même se pauser de questions ( voir le wiky anglais de dart ).

Il vaut mieux parier sur des technologies côté serveur indépendante des navigateurs qui produises du code html basique ( paragraphe, link, bold,italic,img ) code simple et donc : multiplate-forme.
Avatar de kimjoa kimjoa - Membre confirmé https://www.developpez.com
le 20/10/2012 à 16:52
et tu a une demo du player ayant moi meme fait un player en js j'aurait voulu comparer le js generé et aussi le dart créé
J'aime bien dart, le langage est assez séduisant, mais il s'éloigne trop du javascript pour que la compilation soit clean. Il ont fait des progrès depuis novembre dernier, mais c'est pas encore ça. Quelques bench , mais qui date.... Les prochains bench seront sans doute plus satisfaisant.

J'ai compilé l'exemple fournit par l'éditeur
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import 'dart:html';

num rotatePos = 0;

void main() {
  query("#text")
    ..text = "Click me!"
    ..on.click.add(rotateText);
}

void rotateText(Event event) {
  rotatePos += 360;
  query("#text").style
    ..transition = "1s"
    ..transform = "rotate(${rotatePos}deg)";
}
A noter les deux points, vraiment pratique !

Le résultat est un fichier de 127 ko ....
Mais c'est pas vraiment le poids qui pose problème, la base du code js servant au binding sera dilué par la taille du projet.
En examinant vite fait le code produit, je me suis rendu compte qu'un appel de fonction en dart, pouvait correspondre en javascript à 4 ou 5 appels voir plus.
De ce point de vue typescript s'en sort bien mieux avec une génération vraiment très propre.
Avatar de PasteFinger PasteFinger - Nouveau membre du Club https://www.developpez.com
le 20/10/2012 à 23:04
Pour que Dart soit adopté, il faudrait qu'il offre des performances très supérieures à Javascript !
Avatar de _skip _skip - Expert éminent https://www.developpez.com
le 21/10/2012 à 9:22
Ce sera surement possible s'il tourne dans dartvm car dart n'a pas toute une série des biais de javascript qui rendent le "jit" difficile à optimiser.

En revanche, traduit en javascript... Je comprend que ça devra s'améliorer. Même si je pense que la vitesse d'exécution ne repose pas forcément sur le code lui-même, la plupart des manipulations de tous les jours (sauf bien sûr les jeux, les canvas) sont déjà rapides, donc même 2-5 fois plus lentes ce serait encore plus rapide que l'utilisateur. Sans compter que les "opérations lentes" comme les appels ajax iront toujours à la même vitesse.

Je suis pas sûr que ce soit bloquant cette affaire de performance JS moins bonne si de l'autre côté on gagne suffisamment en maintenance et en productivité.
Avatar de pierre-y pierre-y - Membre confirmé https://www.developpez.com
le 23/10/2012 à 16:38
Bonsoir,

En lisant la discussion j'ai deux questions qui me tique :

premièrement : Est ce qu'une modification en profondeur de javascript est réellement nécessaire?

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.

Bonne soirée,
Contacter le responsable de la rubrique Accueil