| CoffeeScript | ||
|---|---|---|
| Desarrollador(es) | ||
| Jeremy Ashkenas, et al. 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 | |
CoffeeScript es un lenguaje de programación que se compila aJavaScript. El lenguaje añadeazúcar sintáctico inspirado enRuby,Python yHaskell[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]
El lenguaje tiene un seguimiento relativamente grande por parte de la comunidad Ruby. El soporte a CoffeeScript está incluido enRuby 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]
El 13 de diciembre de 2009, Jeremy Ashkenas hizo el primerGit 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 enGitHub , 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]
Muchas sentencias de JavaScript se pueden utilizar como expresiones en CoffeeScript, por ejemploif,switch yfor. 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.
Un fragmento de código JavaScript común con la bibliotecajQuery 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 clavefunction 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í...
El compilador CoffeeScript se ha escrito en CoffeeScript desde la versión 0.5 y está disponible como una utilidad deNode.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 elCoffee Maven Plugin, un plugin para el popular sistema de construcción ApacheMaven. El complemento utiliza el motor de JavaScriptRhino, que está escrito enJava.
Susitio 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.