CoffeeScript 2 arriva con miglioramenti della sintassi JavaScript

CoffeeScript, un semplice linguaggio che compila in JavaScript e mira a rendere più facile la vita degli sviluppatori web, è appena passato a una seconda versione principale, una che enfatizza i miglioramenti della sintassi. 

CoffeeScript 2, che era in fase beta da aprile, dispone di un compilatore che traduce il codice CoffeeScript nella moderna sintassi JavaScript. Una "classe" CoffeeScript viene ora generata utilizzando la classparola chiave, ad esempio. La versione 2 offre anche il supporto per la sintassi delle funzioni asincrone, la futura sintassi per la destrutturazione degli oggetti e JSX, che è JavaScript con elementi XML intervallati.

Gli obiettivi principali di CoffeeScript 2 erano rimuovere le incompatibilità con JavaScript che potrebbero impedire l'utilizzo di CoffeScript per un progetto e preservare la compatibilità con le versioni precedenti al massimo grado possibile.

Le nuove funzionalità sono state apportate con poche modifiche sostanziali dalla versione 1.x, hanno detto gli sviluppatori di CoffeeScript. In precedenza, il team aveva avvertito che CoffeeScript 2 avrebbe richiesto modifiche sostanziali per conformarsi alle specifiche ECMAScript 2015 e successive. "La maggior parte dei progetti CoffeeScript attuali dovrebbe essere in grado di eseguire l'aggiornamento con un refactoring minimo o nullo", hanno affermato gli sviluppatori. Le poche modifiche sostanziali riguardano le funzioni associate (freccia grossa), le funzioni del generatore associato e l'analisi Literate CoffeeScript, che è stata riformulata per essere più attenti a non trattare gli elenchi rientrati come blocchi di codice.

La modernizzazione della sintassi JavaScript significa che gli sviluppatori potrebbero dover transpilare l'output del compilatore, con la transpilation che converte il codice sorgente in codice sorgente equivalente ma diverso. La documentazione di CoffeeScript cita il caso in cui gli sviluppatori vorrebbero convertire JavaScript moderno in JavaScript precedente per eseguire in versioni precedenti di Node.js o browser meno recenti. Il supporto integrato per il transpiler Babel è incluso in CoffeeScript.

Con la versione 2, CoffeeScript ora emette commenti di riga, dopo averli scartati nella versione 1.1. I commenti di blocco sono ora consentiti ovunque, abilitando le annotazioni di tipo statico. Anche lo strumento della riga di comando del caffè è stato migliorato nell'aggiornamento.

Si noti che alcune funzionalità JavaScript sono state intenzionalmente omesse, come lete var, funzioni denominate e le parole chiave gete set. Mentre le let funzioni e denominate sono state omesse per semplicità, è varstata omessa in modo che gli sviluppatori di CoffeeScript non dovessero occuparsi delle dichiarazioni di variabili e le parole chiave gete set sono state omesse per evitare ambiguità grammaticali. L'omissione di CoffeeScripts di queste funzionalità JavaScript non influisce sulla compatibilità o sull'interoperabilità con i moduli o le librerie JavaScript.