Coffee Script

Written by Samuel de Ancos

CoffeeScript (http://coffeescript.org/ es, tal como lo define su creador, un pequeño lenguaje que compila a Javascript.

Esta diseñado para ser intuitivo y fácil de leer, bebiendo de lenguajes como Ruby o Python.

La verdad es que para empezar a trabajar con CoffeeScript se debería tener conocimientos de javascript primero, y también ayuda y mucho conocer nodejs.

Vayamos al grano, vamos a instalar CoffeeScript (requiere nodejs):

npm install -g coffee-script

Este post no pretende ser ni siquiera una introducción al lenguaje, simplemente es un pequeño ejemplo de las capacidades del mismo. Si necesitas mas información podrás encontrarla en web oficial: http://coffeescript.org/#scripts

Muchas mas información mucho mas detallada podréis encontrar por ejemplo en el libro que escribió Javi Jimenez en español: https://leanpub.com/coffeescripto en ingles podréis encontrar valioso el coffeescript-cookbook: https://coffeescript-cookbook.github.io/

Por eso nosotros a lo nuestro que es mostrar un pequeño ejemplo sobre de que va esto:

class Upper
    constructor: (@text) ->
    all_words: ->
        @text.toUpperCase()
    first_words: ->
        (@text.split(" ").map (word) ->
            word[0].toUpperCase() + word[1..-1].toLowerCase()).join " "
upper_instance = new Upper "hola amigos"
console.log upper_instance.all_words ""
console.log upper_instance.first_words ""

Pero lo interesante de todo esto no es la funcionalidad del ejemplo, si no la compilación a javascript. Suponiendo que nuestro fichero se llama _myexample.coffe podemos compilarlo a javascript:

$ coffee -c my_example.coffe

Obteniendo un fichero js con la misma funcionalidad:

// Generated by CoffeeScript 1.4.0
(function() {
  var Upper, upper_instance;
  Upper = (function() {
    function Upper(text) {
      this.text = text;
    }
    Upper.prototype.all_words = function() {
      return this.text.toUpperCase();
    };
    Upper.prototype.first_words = function() {
      return (this.text.split(" ").map(function(word) {
        return word[0].toUpperCase() + word.slice(1).toLowerCase();
      })).join(" ");
    };
    return Upper;
  })();
  upper_instance = new Upper("hola amigos");
  console.log(upper_instance.all_words(""));
  console.log(upper_instance.first_words(""));
}).call(this);

La verdad es que es un lenguaje divertido! 9 lineas coffee 20 javascript, aunque sinceramente el tema de si escribir mas o menos es mejor es subjetivo, creo que para algunas personas CoffeeScript puede ser un lenguaje que le ayude a escribir pequeños códigos en javascript sin despegarse mucho de su lenguaje preferido como podría ser Ruby o Python.