CoffeeScript es un lenguaje pequeño que compila al equivalente de Javascript sin necesidad de ser interpretado en tiempo de ejecución. Ahora la versión 1.7 ha sido liberada y ahora tiene una serie de nuevas características, pedidas precisamente por los desarrolladores.
De acuerdo con el sitio oficial, la intención de CoffeeScript es exponer las mejores partes de Javascript de una manera simple. Se puede de hecho usar cualquier biblioteca de Javascript desde CoffeeScript y la salida compilada se mantiene legible, es decir, cuando pasa por el Lint de Javascript sin que aparezcan incluso “warnings”. Otra virtud es que tiende a correr más rápido que un programa escrito a mano directamente en Javascript.
Se ha introducido un modo que se llama “Literate Programming” desde la versión 1.5, que es opcional, y que se usa para hacer que el código sea más legible. Si un archivo es marcado como ‘.ltcoffee’, entonces cuando el compilador está compilando a Javascript, cualquier cosa que no está indentada, se descarta y solamente el código indentado es compilado. CoffeeScript se encuentra entre los lenguajes más populares en GitHub y es soportado por entornos como Ruby on Rails.
CoffeeScript se describe como estable y finalizado en su mayoría, pero en esta nueva versión se añaden nuevas características. En un artículo en GitHub sobre la nueva versión, su creador, Jeremy Ashkenas, describe los cambios (en orden de emoción -así dijo), empezando con el soporte a encadenamiento sin paréntesis. Hasta ahora, había que usar paréntesis si se quería encadenar funciones.
Esta nueva versión añade también mejor soporte a cadenas multilínea, con la capacidad de cortar cadenas largas sin tener que romper la indentación del código. Otra mejora es la destructuración de un arreglo. Esto era el problema abierto más importante en CoffeeScript. Se ha añadido nuevos operadores matemáticos y la forma del operador potencia (**), división entera con la función floor incluida (//) y la operación módulo que respeta negativos (%%).
Todo puede obtenerse en el sitio CoffeeScript y en GitHub
Referencias: