BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Le Transpiler JavaScript 6to5 accélère

Le Transpiler JavaScript 6to5 accélère

Favoris

Les promesses d'ECMAScript 6 sont à l'horizon, mais la variabilité d'implémentation entre navigateurs rend son utilisation difficile pour les développeurs. L'intérêt pour le transpiler JavaScript 6to5 a beaucoup augmenté ces derniers mois et l'équipe a récemment annoncé que les développeurs du projet concurrent esnext allaient bientôt les rejoindre.

Depuis le premier commit en septembre 2014 par Sebastian McKenzie, 6to5 s'est positionné comme un outil important pour les développeurs souhaitant écrire du code ES6 sans avoir à se soucier des problèmes de compatibilité. Selon le tableau de compatibilité, 6to5 est actuellement le transpiler avec le plus de fonctionnalités implémentées.

Avec 6to5, le code ES6 :

class User extends Model {
  constructor() {
    super();
    this.sayHello();
  }

  sayHello() {
    alert("Hello World!");
  }
}

est compilé en ES5 ainsi :

var User = function User() {
  Model.call(this);
  this.sayHello();
};

_inherits(User, Model);

User.prototype.sayHello = function () {
  alert("Hello World!");
};

Créé par Brian Donovan, Esnext possède une communauté plus petite, principalement des personnes travaillant avec Ember.js. Lorsqu'InfoQ a interrogé un des membres de l'équipe de développement d'Ember, Stefan Penner, sur les raisons d'une telle fusion, sa réponse fut la suivante :

Avec esnext et 6to5 en parallèle, nous avions des solutions similaires et des communautés tentant de résoudre les mêmes problèmes, ce qui revenait tout simplement à dupliquer le travail tout en obligeant les utilisateurs à choisir.

Penner explique que pour la transpilation ES6, la communauté a besoin d'une solution plus "aboutie, plus en accord avec les spécifications, de temps de transpilation améliorés, d'une meilleure documentation et idéalement d'une solution qui s'impose pour permettre de focaliser l'énergie".

Selon McKenzie, le code esnext ne devrait pas être intégré dans la base de code de 6to5 mais le projet a gagné des talents importants :

La base de code 6to5 ne va pas changer, il n'y a pas d'héritage de esnext. Brian Donovan qui dirige esnext rejoint notre équipe 6to5. Stefan Penner sera impliqué dans le développement du processus et se chargera de l'intégration Ember entre autres.

Bien que 6to5 se soit beaucoup inspiré de Google Traceur, son approche est différente. Avec 6to5, les développeurs peuvent désactiver spécifiquement certaines transformations pour suivre l'évolution de la compatibilité. Si besoin, certaines fonctionnalités peuvent nécessiter des polyfills, mais aucun runtime n'est nécessaire.

Les développeurs qui ont utilisé 6to5 en vantent les mérites pour son guide d'installation et la qualité du code généré. Il s'intègre aussi avec différents systèmes de build comme Node.js, grunt, et gulp.

Durandal a commencé à utiliser 6to5 pour sa prochaine version Aurelia. Rob Eisenberg, le créateur de Durandal, explique qu'il a envisagé plusieurs solutions mais que la qualité du code généré, l'absence de runtime et le respect des spécifications l'ont convaincu que 6to5 était le bon choix.

Je trouve l'équipe de 6to5 très réactive. Ils délivrent, souvent plusieurs fois par jour et travaillent vraiment dur. Ils sont passionnés par le projet et çà se sent. Aurelia est un projet ES6 non trivial et il marche parfaitement aujourd'hui grâce à 6to5, entre autres grâce à la compilation dans plusieurs formats de modules pour permettre l'utilisation de différents chargeurs comme SystemJS et RequireJS.

Bien que le nom du projet suggère qu'il ne fait que transpiler de ES6 vers ES5, McKenzie explique que le nom finira par changer et que le projet vise à supporter toutes les "prochaines versions de JavaScript/ECMAScript".

Les gens ont tendance à croire que 6to5 est une solution à court terme, en attendant qu'ES6 soit mieux supporté. Mais ce n'est pas nécessairement le cas car cela prendra encore du temps avant que tous les navigateurs et environnements ne supportent ES6.

Correction : Une version précédente de cette histoire présentait Stefan Penner comme le créateur d'esnext. Penner est le créateur d'ember-cli qui utilise esnext et qui fait partie de l'équipe de développement d'ember.js. Brian Donovan est le créateur d'esnext.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT