CoffeeScript est un langage de programmation, qui se compile en JavaScript. Le langage ajoute du sucre syntaxique inspiré par Python, Ruby et Haskell afin d'améliorer la brièveté et la lisibilité du JavaScript, tout en ajoutant des fonctionnalités comme le filtrage par motif ou les listes en compréhension.
Le résultat est compilé de façon prévisible en JavaScript, et les programmes peuvent être écrits avec moins de code (typiquement un tiers de lignes en moins) sans effet sur la vitesse d'exécution. Depuis le , CoffeeScript est dans la liste des projets les plus populaires de GitHub.
Le langage a une popularité relativement importante dans la communauté de Ruby. Le support de CoffeeScript est inclus dans la version 3.1 de Ruby on Rails. De plus, Brendan Eich a cité CoffeeScript comme une influence sur son idée du futur du JavaScript. En 2018, CoffeeScript est moins utilisé que dans les années précédentes, mais a largement contribué à l'évolution du langage JavaScript.
Le , Jeremy Ashkenas a effectué le premier commit Git de CoffeeScript avec le commentaire : « initial commit of the mystery language » (« premier commit du langage mystère »). Le compilateur était écrit en Ruby. Le , il a publié la première version numérotée et documentée, la 0.1.0. Le , la version 0.5 a été publiée, remplaçant le compilateur Ruby par un compilateur écrit en pur CoffeeScript.
Le , Ashkenas a annoncé la publication de la version stable 1.0.0 sur Hacker News, le site où le projet a été annoncé pour la première fois.
Pour calculer l'IMC de Barry, joueur de basket amateur, on fait d'habitude quelque chose comme ceci (ici en JavaScript):
var masse = 72;
var taille = 1.86;
var IMC = masse/taille/taille;
if ((18.5 < IMC) && (IMC < 25)) {
alert('Barry a une corpulence normale');
}
CoffeeScript permet de combiner les deux tests en un seul:
masse = 72
taille = 1.78
IMC = masse/taille/taille
if 18.5