CoffeeScript

lenguaje de programación

CoffeeScript es un lenguaje de programación que se compila a JavaScript. El lenguaje añade azúcar sintáctico inspirado en Ruby, Python y Haskell[2]​ para mejorar la brevedad y la legibilidad de JavaScript, y añade características más sofisticadas, como la comprensión de listas y la coincidencia de patrones. CoffeeScript compila previsiblemente a JavaScript y los programas se pueden escribir por lo general en 1/3 menos de líneas de código sin ningún efecto en el rendimiento ni en el tiempo de ejecución.[3]​ A partir del 16 de marzo de 2011, CoffeeScript ha estado en la lista de los proyectos más visitados en GitHub,[4]​ y al 27 de julio de 2012 es el undécimo lenguaje más popular en GitHub.[5]

CoffeeScript
Desarrollador(es)
Jeremy Ashkenas, et al.
https://coffeescript.org/ y https://coffeescript.org
Información general
Extensiones comunes .coffee
Paradigma multiparadigma: Programación funcional, Programación basada en prototipos, imperativo, Interpretado (Scripting)
Apareció en 2009
Diseñado por Jeremy Ashkenas
Última versión estable 2.3.1 (22 de mayo de 2018)
Sistema de tipos débil, dinámico
Influido por Haskell, JavaScript, Perl, Python, Ruby, YAML[1]
Ha influido a MoonScript
Sistema operativo Multiplataforma
Licencia Licencia MIT

El lenguaje tiene un seguimiento relativamente grande por parte de la comunidad Ruby. El soporte a CoffeeScript está incluido en Ruby on Rails desde su versión 3.1.[6]​ Además, Brendan Eich ha hecho referencia a CoffeeScript como una influencia en sus pensamientos sobre el futuro de JavaScript.[7][8]

Historia editar

El 13 de diciembre de 2009, Jeremy Ashkenas hizo el primer Git commit de CoffeeScript con el comentario: "commit inicial del lenguaje misterioso."[9]​ El compilador fue escrito en Ruby. El 24 de diciembre, hizo el primer lanzamiento etiquetados y documentados, 0.1.0. El 21 de febrero de 2010, que publicó la versión 0.5, que sustituyó al compilador de Ruby con uno escrito en CoffeeScript puro. En ese momento el proyecto atrajo a varios otros colaboradores en GitHub , y estaba recibiendo más de 300 visitas a la página por día. El 24 de diciembre de 2010, Ashkenas anunció el lanzamiento de estable 1.0.0 en Hacker News, el sitio donde se anunció el proyecto por primera vez.[10][11]

Sintaxis editar

Muchas sentencias de JavaScript se pueden utilizar como expresiones en CoffeeScript, por ejemplo if, switch y for. Estas declaraciones de control también tienen versiones de Postfix. Un principio general es que muchos de los paréntesis son innecesarios y se pueden omitir ya que la sangría puede ser utilizada en lugar de la llaves para denotar bloques de código, las llamadas a funciones son implícitas (los paréntesis necesarios para una llamada a una función en JavaScript se puede quitar), los literales de objetos son a menudo detectados automáticamente, y así sucesivamente.

Ejemplos editar

Un fragmento de código JavaScript común con la biblioteca jQuery es

$(document).ready(function() {
  // Resto del código va aquí...
});

O incluso sólo

$(function() {
  // Resto del código va aquí...
});

En CoffeeScript, la palabra clave function se sustituirá por el símbolo ->, y la sangría se utilizará en lugar de las llaves, como en otros lenguajes "fuera de regla" como Python y Haskell. Además, generalmente cualquier paréntesis se puede omitir. De este modo, el equivalente CoffeeScript del fragmento anterior es

$(document).ready ->
  # Resto del código va aquí...

O

($ document).ready ->
  # Resto del código va aquí...

O simplemente

$ ->
  # Resto del código va aquí...

Compilación editar

El compilador CoffeeScript se ha escrito en CoffeeScript desde la versión 0.5 y está disponible como una utilidad de Node.js, sin embargo, el núcleo del compilador no se basa en Node.js y se puede ejecutar como cualquier JavaScript. Una alternativa a la utilidad de Node.js es el Coffee Maven Plugin, un plugin para el popular sistema de construcción Apache Maven. El complemento utiliza el motor de JavaScript Rhino, que está escrito en Java.

Su sitio oficial tiene una sección llamada «Try CoffeeScript» en la barra de menús, haciendo clic en él se abre una ventana modal en la que los usuarios pueden introducir código CoffeeScript, ver la salida en JavaScript, y ejecutarlo directamente en el navegador. El sitio js2coffee ofrece traducción bi-direccional.

Véase también editar

Referencias editar

  1. Heller, Martin (18 de octubre de 2011). «Turn up your nose at Dart and smell the CoffeeScript». JavaWorld (InfoWorld). Archivado desde el original el 10 de febrero de 2012. Consultado el 9 de febrero de 2012. 
  2. The Changelog. Episode 0.2.9 - CoffeeScript with Jeremy Ashkenas, July 23, 2010
  3. Read Write Hack. Interview with Jeremy Ashkenas Archivado el 19 de mayo de 2012 en Wayback Machine., Jan 7, 2011
  4. Github. Popular Watched Repositories
  5. GitHub. CoffeeScript
  6. Peek, Joshua. Tweet by Rails Core Team Member on Apr 13, 2011
  7. Eich, Brendan. "Harmony of My Dreams"
  8. Eich, Brendan. "My JSConf.US Presentation"
  9. Github. 'initial commit of the mystery language'
  10. Hacker News. CoffeeScript 1.0.0 announcement posted by Jeremy Ashkenas on Dec 24, 2010
  11. Hacker News. Original CoffeeScript announcement posted by Jeremy Ashkenas on Dec 24, 2009

Enlaces externos editar