CoffeeScript

CoffeeScript是一套JavaScript的轉譯語言。受到Ruby、Python與Haskell等語言的啟發The Changelog. Episode 0.2.9 - CoffeeScript with Jeremy Ashkenas , July 23, 2010，CoffeeScript增強了JavaScript的簡潔性與可讀性。此外，CoffeeScript也新增了更複雜的功能，例如列表推导式、并行赋值等。一般來說，CoffeeScript可以在不影響執行效能的情況下，縮短約三分之一的程式碼長度Read Write Hack. Interview with Jeremy Ashkenas , Jan 7, 2011。

CoffeeScript支持包含在了Ruby on Rails版本3.1和Play Framework之中。在2011年，JavaScript主要創造者布蘭登·艾克声称CoffeeScript影响了他对JavaScript未来的思考Eich, Brendan. "Harmony of My Dreams "Eich, Brendan. "My JSConf.US Presentation "。

 歷史 
2009年12月3日，在Git上對CoffeeScript做出了第一筆提交:「神秘語言最初的提交。（initial commit of the mystery language.）」Github.  'initial commit of the mystery language' 當時的編譯器由Ruby語言所寫成。在同年12月24日，Ashkenas做出了第一個上標籤與歸檔的版本－0.1.0。2010年2月21日，他釋出了0.5版，此版本將原先由Ruby撰寫的編譯器改寫為純CoffeeScript撰寫。當時吸引了GitHub上的許多貢獻者，每日約有300人次造訪該專案的頁面。2010年12月24日，Askenas釋出了1.0.0穩定版本，並在Hacker News上發表。Hacker News也是當時此專案第一次發表的網站。Hacker News. CoffeeScript 1.0.0 announcement  posted by Jeremy Ashkenas on Dec 24, 2010Hacker News. Original CoffeeScript announcement  posted by Jeremy Ashkenas on Dec 24, 2009

 語法 
許多JavaScript的陳述句皆可在CoffeeScript中視為表達式。例如，if, switch與for等。這些控制陳述句也有後綴的版本。

CoffeeScript的一般原則，是可以省略許多不必要的括號和大括號，可以使用縮排來取代。可以以隱喻方式呼叫函數（在JavaScript中呼叫函數所需的括號可以被省略），物件文字通常可以自動偵測。

 範例 
一個使用jQuery的普通JavaScript程式碼如下：

$(document).ready(function() {
  // 這裡是初始化的程式碼
});

或可以更省略：

$(function() {
  // 這裡是初始化的程式碼
});

在CoffeeScript裡，function關鍵字可用->符號來取代，結尾的分號也可用縮排來表示，如同Python、Haskell等縮排語言的越位规则一樣。此外，大括號通常也可以省略。因此上述的程式碼在CoffeeScript中可寫成如下的形式。

$(document).ready ->
  # 這裡是初始化的程式碼

或

($ document).ready ->
  # 這裡是初始化的程式碼

又或者

$ ->
  # 這裡是初始化的程式碼

 編譯 
CoffeeScript的編譯器在0.5版本之後由CoffeeScript本身寫成，為Node.js裡的一個工具程式。但核心程式碼並不依賴Node.js，且可直接在任何支援JavaScript的環境中使用。此外，可以使用Coffee Maven Plugin作為Node.js之外的替代方案，這是Apache Maven建置工具的外掛，由Rhino JavaScript引擎並以Java語言寫成。

在CoffeeScript.org官方網站的選單上有「Try CoffeeScript」按鈕，可以讓使用者直接輸入CoffeeScript程式碼並直接在瀏覽器上編譯成JavaScript。另外一個網站「jscoffee」提供雙向轉譯的功能。

 引用資料 

 外部連結 

 中国官网
 GitHub專案
教學文件
 中文文档
 CoffeeScript Cookbook
 The Little Book on CoffeeScript（簡體中文版）
 Smooth CoffeeScript

Category:JavaScript
Category:基于原型的编程语言
Category:使用MIT许可证的软件
Category:2009年建立的程式語言