プログラミング言語Clojureとは?

Clojureは、Rich Hickey氏が開発したJava VM上で動作する比較的新しいLisp系のプログラミング言語だ。一口にLispといってもCommon LispやSchemeなどさまざまな方言があるが、ClojureもこれらのLisp方言のひとつつだ。

図1 ClojureのWebサイト

Clojureは過去のLisp言語を見直し、大胆な再設計が行われているほか、Java VM上で動作することから既存のJavaライブラリを活用できるなど、実用性も充分兼ね備えた先進的なLisp処理系となっている。

今回はEclipse上でのClojureプログラミングを支援するプラグインであるCounterclockwiseを紹介する。

Counterclockwiseを使ってみよう

前述の通り、CounterclockwiseはEclipse上でClojureプログラミングを行うためのプラグインで、もともとはclojure-devという名称で開発されていたものだ。Counterclockwiseはこちらの更新サイトからインストールすることができる。

Counterclockwiseは以下のような機能を提供している。

Clojureプロジェクト、Clojureファイルの作成

新規作成ウィザードからClojureプロジェクト、Clojureファイルを作成することができる。ClojureプロジェクトはほぼJavaプロジェクトと同様で、クラスパス等の設定も通常のJavaプロジェクトと同様に行うことが可能だ。

図2 新規作成ウィザード

強調表示、入力補完機能を備えたClojureエディタ

図3 Clojureエディタ

エディタでは対応するカッコがわかりやすいよう色分けして表示してくれる。また、F3で関数の定義部分にジャンプするなどの機能も利用可能だ。ただし、入力補完については動作が非常に重く、数十秒応答が返ってこなくなってしまうことがしばしばあった。このあたりは今後の改善に期待したいところだ。

コンソールビューでのREPLの実行

[実行]メニューから[Clojure REPL]を選択することでエディタで開いているClojureスクリプトをREPL(インタラクティブClojureコードを実行可能なシェル)で実行することができる。コンソールビューで実行したスクリプトがロードされた状態でREPLが起動するので、任意のClojureコードを入力して動作を確認することができる。同様に[デバッグ]メニューから起動することでデバッグを行うことも可能だ。

図4 デバッグ

その他のClojure開発環境

Counterclockwise以外にもClojureには以下のような開発環境が存在する。Eclipse以外のIDEやエディタを使用している場合はこれらの開発環境を利用するといいだろう。

まとめ

CounterclockwiseはClojureの開発環境としてはまだ荒削りな面が否めないため、Clojureのコードを記述するだけならEmacsなどのエディタを利用したほうが効率がよいかもしれない。しかしJavaと組み合わせて利用する場合にはEclipse上でJava/Clojure両方のコーディングができるメリットが活きてくるだろう。

Clojureは先進的で実用的なLisp処理系だ。Lispというと、Emacsなどをカスタマイズするためのアプリケーション組み込み言語として触れる機会が多いのではないかと思うが、Clojureは豊富なJavaライブラリを利用することができるということもあり、充分に汎用的なプログラミング言語として利用可能だ。

一般的なプログラミング言語と比べるととっつきにくい面があるのは事実だが、Lispのエッセンスを学ぶことでJavaや他の言語でのプログラミングに活かせる部分も多い。是非Clojureを通してLispの世界に触れてみてほしい。