Vamos enfrentá-lo, JavaScript nem sempre teve a melhor reputação entre os desenvolvedores, e desde a fundação do CoffeeScript em 2009, esta pequena linguagem tomou o mundo dos desenvolvedores de JavaScript pela tempestade; principalmente porque supera o que alguns podem dizer é o pior aspecto do JavaScript: a sintaxe de seu código.

Mesmo que seja uma nova linguagem, você vai aprender muito rápido, principalmente porque é um JavaScript reformulado; é essencialmente JavaScript mais simples e mais simples.

Ao escrever o CoffeeScript, não esqueça que você está escrevendo código que antes de ser implementado será compilado em JavaScript que segue as melhores práticas e passa no teste JSLint, então essa é uma coisa a menos com a qual você precisa se preocupar. A saída ainda será válida JavaScript que o navegador não terá um problema na leitura. CoffeeScript é para JavaScript o que o SASS é para CSS: uma maneira de escrever código mais simples e produtivo.

Instalando e usando

O CoffeeScript é um utilitário node.js, portanto, para instalá-lo, você precisa ter o node.js instalado, bem como o gerenciador de pacotes do nó. Supondo que você tenha instalado estes dois pacotes, tudo o que você precisa fazer é ir ao seu terminal e instalar o CoffeeScript com o gerenciador de pacotes usando o código:

npm install -g coffee-script

Só com isso você tem o CoffeeScript instalado em sua máquina. Para compilar um arquivo .coffee em um arquivo JavaScript, você precisa digitar:

coffee --compile script.coffee

Isto irá compilar o arquivo script.coffee em script.js no mesmo diretório, mas só irá fazê-lo quando você executar o comando, se você quiser que ele compile em cada mudança que você fizer no arquivo de café você precisa adicionar o - watch antes a compilação:

coffee --watch --compile script.coffee

Com isso, seu JavaScript será compilado toda vez que você fizer uma alteração em seu arquivo .coffee.

Variáveis

Ao escrever uma variável JavaScript, temos que prefixar a palavra-chave var, com o CoffeeScript essa palavra-chave sumiu e você pode simplesmente digitar a variável e atribuí-la a algo. Outra coisa a se observar é que o CoffeeScript usa muitos métodos de recuo para evitar ponto-e-vírgula e, para que a linguagem entenda que a instrução variável está completa, você só precisa mover para uma nova linha:

age = 21country = "Portugal"

Em JavaScript você teria que digitar algo como:

var age = 21;var country = "Portugal";

É um pequeno exemplo, mas você pode começar a ver como o CoffeeScript é poderoso quando se trata de simplificar seu código.

Operadores lógicos e comparativos

Lembre-se de todo esse tempo que você gastou memorizando operadores JavaScript? Lembre-se de se perguntar por que você precisava usar === em vez de apenas usar o is? Bem, o CoffeeScript também cuida disso. Ele oferece alguns aliases muito legais para os operadores:

Operadores de comparação

  • === agora pode ser negociado por simplesmente é;
  • ! == é igualmente transformado para o isnt mais legível .

Operadores lógicos

  • Em vez de usar && você pode usar apenas e;
  • quanto a || a partir de agora você pode digitar ou;
  • o pequeno ponto de exclamação que afirmava que um não é trocado pela coisa mais lógica: não.

Se declarações

Outra coisa de que o CoffeeScript se livra é de chaves. Ele usa o método indenting para declarar quando você está dentro de uma instrução, se as instruções funcionam como JavaScript, mas você não precisa das chaves ou parênteses; apenas recue o código que você deseja executar quando a afirmação for verdadeira:

if work > 24 and sleep < 8vacations()elsework()

irá compilar em JavaScript como:

if (work > 24 && sleep < 8) {vacations();} else {work();}

Espero que você esteja começando a ver os benefícios do CoffeeScript apenas com estas simples demonstrações de como ele pode ser limpo e que um código mais limpo significa um código mais sustentável.

Looping através de matrizes

Loop através de arrays é uma das coisas que você deve fazer em cada aplicativo JavaScript que você escreve e a sintaxe para fazer loops em JavaScript não é a mais simples ou a mais limpa, eu acho que é onde o CoffeeScript realmente brilha. Para percorrer um array, usamos um loop for..in, assim:

tasks = ['Design','Code','Groceries']for task in tasksalert task

Tudo o que esse pedaço de código fará é ler todas as coisas da matriz e depois alertar uma por uma, só para tornar as coisas ainda mais simples, você pode até escrever o loop for ... em uma linha, assim:

tasks = ['Design','Code','Groceries']alert task for task in tasks

É simplesmente muito mais legível e fácil de manter do que o JavaScript vanilla, falando de qual seria o código produzido pelo CoffeeScript para essas duas linhas:

var task, tasks, _i, _len;tasks = ['Design', 'Code', 'Groceries'];for (_i = 0, _len = tasks.length; _i < _len; _i++) {task = tasks[_i];alert(task);}

Enquanto loops

Embora os loops também sejam muito úteis ao construir seu aplicativo JavaScript e o CoffeeScript não deixa isso mais fácil de ler e escrever, por exemplo:

while sleep < 8sleep()

Ou você pode escrever tudo em uma linha, se preferir:

while sleep < 8 then sleep()

Ou:

sleep() until sleep > 8

Em JavaScript puro isso se traduziria em:

//thenwhile (sleep < 8) {sleep();}

Ou:

//untilwhile (!(sleep > 8)) {sleep();}

Funções

Funções também são outra parte vital de qualquer linguagem de programação e mesmo que funções em JavaScript não sejam tão confusas quanto algumas outras partes, o CoffeeScript simplifica isso ao máximo também, uma função simples que pega o nome de alguém e então alerta que ele pode ser escrito assim :

sayHi = (name) ->return "Hello " + namealert sayHi('Sara')

Tudo o que você faz é nomear a função, neste caso, as funções são chamadas de sayHi, e depois do sinal de igual você precisa especificar os parâmetros. Aqui name é o único parâmetro, depois que a base de nossa função é definida, precisamos digitar -> seguido na próxima linha pelo que queremos que a função faça para que o CoffeeScript saiba que estamos dentro da função. Neste caso tudo o que eu quero é retornar “Olá” e depois o nome da pessoa e por último eu uso um alerta simples para chamar a função com o nome. Também podemos escrever isso em uma linha eliminando a entrada e o recuo apenas escrevendo o que a função fará após o ->:

sayHi = (name) -> return "Hello " + name

Este pequeno trecho de código será compilado no seguinte JavaScript:

var sayHi;sayHi = function(name) {return "Hello " + name;};alert(sayHi('Sara'));

É claro que esta foi uma função muito simples, mas como você pode ver, ela nos salvou 3 linhas de código e, é claro, no JavaScript, podemos apenas nomear a variável conforme declaramos a função da seguinte forma:

var sayHi = function(name) {return "Hello " + name;};alert(sayHi('Sara'));

Os exemplos que dei aqui são o que o CoffeeScript compila e, embora na maioria dos casos, há maneiras mais fáceis de digitar algo, todo o JavaScript compilado é válido e semântico.

Conclusão

Este é apenas o começo do que o CoffeeScript pode lhe dar, quando as coisas começam a ficar mais complexas, essa pequena linguagem lhe dará muita vantagem quando comparado ao JavaScript, menos código que você precisa escrever, mais código legível e mais sustentável também , para que você possa voltar a um website um ano depois e saber o que está acontecendo nesse JavaScript.

Fique ligado na segunda parte desta série, onde mostrarei como combinar o CoffeeScript com o jQuery e o LocalStorage para criar um aplicativo de lista de contatos simples.

Você já usou o CoffeeScript para simplificar o JavaScript? Que partes do CoffeeScript você prefere para JavaScript? Deixe-nos saber nos comentários.

Imagem em destaque / miniatura, imagem de café via Shutterstock.