CoffeeScriptが登場する前
JavaScriptは広く普及している言語ですが、ソースコードは見苦しいものになりがちです。小さなプログラム程度なら構いませんが、大規模なプログラムを作るのはかなり骨が折れる作業です。冗長な記号や面倒な決まり文句などが積み重なると、読みづらくメンテナンスしづらいソースコードができてしまいます。
JavaScriptを使ってある程度の規模の開発を経験したプログラマーの多くはそのような不満を感じ、もう一度JavaScriptで大きな開発をしたいとはあまり思わないでしょう。しかし、フロントエンド開発者に選択の余地はありませんでした。多くのブラウザで共通して動くスクリプト言語はJavaScriptしかなかったからです。
GmailやGoogleマップなどをきっかけにAjaxが世間に認知されると、本格的なフロントエンド開発に使える言語としてJavaScriptが脚光を浴びました。さらにNode.jsの登場によってハイパフォーマンスなサーバサイドプログラムを手軽に作れる言語としても注目され、JavaScriptの活躍の場はますます広がっています。その一方、文法などが性に合わず使いたがらないプログラマーも少なからずいました。
CoffeeScriptの登場と広まり
DocumentCloudというオンラインツールの開発者であるJeremy Ashkenas氏は、JavaScriptでの大規模開発経験から新しい言語が必要だと考え、CoffeeScriptを作りました。Node.jsの普及によってJavaScriptを使うプログラマーが増えていた時期とも重なり、新しい物好きのプログラマーをはじめとしてCoffeeScriptは受け入れられていきました。
CoffeeScriptが開発者に受け入れられやすい大きな理由は2つあると考えられます。1つは、JavaScriptの良い所は残したまま、できの悪い所がうまく補われ、より洗練された文法になっているという点。もう1つは、コンパイル結果がただのJavaScriptになるという点です。JavaScriptにコンパイルできるということは、幅広く需要のあるJavaScript開発のあらゆる部分をCoffeeScriptが代替できることになります。文法がRubyやPythonに似ており、またどのようなJavaScriptプログラムを作るのにもCoffeeScriptを代わりに使うことができるため、開発者は障壁をほとんど感じることなく導入できました。
またRubyプログラマーからの人気が高く、Ruby on Rails 3.1ではアセットパイプライン(※注1)の仕組みの一部としてCoffeeScriptが標準でサポートされました。
JavaScriptの文法を嫌っていたプログラマーの中にもCoffeeScriptは楽しいと感じる人がいます。そして大規模なプログラムを作ろうとする開発者を中心にCoffeeScriptは受け入れられつつあります。JavaScriptが好きな人はJavaScriptを使い、CoffeeScriptの方が好きな人はCoffeeScriptを使いながら、同じ目的を達成できるようになりました。
Ruby on Rails 3.1で導入された、JavaScriptやCSSのファイルをクライアントに送る前に自動的に結合・縮小する機能。ソースファイルをCoffeeScriptで書くと、自動的にJavaScriptにコンパイルされた状態でクライアントに送られる。