Movatterモバイル変換


[0]ホーム

URL:


Saltar para o conteúdo
Wikipédia
Busca

CoffeeScript

Origem: Wikipédia, a enciclopédia livre.
CoffeeScript
ParadigmaMultiparadigma:imperativa,baseada em protótipos,funcional,script
Surgido em2009
Últimaversão2.3.1(22 de maio de2018)
Criado porJeremy Ashkenas
Estilo de tipagemDinâmica, fraca
Influenciada porJavaScript,Python,Ruby,Haskell,YAML,Perl
InfluenciouDart
LicençaLicença MIT
Página oficialCoffeeScript.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]

História

[editar |editar código-fonte]

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]

Sintaxe

[editar |editar código-fonte]

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.

Exemplos

[editar |editar código-fonte]

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

Compilação

[editar |editar código-fonte]

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.

Problemas conhecidos

[editar |editar código-fonte]
  • 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

[editar |editar código-fonte]

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]

Ver também

[editar |editar código-fonte]

Referências

  1. The Changelog.Episode 0.2.9 - CoffeeScript with Jeremy AshkenasArquivado em 5 de maio de 2012, noWayback Machine. 23 de Julho de 2010
  2. Read Write Hack.Interview with Jeremy AshkenasArquivado em 19 de maio de 2012, noWayback Machine. 7 de Janeiro de 2011
  3. Github.Popular Watched RepositoriesArquivado em 19 de abril de 2010, noWayback Machine.
  4. GitHub.CoffeeScriptArquivado em 12 de abril de 2010, noWayback Machine.
  5. Peek, Joshua.Tweet by Rails Core Team Member 13 de Abril de 2011
  6. Eich, Brendan. "Harmony of My Dreams"
  7. Eich, Brendan. "My JSConf.US Presentation"
  8. Github.'initial commit of the mystery language'
  9. Hacker News.CoffeeScript 1.0.0 announcement por Jeremy Ashkenas em 24 de Dezembro de 2010
  10. Hacker News.Anúncio original do Coffeescript por Jeremy Ashkenas em 24 de Dezembro de 2009
  11. «Cópia arquivada». Consultado em 12 de outubro de 2011. Arquivado dooriginal em 27 de dezembro de 2009 
  12. «jscoffee» 
  13. https://tech.dropbox.com/?p=361Dropbox dives into CoffeeScript em 13 de Setembro de 2012
  14. Goldstein, David (13 de maio de 2020).«The Great CoffeeScript to Typescript Migration of 2017» (em inglês).Dropbox. Consultado em 6 de agosto de 2020 

Ligações externas

[editar |editar código-fonte]
Ícone de esboçoEste artigo sobreprogramação de computadores é umesboço. Você pode ajudar a Wikipédiaexpandindo-o.
Obtida de "https://pt.wikipedia.org/w/index.php?title=CoffeeScript&oldid=66282624"
Categorias:
Categorias ocultas:

[8]ページ先頭

©2009-2025 Movatter.jp