z

Entendendo CoffeeScript

Quem é do mundo Ruby on Rails já deve estar cansado de toda a polêmica acerca do CoffeeScript meses atrás. Se você não acompanhou, vou tentar resumir a história.

DHH (@dhh), um dos criadores do Rails, tornou público que a versão 3.1 do framework viria com CoffeeScript por padrão, o que gerou um buzz gigantesco na comunidade com relação à sua utilidade.

Tweet do DHH

Não vou me delongar nessa história, até porque não é esse o objetivo desse artigo. Se você quiser saber mais, pode conferir o que o Fábio Akita (@akitaOnRails), referência no mundo Rails, escreveu sobre o assunto.

Afinal, o que é CoffeeScript?

É simplesmente uma linguagem que, quando compilada, gera Javascript. A ideia é facilitar a vida dos desenvolvedores jogando fora todos aqueles parênteses e chaves que atormentam nossas vidas. Expondo as boas boas partes do JavaScript de forma simples e objetiva.

A regra de ouro do é:

“It’s just JavaScript”.

Vamos ao que interessa

A maneira mais fácil de começar a mexer com CoffeeScript é utilizando o Live Edit do próprio site oficial, para isso basta clicar na aba Try CoffeeScript. Lá você poderá escrever e compilar na própria interface do site.

Ok, mas você não usará isso no seu dia-a-dia, isso é só para brincar. Se você quiser mesmo começar a utilizar essa linguagem em seus projetos existem dois caminhos.

O primeiro, não muito aconselhável, é usando o compilador baseado no browser.

<script src="http://jashkenas.github.com/coffee-script/extras/coffee-script.js"></script>

<script type="text/coffeescript">
  # inicie aqui a brincadeira
</script>

O que seria uma decisão não muito inteligente, pelo menos no ambiente de produção. Já que obviamente você não irá querer interpretar CoffeeScript em tempo de execução.

Por conta disso, existe um compilador em Node.js para pré-processar o arquivo.

Portanto, se você quer começar a usar CoffeeScript pra valer, tenha mente que você vai precisar de Node.js e seu respectivo instalador de pacotes, o Npm.

Caso não os tenha instalado, conte com a ajuda do seu grande amigo Google. Se estiver em um sistema operacional Unix, confira no blog do Suissa (@osuissa) como proceder com a instalação nesse artigo. Se estiver em um sistema operacional Windows, você terá um pouco mais de trabalho.

Com seu ambiente montado, vamos agora instalar o compilador de CoffeeScript utilizando o Npm através da linha de comando.

npm install coffee-script

Pronto, agora você está apto a compilar arquivos do tipo .coffee. Novamente, se você estiver no Windows, talvez tenha que utilizar outros artifícios, mas não desista (ou desista e instale um SO de verdade :P).

Tudo pronto, vamos brincar

Primeiramente, vamos criar um arquivo chamado amy.coffee com o seguinte conteúdo.

amyEstaViva = false

if amyEstaViva then alert "Eu sabia!" else alert "Droga =/"

E agora vamos compilar.

coffee --compile amy.coffee

O resultado em JavaScript será:

var amyEstaViva;

amyEstaViva = false;

if (amyEstaViva) {

  alert("Eu sabia!");

} else {

  alert("Droga =/");

}

Nada de muito incrível, mas é uma pequena demonstração de quão legível fica um código feito em CoffeeScript.

Aumentando um pouquinho o nível de complexidade, que tal resolvermos o clássico problema FizzBuzz de um Coding Dojo com apenas uma linha?

"#{if i%3 is 0 then 'fizz' else ''}#{if i%5 is 0 then 'buzz' else ''}" or i for i in [1..100]

Esse e outros códigos para impressionar seus amigos com apenas 1 linha podem ser encontrados nesse artigo do Ricardo Tomasi (@ricardobeat).

Mas eu amo jQuery e não faço nada em JS sem ele. Mimimimi

Sem problemas. Com CoffeeScript, o jQuery fica ainda melhor.

Imagine que você queira criar um plugin de jQuery em CoffeeScript.

$ = jQuery

$.fn.myFunction = -&gt;

  ### sua brincadeira aqui ###

E o resultado em JS:

var $;

$ = jQuery;

$.fn.myFunction = function() {

  /* sua brincadeira aqui */

};

Por falar em plugins de jQuery, que tal ver uma implementação real usando a versão em CoffeeScript do jQuery Boilerplate? Se estiver interessado em mais exemplos de uso, confira o site oficial e diverta-se.

E mais

Se você estiver sentindo falta de um Syntax Highlighter no seu editor como eu senti. Experimente essas versões para sistemas Unix.

Você também pode converter seus códigos Javascript para CoffeeScript de forma automatizada, sem ter que se preocupar em transcrever centenas de linhas de código. Para isso utilize o Js2Coffee. E se você gostou do que o CoffeeScript fez com seu Javascript, que tal a mesma coisa com seu HTML? Conheça o CoffeeCup. O CoffeeScript para marcação.

Conclusão

Mas então, será que precisamos mesmo saber CoffeeScript? Talvez não, mas com certeza precisamos saber JavaScript, isso é claro, se você lida com web. Em tempos em que a legibilidade do código tem sido cada vez mais valorizada. Muitos acreditam que a adoção dessa nova linguagem pode revolucionar o mundo do JavaScript, enquanto outros acham que é apenas mais uma forma de fazer mais do mesmo e simplesmente repudiam essa nova onda. Cabe a você identificar se essa linguagem agrega valor ao seu trabalho e lhe torna mais produtivo ou não. Valendo a máxima de que gosto não se discute, lembre-se que essa é uma escolha puramente estética e, consequentemente, pessoal.  E você o que acha dessa linguagem? Já implementou ou pensa em implementar em um projeto? Deixe sua opinião ;)

Leia também