CoffeeScript é uma linguagem de programação que transcompila para JavaScript. A linguagem adiciona elementos de sintaxe inspirados no Ruby, Python e HaskellThe Changelog. Episode 0.2.9 - CoffeeScript with Jeremy Ashkenas 23 de Julho de 2010 para aprimorar a leitura e concisão do JavaScript, adicionando características sofisticadas como compreensão de lista e Casamento de padrões. CoffeeScript compila em JavaScript e os programas podem ser escritos com menos código, tipicamente com 1/3 a menos de linhas, sem efeito na performance.Read Write Hack. Interview with Jeremy Ashkenas 7 de Janeiro de 2011 Desde 16 de Março de 2011, CoffeeScript está na lista de projetos mais observados do GitHubGithub. Popular Watched Repositories e desde 29 de Agosto de 2012 é a décima primeira linguagem mais popular do GitHub.GitHub. CoffeeScript

A linguagem tem bastante seguidores na comunidade Ruby. CoffeeScript passou a ser suportado na versão 3.1 do Ruby on RailsPeek, Joshua. Tweet by Rails Core Team Member 13 de Abril de 2011 Adicionalmente, Brendan Eich fez referencia ao CoffeeScript como uma influência nas suas ideias para o futuro do JavaScript.Eich, Brendan. "Harmony of My Dreams"Eich, Brendan. "My JSConf.US Presentation"

História Em 13 de Dezembro de 2009, Jeremy Ashkenas fez o primeiro commit Git do CoffeeScript com o comentário: "initial commit of the mystery language."Github. 'initial commit of the mystery language' O compilador foi escrito em Ruby. Em 24 de Dezembro, foi lançada a primeira versão documentada, 0.1.0. Em 21 de Fevereiro de 2010, ele commitou a versão 0.5, que substituía o compilador em Ruby por um escrito puramente em CoffeeScript. Até aquele momento o projeto havia atraído diversos contribuidores no GitHub, e recebia mais de 300 acessos por dia.

Em 24 de dezembro de 2010, Ashkenas anunciou o lançamento da versão estável 1.0.0 para Hacker News, o site onde o projeto foi anunciado pela primeira vez.Hacker News. CoffeeScript 1.0.0 announcement por Jeremy Ashkenas em 24 de Dezembro de 2010Hacker News. Anúncio original do Coffeescript por Jeremy Ashkenas em 24 de Dezembro de 2009

Sintaxe Muitas declarações de JavaScript são usáveis como expressões em CoffeeScript, por exemplo if, switch e for. Estas estruturas de controles também possuem versões pós-fixadas.

Um princípio geral é que muitos parenteses e chaves desnecessários podem ser descartados, através do uso da indentação que denota blocos de código, chamadas de funções são explicitas (os parenteses podem ser descartados), literais de objetos acabam sendo detectados automaticamente.

Exemplos Uma rotina comum em JavaScript usando a biblioteca jQuery é:

$(document).ready(function () { // Código aqui });

Ou apenas:

$(function () { // Código aqui });

Em CoffeeScript, a palavra-chave function é substituida pelo simbolo ->, e a indentação é usada no lugar das chaves, como em outras linguagens como Python e Haskell. Também, geralmente é possível omitir os parenteses. Sendo assim, o código em CoffeeScript equivalente a rotina acima é

$(document).ready -> # Código aqui

Ou:

($ document).ready -> # Código aqui

Ou apenas:

$ -> # Código aqui

Existe interpolação de Strings entre aspas duplas:

$ -> i = 10 alert "usando interpolação para mostrar que i = #{i}"

Existem ranges:

for i in [3..20] alert i

Compilação O compilador de CoffeeScript foi escrito em CoffeeScript (bootstraping) desde a versão 0.5 e está disponível como módulo Node.js; porém, o núcleo do compilador não utiliza o Node.js e pode ser executado em qualquer ambiente JavaScript. Uma alternativa para o módulo Node.js é o Plugin Coffee Maven, um plugin para o popular Apache Maven. O plugin faz uso do motor JavaScript Rhino escrito em Java.

O site oficial em CoffeeScript.org possuí um botão "Try CoffeeScript" na barra de menu; clicando abre uma janela onde o usuário pode inserir CoffeeScript, ver a saída JavaScript e executar diretamente do navegador. O js2coffee disponibiliza tradução bi-direcional.

Problemas conhecidos CoffeeScript é muito sensível a espaços em branco O compilador realiza diagnósticos bem rudimentares em caso de erros Regras de prioridade não são sempre intuitivas causando sub-expressões terminando em lugares não esperados

Adesão Em 13 de setembro de 2012, Dropbox anunciou que seu código havia sido reescrito de JavaScript para CoffeeScript.https://tech.dropbox.com/?p=361 Dropbox dives into CoffeeScript em 13 de Setembro de 2012 Entretanto, o código foi reescrito novamente para TypeScript em 2017.

Ver também Dart (linguagem de programação) Kotlin TypeScript

Ligações externas

Categoria:JavaScript Categoria:Linguagens de script