CoffeeScript
[Wikipedia|▼Menu]

CoffeeScriptCoffeeScriptのロゴ
パラダイムマルチパラダイム: プロトタイプベース, 関数型言語, 命令型, スクリプト言語
設計者Jeremy Ashkenas
開発者Jeremy Ashkenas, et al.
最新リリース2.7.0/ 2022年4月23日 (2年前) (2022-04-23)
影響を受けた言語JavaScript, Python, Ruby, Haskell
影響を与えた言語JavaScript, LiveScript
プラットフォームクロスプラットフォーム
ライセンスMIT License
ウェブサイトcoffeescript.org
拡張子.coffee
テンプレートを表示

CoffeeScript はプログラミング言語のひとつである。コードはJavaScript のコードに変換される。

RubyPythonHaskell [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 では function キーワードが -> で置き換えられている。また、波括弧のかわりに、PythonHaskell のようにインデントで構造を表現する。さらに、丸括弧は曖昧性がない場合は省略できる。これらの特徴により、はじめに挙げたコードと同等の内容を 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 にコンパイルできる。

Node.js を併用する方法。Node.js をインストール後、
npm install --global coffeescript でインストールできる。CoffeeScript のコンパイラはバージョン 0.5 より、 CoffeeScript 自身で記述されているが、npm ではコンパイル済みのJavaScriptが配付されるため、Node.js のユーティリティとして使用することができる。しかし、コンパイラの中核部分は Node.js に依存しないため、ブラウザ上の JavaScript 実行環境で動作させることができるコンパイル済みモジュールも用意されている[11]

Apache Maven のプラグインである Coffee Maven Plugin がある。これは Java で書かれた JavaScript エンジンである Rhino を利用している。

CoffeeScript の公式サイトではメニューバーにある "Try CoffeeScript" をクリックすることで、ブラウザ上で CoffeeScript の入力、JavaScript へのコンパイル、実行を行うことができる。

Windows 向けのコンパイル済みの coffee.exe 。ただし、Node.js を使うことが推奨されている。

Debian/Ubuntu ではレポジトリに coffeescript がある。ただし、必ずしも最新版ではない。

<script type="text/coffeescript"> を使い、HTML の中に埋め込む方法。実運用環境では非推奨。

下記の方法で、coffee/*.coffee が js/*.js にコンパイルされる。coffee --compile --output js/ coffee/
統合開発環境

IntelliJ IDEA - リファクタリングを含めサポートしている

Visual Studio - 2012より標準でサポート。無償版のVisual Studio Express 2012 for Webでもサポートされる。有償のPro以上では拡張機能のWeb Essensials 2012を導入することでリアルタイムにJavaScriptへのコンパイル結果を表示しながら編集を行うことが可能。

脚注^ The Changelog. ⇒Episode 0.2.9 - CoffeeScript with Jeremy Ashkenas, Jul 23, 2010
^ Read Write Hack. ⇒Interview with Jeremy Ashkenas, Jan 7, 2011
^ Github. Popular Watched Repositories
^ Carson, Ryan. " ⇒New Rails-like Framework from 37signals for HTML5 Mobile Apps", Think Vitamin blog, Nov 8, 2010
^ Eich, Brendan. " ⇒Harmony of My Dreams"
^ Eich, Brendan. " ⇒My JSConf.US Presentation"
^ Github. 'initial commit of the mystery language'
^ “ ⇒Create Your Own Programming Language”. createyourproglang.com. 2011年8月22日閲覧。
^ Hacker News. ⇒CoffeeScript 1.0.0 announcement posted by Jeremy Ashkenas on Dec 24, 2010
^ Hacker News. ⇒Original CoffeeScript announcement posted by Jeremy Ashkenas on Dec 24, 2009
^ https://coffeescript.org/#2.4.1

Geoffrey Grosenbach; Jeremy Ashkenas, Michael Ficarra (2011年5月12日). “Meet CoffeeScript”. PeepCode. 2011年6月14日閲覧。
参考文献

.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}
Burnham, Trevor (2011年7月25日). ⇒CoffeeScript: Accelerated JavaScript Development (Report) (First ed.). Pragmatic Bookshelf. p. 136. ISBN 9781934356784


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:23 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef