CoffeeScript CoffeeScriptの概要

CoffeeScript

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/24 01:11 UTC 版)

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

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")

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


「CoffeeScript」の続きの解説一覧



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「CoffeeScript」の関連用語

CoffeeScriptのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CoffeeScriptのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのCoffeeScript (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS