Ahhh, um belo café! Quando a cabeça não ajuda ou o sono rompe a barreira da luz e do som, nada funciona melhor do que dormir uma bela dose de café pra fazer o código render. Talvez essa não tenha sido a motivação pra nomear o CoffeeScript, mas a relação faz sentido pra mim. :)

Eu definitivamente não tenho xp, mas a tempos queria estudar e postar algo sobre o assunto. Então, lá vamos nós!

Parafraseando o site... CoffeeScript é uma linguagem que compila pra JavaScript. Uma tentativa de expor as partes boas do JavaScript de uma forma simples. Foi criada pelo nosso amigo Jeremy Ashkenas (criador do Backbone.js e Underscore.js) inspirado por linguagens como Ruby, Python e Haskell. Isto significa... código limpo, sem vírgulas, sem chaves, sem parênteses e aquelas expressões de uma linha que cortam grama e curam o câncer.

Tema de casa feito, vamos a prática!

O que você precisa

  1. Node.js
  2. npm
  3. Tesoura sem ponta
  4. A linha de comando aí embaixo
$ sudo npm install -g coffee-script

Testando

$ coffee
coffee> console.log 'Hello Coffee'
Hello Coffee
undefined

Bora um Fibonacci?

coffee> fib = (x) -> if x<2 then x else fib(x-1) + fib(x-2)
[Function]
coffee> fib 3
2

Listando os 10 primeiros termos...

coffee> [1..10].map fib
[ 1,
1,
2,
3,
5,
8,
13,
21,
34,
55 ]

Em produção

Bom, obviamente você não vai fazer tudo por linha de comando. Então você precisa chamar o watcher pra quebrar esse galho.

$ coffee -cw src/ -o js/

Voilà! Agora sempre que você fizer uma alteração em um arquivo .coffee da pasta src ele vai ser compilado em um arquivo .js de mesmo nome na pasta js. Pegou?

Escrevido, lido, revisado e postado. Eu sigo estudando por aqui. Bom Google pra vocês!

Alguns links úteis:

CoffeeScript.org
Artigo do Tableless
Curso do Code School
Js2coffee (Dica do Adrian Neuhaus)