Clojure 本家の Getting Started のザックリとした邦訳です。
セットアップ
Clojure は Google Code にてホストされています。ソースコードのリポジトリは GitHub にあります。.NET向けのランタイムの clojure-clr もあります。開発者の交流は Assembla にて行われています。
フィードバックや議論は Clojure Google Group で行われています。ぜひ参加してみましょう。
コミュニティにて提供された補足資料や Tips は Wiki にあります。あなたの専門知識も遠慮なく提供してください。
Clojure は一つの zipファイルで提供されます。zipファイルには clojure.jar ファイル、readme ファイル、 EPL ライセンスファイルと src ディレクトリ中のソースコードが含まれます。Java1.5 以上が必要です。
クイックスタート
ダウンロードサイトから入手した clojure.zip を解凍したディレクトリにて以下のコマンドを実行します。
java -cp clojure.jar clojure.main
REPL(read-eval-print loop)が立ち上がります。Clojure の大部分は、ソースディレクトリにある core.clj という Clojure ファイル 自身で定義されています。このファイルは clojure.jar から Clojure を起動した際に自動的にロードされます。クラスパス中に user.clj というファイルがある場合には、これも同様にロードされます。これにより Clojur の起動時にコードへの効果を付与することができます。
core.clj がロードされれば、ここに記載する言語の全てを試すことができます。試してみましょう。
user=> (+ 1 2 3) 6 user=> (. javax.swing.JOptionPane (showMessageDialog nil "Hello World"))
REPL は基本的な編集機能しかありません。JLine ConsoleRunner を使用することでより効率的な編集作業ができるようになります。
java -cp jline-0.9.95.jar:clojure.jar jline.ConsoleRunner clojure.main
JLine を合わせて使うことで、REPL 上にて、左右のカーソルキーでの移動、上下キーでの履歴操作が行えるようになります。
Clojure コードの編集
Clojure コードの編集は括弧の対応表現ができるエディタを使うことでとても楽になります。Netbeans, Eclipse, IntelliJ Idea, Emacs, Vim その他多くのエディタに関する最新の情報は Clojure Assembla のGetting Started ページにあります。また、Sean Devlin によるいくつかの Clojure 編集モードのインストール方法が screencasts にて公開されています。みなさんありがとう!
デバッグ
Clojure code のデバッグは、JSwat にて行うことができました。正確には Mac OS X 上の JSwat 3.16 を利用しました。 入力制限はありますが、Clojure のインスタンスを JSwat にアタッチするのは良い考えです。リモートデバッグを利用するためには、Java の起動オプションを指定する必要があります。
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n ...
Clojure の起動時に以下のような出力が得られます。
Listening for transport dt_socket at address: 63657 Clojure user=>
JSwat にてアタッチを選択し、Host 名に localhost、ポート番号にソケットアドレスを入力します。JSwat にてロードした Clojure ファイルを開き、Clojure のソースにブレークポイントを設定できます。ブレークポイント、コールスタック、ローカル変数ビューとステップ実行(Clojure code と Java の双方の行き来)は全て動きます。Emacs 上にて Inferior Lisp Mode で起動した Clojure へのアタッチも可能です。なにより良いのは、cljファイルを編集してリロードしても、JSwat はファイルの変更を検知するので JSwat や Clojure の再起動無しにデバッグ作業を続けられる点です。
プロファイリング
Clojure code のプロファイリングはどのような Java プロファイラでの可能なはずです。実際 YourKit Java プロファイラで可能でした。YourKit はそのフル機能の Java プロファイラでオープンソースプロジェクトを支援してくれています。YourKit, LLC は、Java と .NET のための革新的でインテリジェンスなプロファイリングツールの作成者です。YourKit の主要なソフトウェァプロダクトを見てみてください。
YourKit Java Profiler
YourKit .NET Profiler