Mi sono innamorato di JavaScript. Però non è un amore puro, il mio. È tutta colpa di CoffeeScript.
 
Il passaggio a Rails 3.1 ha portato diverse novità, tra le quali la gestione nativa di CoffeeScript. E confesso che inizialmente non riuscivo ad apprezzarlo. Ma dopo un paio di progetti non tornerei mai indietro.
 
JavaScript, per un programmatore Ruby, è come la musica neo-melodica napoletana per un amante del metal. Ruby è sintetico e fortemente espressivo; JavaScript manca di queste due caratteristiche. Ma Jeremy Ashkenas ha posto una pezza a questo problema creando CoffeeScript.
 
La sua sintassi è un mix tra quelle di Ruby (uso minimo di parentesi e la mancanza del ; ) e Python (sensibilità al whitespace e importanza dell'indentazione), e molto semplicemente quello che si scrive in CoffeeScript viene "tradotto" in JavaScript, assicurando una piena funzionalità per i browser. In combinazione con jQuery, programmare in JavaScript diventa uno spasso.
 
Partiamo dalle basi. L'operatore -> diventa function(). Ad esempio
 
diventa
 
Inizialmente ho avuto qualche problema a capire come definire delle funzioni con parametri.
 
diventa
 
Ma una delle caratteristiche che mi fa amare questo linguaggio è la sua gestione dei cicli. Vediamo un esempio:
 
diventa
 
Con quelle tre righe di CoffeeScript si crea l'intera gestione di un ciclo for.
 
Ci sono un sacco di altre caratteristiche, la più interessante delle quali è secondo me la gestione delle classi che sfrutta in maniera semplicissima la funzione prototype di JavaScript. In più CoffeeScript sta aiutando lo sviluppo di node.js, una delle tecnologie più interessanti sulla piazza.
 
Sicuramente ne riparleremo in futuro. Nel frattempo: usate CoffeeScript? Come vi trovate?