CoffeeScript | |
---|---|
![]() | |
Paradigma | Multiparadigma:imperativa,baseada em protótipos,funcional,script |
Surgido em | 2009 |
Últimaversão | 2.3.1(22 de maio de2018) |
Criado por | Jeremy Ashkenas |
Estilo de tipagem | Dinâmica, fraca |
Influenciada por | JavaScript,Python,Ruby,Haskell,YAML,Perl |
Influenciou | Dart |
Licença | Licença MIT |
Página oficial | CoffeeScript.org |
CoffeeScript é uma linguagem de programação quetranscompila paraJavaScript. A linguagem adiciona elementos de sintaxe inspirados noRuby,Python eHaskell[1] para aprimorar a leitura e concisão do JavaScript, adicionando características sofisticadas comocompreensão de lista eCasamento 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.[2] Desde 16 de Março de 2011, CoffeeScript está na lista de projetos mais observados doGitHub[3] e desde 29 de Agosto de 2012 é a décima primeira linguagem mais popular do GitHub.[4]
A linguagem tem bastante seguidores na comunidade Ruby. CoffeeScript passou a ser suportado na versão 3.1 doRuby on Rails[5] Adicionalmente,Brendan Eich fez referencia ao CoffeeScript como uma influência nas suas ideias para o futuro do JavaScript.[6][7]
Em 13 de Dezembro de 2009,Jeremy Ashkenas fez o primeiro commitGit do CoffeeScript com o comentário: "initial commit of the mystery language."[8] 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 noGitHub, 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 paraHacker News, o site onde o projeto foi anunciado pela primeira vez.[9][10]
Muitas declarações de JavaScript são usáveis como expressões em CoffeeScript, por exemploif
,switch
efor
. 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 daindentaçã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.
Uma rotina comum em JavaScript usando a bibliotecajQuery é:
$(document).ready(function(){// Código aqui});
Ou apenas:
$(function(){// Código aqui});
Em CoffeeScript, a palavra-chavefunction
é substituida pelo simbolo->
, e a indentação é usada no lugar das chaves, como em outras linguagens comoPython eHaskell. 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=10alert"usando interpolação para mostrar que i =#{i}"
Existem ranges:
foriin[3..20]alerti
O compilador de CoffeeScript foi escrito em CoffeeScript (bootstraping) desde a versão 0.5 e está disponível como móduloNode.js; porém, o núcleo do compilador não utiliza o Node.js e pode ser executado em qualquer ambienteJavaScript.[11] Uma alternativa para o módulo Node.js é oPlugin Coffee Maven, umplugin para o popularApache Maven. Oplugin faz uso do motor JavaScriptRhino escrito emJava.
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[12] disponibiliza tradução bi-direcional.
Em 13 de setembro de 2012,Dropbox anunciou que seu código havia sido reescrito deJavaScript para CoffeeScript.[13] Entretanto, o código foi reescrito novamente paraTypeScript em 2017.[14]
![]() | Este artigo sobreprogramação de computadores é umesboço. Você pode ajudar a Wikipédiaexpandindo-o. |