CoffeeScript 2 llega con mejoras de sintaxis de JavaScript

CoffeeScript, un lenguaje simple que se compila en JavaScript y tiene como objetivo facilitar la vida de los desarrolladores web, acaba de pasar a una segunda versión importante, una que enfatiza las mejoras de sintaxis. 

CoffeeScript 2, que se encontraba en fase beta desde abril, incluye un compilador que traduce el código CoffeeScript a la sintaxis JavaScript moderna. Una “clase” de CoffeeScript ahora se genera usando la classpalabra clave, por ejemplo. La versión 2 también incluye soporte para la sintaxis de funciones asíncronas, la futura sintaxis de desestructuración de objetos y JSX, que es JavaScript con elementos XML intercalados.

Los objetivos principales de CoffeeScript 2 eran eliminar las incompatibilidades con JavaScript que podrían evitar que CoffeScript se utilizara para un proyecto y preservar la compatibilidad con versiones anteriores en la mayor medida posible.

Se realizaron nuevas capacidades con pocos cambios importantes desde la versión 1.x, dijeron los desarrolladores de CoffeeScript. Anteriormente, el equipo había advertido que CoffeeScript 2 requeriría cambios importantes para cumplir con la especificación ECMAScript 2015 y superior. “La mayoría de los proyectos CoffeeScript actuales deberían poder actualizarse con poca o ninguna refactorización necesaria”, dijeron los desarrolladores. Los pocos cambios importantes involucran funciones enlazadas (flecha gruesa), funciones generadoras enlazadas y análisis literario de CoffeeScript, que ha sido refactorizado para tener más cuidado de no tratar las listas con sangría como bloques de código.

La modernización de la sintaxis de JavaScript significa que los desarrolladores pueden necesitar transpilar la salida del compilador, con la transpilación convirtiendo el código fuente en código fuente equivalente pero diferente. La documentación de CoffeeScript cita el caso en el que los desarrolladores querrían convertir JavaScript moderno en JavaScript antiguo para ejecutar en versiones anteriores de Node.js o navegadores más antiguos. CoffeeScript incluye soporte integrado para el transpilador Babel.

Con la versión 2, CoffeeScript ahora genera comentarios de línea, después de haberlos descartado en la versión 1.1. Los comentarios de bloque ahora se permiten en cualquier lugar, lo que permite anotaciones de tipo estático. La herramienta de línea de comandos de café también se ha mejorado en la actualización.

Tenga en cuenta que algunas funciones de JavaScript se han omitido intencionalmente, como lety var, funciones con nombre y las palabras clave gety set. Mientras que las let funciones y nombradas se omitieron por simplicidad, se omitió para varque los desarrolladores de CoffeeScript no tuvieran que lidiar con declaraciones de variables, y las palabras clave gety set se omitieron para evitar ambigüedades gramaticales. La omisión de CoffeeScripts de estas características de JavaScript no afecta la compatibilidad o interoperabilidad con módulos o bibliotecas de JavaScript.