BT
x Votre opinion compte ! Merci de bien vouloir répondre au sondage InfoQ concernant vos habitudes de lecture !

Version 1.7 de CoffeeScript

par Burke Holland , traduit par Simon Courtois le 13 févr. 2014 |

Jeremy Ashkenas a publié la version 1.7 de CoffeeScript qui apporte au transpiler JavaScript quelques changements très attendus.

La version 1.7 inclut l'une des fonctionnalités les plus demandées, le support du chaînage d'appels sans parenthèses. Dans les versions précédentes, lorsque le développeur voulait chaîner des appels de fonctions, les parenthèses étaient obligatoires alors qu'elles ne le sont normalement pas en CoffeeScript.

// avant 1.7 - parenthèses obligatoires pour chaîner
$('#element').addClass('active').css({ left: 5 });

// depuis 1.7 - plus de parenthèses
$ '#element'
.addClass 'active'
.css { left: 5 }

Cette version apporte également le support des chaînes de caractères multilignes. Dans les anciennes versions, les herestrings (ou chaînes de caractères littérales), censées préserver les espacements et sauts de lignes, ignoraient l'opérateur \ qui indique que deux chaînes composent une même ligne. Avec la 1.7, ce défaut est corrigé permettant aux développeurs d'utiliser proprement les chaînes multilignes en CoffeScript.

console.log '''The quick brown fox jumped over the \
lazy dog'''

// résultat avant 1.7
The quick brown fox jumped \nover the lazy dog

// résultat depuis 1.7
The quick brown fox jumped over the lazy dog

L'expansion est maintenant possible lors de la déstructuration d'un tableau, question qui était restée la plus longtemps ouverte sur le dépôt de CoffeScript.

# récupérer le dernier élément du tableau animals
animals = [ 'cat', 'dog', 'hippopotamus' ]

# avant 1.7
hippo = animals[animal.length - 1]

# depuis 1.7
[..., hippo] = animals

# ...les deux sont transpilées en...
hippo = animals[animals.length - 1];

De nouveaux opérateurs mathématiques sont également présents. On trouve le nouvel opérateur de puissance, la floor division et l'opérateur modulo (qui retourne le reste d'une division).

# puissance
2 ** 2
# est transpilé en...
Math.pow(2, 2);

# floor division
2 // 3
# est transpilé en...
Math.floor(2 / 3)

# modulo
2 %% 3
# est transpilé en...
var __modulo = function(a, b) { return (a % b + +b) % b; };
__modulo(2, 3);

Autre amélioration : CoffeeScript s'aligne sur Node.js lors d'un appel à require. Plutôt que de charger automatiquement tous les fichiers d'un dossier, seul le fichier index.coffee sera chargé, de la même façon que Node.

La majeure partie du travail apporté à la version 1.7 (ainsi qu'aux versions précédentes de CoffeeScript) est fournie par les membres de la communauté. "Plus de 100 développeurs ont contribué à CoffeeScript" indique Jeremy. "L'importante adoption de CoffeeScript est due à l'attrait de l'idée pour les développeurs JavaScript". Jeremy a chaleureusement remercié Michael Srb pour son importante contribution à la version 1.7.

CoffeeScript bénéficie effectivement d'une forte popularité, au point de devenir le 10ème projet le plus populaire sur Github. Il est également supporté par certains frameworks comme Ruby on Rails (depuis la version 3.1) ou encore par Microsoft Visual Studio grâce au plugin Web Essentials. Brenden Eich, le créateur de JavaScript, s'est exprimé sur la façon dont CoffeeScript a influencé sa réflexion sur le futur de JavaScript.

L'utilisateur GitHub stefanpenner note que "…l'import/export ES6 serait génial…" pour CoffeeScript.

En ce qui concerne les fonctionnalités ES6 dans CoffeeScript, Jeremy indique :

CoffeeScript est globalement terminé — il est plutôt stable depuis deux ans — mais continuera d'évoluer légèrement dans le futur. Par exemple : le support des nouvelles fonctionnalités de JavaScript au fur et à mesure de leur apparition, un meilleur support des source maps, l'amélioration du style literate programming et une simplification du code interne du compilateur.

Un projet Kickstarter a été lancé pour réécrire le compilateur CoffeeScript. Ce projet a été financé avec succès et s'appelle CoffeeScriptRedux. Jeremy voit la création de compilateurs comme une bonne chose pour CoffeeScript : "plus il y a de compilateurs pour un langage donné, plus ce langage est en bonne santé. C'est dans l'intérêt de CoffeeScript d'avoir plusieurs compilateurs indépendants".

La version 1.7 est déjà disponible sur GitHub ou sur le site officiel de CoffeeScript.

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT