CoffeeScriptを使ってみよう!環境構築編

どうも、LesCochons最年少メンバーのryogです。
最近自分の中から若さを感じなくなってきたので、ちょっと年齢を強調してみました。


LesCochonsでは「活動内容のまとめ」以外にも、情報を発信していきたいと思っています。
話し合いの末、週に1回はメンバーの誰かが日記を書いていく事が決まりました。
その記念すべき第1回はMr_K_Oが書いたこの記事です。
『エリック・エバンスのドメイン駆動設計』読書メモー序文から第1章 - ぶたのわるつ


私は技術が好きなので、技術の紹介を中心に日記を書くことにしました。
今回紹介するのは『CoffeeScript』です。
ではでは、早速この素敵な言語を紹介していきましょう!

CoffeeScriptとは

CoffeeScript is a little language that compiles into JavaScript.

http://jashkenas.github.com/coffee-script/

CoffeeScript は、JavaScriptコンパイルできる簡易言語です。
更にCoffeeScriptRubyPythonのように簡単に記述することが出来ます。
JavaScriptソースコードとして出力出来るので、既存のプロジェクトにも導入しやすいです。

環境構築

早速ですが環境構築を始めてみましょう。
私が愛用しているのはMacbook Air(Late 2010)です。
Macユーザ以外の方には参考にならないかもしれませんが、ご容赦下さい。

インストール

まずはnode.jsをインストールします。
私はHomebrewを使っているので、以下のコマンドで一発。
Homebrewのインストールは僕の個人ブログを参考にしてください。
http://d.hatena.ne.jp/decult/20110128/1296181723

$ brew install node
$ node -v
v0.4.7

node.jsはnvmやnaveというツールでバージョン管理をするそうです。
今回はCoffeeScriptを使うことが目的の為、これらはインストールしません。


次にnpmをインストールします。
npm(Node Package Manager)はnode.jsのパッケージを管理します。

$ curl http://npmjs.org/install.sh | sh
$ npm -v
1.0.6


いよいよCoffeeScriptのインストールです。
といっても、npmのコマンド一発で終わります。

$ npm install coffee-script


CoffeeScriptのバージョンを確認してみましょう。

$ coffee -v
zsh: command not found: coffee

何…だと…?


上記手順で動くと紹介しているサイトが多いのですが、コマンドが呼び出せません。
というわけで、~/.zshrc(私はzsh派)にパスを設定します。

export PATH=$PATH:$HOME/node_modules/.bin

※2010/05/10 追記
以下のツッコミを頂いたので、設定しなおしましたw

Mac ユーザーなら environment.plist をググるよろし。 :-)

https://twitter.com/Tommy1969/status/67647491222413312


もう一度CoffeeScriptのバージョンを確認してみましょう。

$ coffee -v
CoffeeScript version 1.1.0

無事にインストールが完了しました。

動作確認

それではお決まりのHello World!をやってみましょう。
coffeeコマンドからインタプリタを起動して、コードを打ち込みます。

$ coffee
coffee> console.log 'Hello World'
Hello World

バッチリです。


折角なんでJavaScripのコードに変換してみましょう。
hello.coffeeというファイルを作成します。

$ cat -n hello.coffee
     1  hello = ->
     2    console.log("Hello World!")
     3  hello()


次にcoffeeコマンドでJavaScriptコンパイルします。

$ coffee -c hello.coffee


同じディレクトリにhello.jsが生成されます。

$ cat -n hello.js
     1	(function() {
     2	  var hello;
     3	  hello = function() {
     4	    return console.log("Hello World!");
     5	  };
     6	  hello();
     7	}).call(this);


hello.jsをnode.jsで実行してみます。

$ node hello.js
Hello World!


勿論JavaScriptに変換しないでも直接実行できます。

$ coffee hello.coffee
Hello World!

素晴らしいですね!


さて、これで環境構築は終了です。
次回はCoffeeScriptを使いながら構文の説明などを出来たらと思います。