Comecei a olhar para mais uma linguagem que está mudando a minha forma de pensar. Coffescript é uma pequena linguagem que compila para javascript e é muito simples para usar. Você pode compilar o código para javascript ou incluir o javascript do compilador coffescript na sua página. Por enquanto estou apenas fazendo isso no meu local, por isso este serviço ainda não está disponível em meu site.

Um exemplo muito bacana que inicia a explicação do coffescript é a criação de uma função que eleva ao quadrado (em inglês square):

square: (x) -> x * x

E para usufruir dos métodos:

square(5)

Os métodos também não precisam de parênteses obrigatóriamente:

square 5

Lembrando do exemplo da moeda, em coffescript posso declarar da seguinte forma:

rand: (x) -> Math.round(Math.random() * x)

moeda: {
 faces: [ 'cara', 'coroa' ]
 sortear: -> puts this.faces[rand(1)]
}

vezes: 10

moeda.sortear() while vezes -= 1

Esta é realmente uma das linguagens mais bonitas que eu já vi! Também é possível resgatar o código em js com o parâmetro -p:

$ coffee -p moeda.coffee 

Que imprime o seguinte Javascript gerado:

(function(){
  var moeda, rand, vezes;
  rand = function(x) {
    return Math.round(Math.random() * x);
  };
  moeda = {
    faces: ['cara', 'coroa'],
    sortear: function() {
      return puts(this.faces[rand(1)]);
    }
  };
  vezes = 10;
  while (vezes -= 1) {
    moeda.sortear();
  }
})();

Existem diversas oportunidades para explorar estas linguagens. Javascript deixou de ser apenas uma linguagem para browsers e está se tornando uma potência após o lançamento da engine v8 do google a qual é a base do Google Chrome.

Também é possível compilar e visualizar no terminal.

[jonatas] ~/projetos/coffee-script
$ coffee moeda.coffee 
coroa
coroa
coroa
coroa
cara
coroa
cara
cara
coroa

Outra coisa legal do Coffescript é utilizar o comparador is ao invés de utilizar o comparador de igualdade ==.

coffescript: "awesome"
print "nice" if coffescript is "awesome"

Share → Twitter Facebook Linkedin


Hello there, my name is Jônatas Davi Paganini and this is my personal blog.
I'm developer advocate at Timescale and I also have a few open source projects on github.

Check my talks or connect with me via linkedin / twitter / github / instagram / facebook / strava / meetup.