CoffeeScript
CoffeeScript はプログラミング言語のひとつである。コードはJavaScript のコードに変換される。 Ruby や Python、Haskell [1] から影響を受けたシンタックスシュガーの導入により、JavaScript に比べ簡潔さと可読性を向上させたほか、配列内包 (Array comprehensions) やパターンマッチングといった機能を追加している。 CoffeeScript により、パフォーマンスを下げることなく、より短いコードでプログラムを記述することができる (JavaScript に比べ 1/3 程度の行数が削減できる)[2]。 2011年3月16日から一時、CoffeeScript は GitHub でもっともウォッチされているプロジェクトであった[3]。 この言語は Ruby コミュニティによく受け入れられており、(Ruby on Rails 開発者のデビッド・ハイネマイヤー・ハンソンが所属する) 37signalsでは、実際に製品の開発に使われている[4]。また Ruby on Rails 3.1以降 でも正式にサポートされている。 ブレンダン・アイクは、氏が考える「JavaScript の未来」に影響を与えたものとして CoffeeScript に言及している[5][6]。 歴史2009年12月13日、Jeremy Ashkenas は、この言語を「謎の言語を初回コミット(initial commit of the mystery language)」というコメントとともに Git リポジトリにコミットした[7]。CoffeeScript は電子書籍である "Create Your Own Programming Language" [8] を読んで開発された。このときのコンパイラは Ruby で書かれている。同年12月24日には初めてタグとドキュメントのついた、バージョン 0.1.0 がリリースされた。2010年2月21日には、コンパイラを純粋な CoffeeScript で記述した、バージョン 0.5 がコミットされる。この頃にはこのプロジェクトは GitHub を利用する他の開発者の興味を引き、1日に300回ほどプロジェクトページが参照された。 2010年12月24日、Askenas は、安定版であるバージョン 1.0.0 のリリースを、Hacker News で発表した[9]。 なお、Hacker News は、最初のバージョンを発表した場でもある[10]。 2017年9月18日、コンパイル後の出力を ES2015+ 構文に変更した2.0.0 がリリースされた。ES2015+ の実装に合わせて、1.x とは仕様の一部が変更及び追加されており、JSXや型アノテーションコメント等の機能が追加されている。また、Babel と連携してES5へのトランスパイルを同時に行うことができるようになった。 例下記は jQuery を使った典型的な JavaScript のコード例である。 $(function() {
// 初期化のためのコード
});
CoffeeScript では $ ->
# 初期化のためのコード
jQuery などではクロージャを多用するが、CoffeeScript ではクロージャが簡潔に書けるようになっている。これは /info の内容を取ってきて、#info にそれを入れる場合の jQuery を使ったJavaScript の例である。 $.get("/info", function(txt) { $("#info").text("info = " + txt) }, "text")
CoffeeScript でも以下のように1行で書け、75文字が67文字へと1/10程度文字数が減っている。 $.get("/info", ((txt) -> $("#info").text("info = #{txt}")), "text")
コンパイル以下の方法で CoffeeScript から JavaScript にコンパイルできる。
下記の方法で、coffee/*.coffee が js/*.js にコンパイルされる。 coffee --compile --output js/ coffee/
統合開発環境
脚注
Geoffrey Grosenbach; Jeremy Ashkenas, Michael Ficarra (May 12 2011). “Meet CoffeeScript”. PeepCode. 14 June 2011閲覧。 参考文献
外部リンク
|