dart2js traduit du code Dart en JavaScript
Qui serait plus performant que son équivalent idiomatique, le langage de Google évolue

Le , par Cedric Chevalier

0PARTAGES

1  1 
Une nouvelle version du compilateur dart2js est disponible. Pour rappel, ce dernier permet de convertir en JavaScript du code Dart.

Le nouveau dart2js permet de produire du code JavaScript plus compact et rapide grâce notamment à une innovation inédite appelée « global type inferencing ». Avec cette dernière, le compilateur en analysant entièrement du code Dart, produit un équivalent JavaScript plus compact et performant, dans lequel sont éliminées les lignes contenant les mots clés « Bailout », « typeof » ajoutées par l’ancien compilateur. De plus, ce nouveau compilateur change les boucles While en boucles For et les appels de fonctions sont remplacés par les champs d’accès.

Par ailleurs, on note également que dart2js gère mieux les dépassements de capacité de liste. En effet, là où JavaScript retourne une valeur indéfinie, Dart lève une exception qui sera utilisée par le compilateur pour générer un code qui avertirait le programmeur si celui-ci voulait avoir accès à un élément d’une liste de rang supérieur à sa taille totale.

En outre, des bancs d’essai ont été réalisés avec du code JavaScript généré par ce nouveau compilateur et leur équivalent idiomatique dans le moteur JavaScript V8 de Google. Il en ressort que le code généré par le compilateur est un poil plus performant que son équivalent idiomatique.


Nicolas Geoffray, contributeur du projet dart2js montre dans une vidéo de nombreux exemples de code Dart traduit en JavaScript par l’ancien compilateur et le nouveau avec son innovation inédite.

[ame="http://www.youtube.com/watch?v=rbLkYlbEZ1E"]Dart2js[/ame]

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. Mozilla propose également asm.js, un sous-ensemble restreint du JavaScript qui écarte tous les éléments complexes qui limitent les possibilités d'optimisation. Quant à Microsoft, TypeScript a été développé comme un sur-ensemble de JavaScript pour l’optimiser.

Preuve que JavaScript a de gros manquements, mais demeure cependant un langage clé ?

Le projet Dart sur GitHub

Source : Google

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

Avatar de jmnicolas
Membre éprouvé https://www.developpez.com
Le 11/04/2013 à 16:41
Citation Envoyé par Cedric Chevalier Voir le message
De plus, ce nouveau compilateur change les boucles While en boucles For
Je saisis pas en quoi une boucle for serait plus performante qu'une boucle while c'est pas du tout le même usage

Si quelqu'un veut bien m'expliquer.
Avatar de _skip
Expert éminent https://www.developpez.com
Le 11/04/2013 à 16:59
En fait, je ne sais pas si ce point précis est une question de performance. Je pense surtout au fait qu'avant une boucle for en dart était réécrite sous forme de while avec la syntaxe :

Code : Sélectionner tout
1
2
3
4
5
6
while(true) {

  if( [conditionSortie] ) {
     break;
  }
}
Ca pouvait être assez peu lisible, maintenant est-ce que question performance ça change réellement? Je sais pas, cela dépendrait surtout de l'intelligence de l'interpréteur / Jitter...

EDIT: Je viens de voir qu'il y a un exemple précis sur le site de dart où on voit une transformation selon le nouveau modèle comparé à l'ancien, et c'est formulé de manière plus performante.
Avatar de LSMetag
Expert confirmé https://www.developpez.com
Le 11/04/2013 à 21:04
Enfin une version comparable à du natif !
Je vais de ce pas m'y mettre !
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 12/04/2013 à 0:54
Justement non, on voit bien que le dart compilé en javascript a des performances inférieures au Dart classique, qui est lui même inférieur à du C/C++
Avatar de LSMetag
Expert confirmé https://www.developpez.com
Le 12/04/2013 à 7:56
Je voulais dire "comparable à du Javascript natif".

Car mon but, c'est clairement de ne plus développer en Javascript.
Avatar de Hinault Romaric
Responsable .NET https://www.developpez.com
Le 15/04/2013 à 15:21
Dart : Google sort une nouvelle version de Dart Editor
l’outil de développement pour son « JavaScript-killer » introduit une bibliothèque WebGL dédiée

Mise à jour du 15/04/2013

Google vient de publier une nouvelle version de Dart Editor.

À titre de rappel, Dart Editor est un environnement de développement open source léger, pour l’édition de code, le débogage et l’exécution d’applications Dart.

Il comprend un éditeur de code pour Dart avec coloration syntaxique, autocomplétion, etc. le SDK (kit de développement) Dart et Dartium (une version modifiée de Chrome qui dispose d’une machine virtuelle Dart pour le test des applications).

La nouvelle version de Dart Editor introduit comme fonctionnalité phare une bibliothèque dédiée pour WebGL, la technologie d’affichage 3D pour les navigateurs Web.


L’EDI propose désormais une nouvelle option pour désactiver l’activation automatique de la complétion de code. L’aperçu de l’application fonctionne dorénavant avec le nouveau moteur d’analyse. Ce nouveau moteur d’analyse apporte plusieurs améliorations de performances et une meilleure gestion de la mémoire.

En plus de ces nouveautés, des modifications ont été apportées à la plateforme, notamment la suppression de la méthode List.addLast, le déplacement des types WebGL de dart:html vers dart:web_gl, l’ajout d’un argument optionnel pour la méthode StrinkSink.writeAll et bien plus.

[ame="http://www.youtube.com/watch?v=VQLdm8BY1Ao"]Présentation de Dart Edito[/ame]

Pour rappel, Dart est un langage de programmation structuré pour le Web, basé sur les classes et optionnellement typé. Le langage est proposé comme une alternative à JavaScript.

Le compilateur dart2js serait capable de traduire du code Dart en JavaScript, qui serait plus performant que son équivalent idiomatique.

Télécharger Dart Editor

Source : Le site du projet

Et vous ?

Avez-vous adopté le nouveau langage de Google ?

Pensez-vous qu'il pourra pousser JavaScript vers la sortie ?
Avatar de BPiero
Membre actif https://www.developpez.com
Le 17/04/2013 à 19:11
Avez-vous adopté le nouveau langage de Google ?

non

Pensez-vous qu'il pourra pousser JavaScript vers la sortie ?

non
Avatar de r0d
Expert éminent https://www.developpez.com
Le 18/04/2013 à 14:45
J'ai parcouru cette passionnante discussion, et j'y ai lu beaucoup de mal à propos de javascript. Je ne connais rien à javascript, ni au développement web en fait, mais je suis curieux de savoir pourquoi javascript a si mauvaise réputation chez les développeurs alors qu'il est tant utilisé. Quelqu'un pourrait me faire un briefing?
Avatar de CapFlow
Membre actif https://www.developpez.com
Le 18/04/2013 à 16:39
Citation Envoyé par r0d Voir le message
J'ai parcouru cette passionnante discussion, et j'y ai lu beaucoup de mal à propos de javascript. Je ne connais rien à javascript, ni au développement web en fait, mais je suis curieux de savoir pourquoi javascript a si mauvaise réputation chez les développeurs alors qu'il est tant utilisé. Quelqu'un pourrait me faire un briefing?
En faite ça dépend des développeurs, et c'est un peu la même routine ... je pourrais détester Lua et un autre l'adorer par exemple.

Ces développeurs qui n'aiment pas javascript, c'est parce qu'ils lui trouvent des lacunes. Du moins, certaines de ces lacunes n'en sont pas : ces développeurs préfèrent tel ou tel système d'autre(s) langage(s) (exemple : il y en a qui préfèrent les classes au prototypage).
D'autres fois, c'est un défaut un peu "bancal" : le JavaScript ne dispose pas nativement, à proprement parler, d'héritage comme en PHP, il faut le faire autrement (des méthodes sont indiqués en faisant une petite recherche google ...).

D'autres encore n'aiment pas la syntaxe, le typage etc ...

En bref, comme je l'ai dit, c'est plus selon le goût qu'autre chose. Le langage à aussi des vraies lacunes, mais pas autant que ça.

Edit : il faut rajouter que la plupart des développeurs javascript utilisent jQuery, pour aller plus vite, que ce soit plus pratique ... enfin bon, il y a des frameworks/librairies qui peuvent aider à "s'adapter" au langage aussi.
Avatar de Loceka
Expert confirmé https://www.developpez.com
Le 18/04/2013 à 17:25
Pour moi javascript a mauvaise presse pour les mêmes raisons que PHP : c'est un langage grand public et permissif, ce qui fait que pas mal de "pages" javascript sont bourrées d'erreur et que ça peut être une horreur à reprendre/maintenir.

Donc ce n'est pas propre au langage (la plupart des langages de scripts sont tout aussi permissifs) mais plutôt à son succès.
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web