Clojureでやろうとしてました話。

 Clojure - home

 昨年の終わりくらいから今年にかけて数ヶ月ですけども、ちょっとだけClojureに取り組んでいたりしました。Clojureは所謂Java VM言語で、かつ関数型言語という事であります。
 Java VM言語と言えばScalaとかが人気で、以前私も一冊だけ本を読んで取り組んだ事もありましたね。難し過ぎてついて行けませんですけども。

 Clojureを使ってみようと思ったのは、Java製の某Frameworkのクローンを作ろうというお誘いに乗ろうとしたのが始まりでありました。Java言語で開発されたものを移植ではなくてクローンするわけですから普通にJavaを使えば良いのですが、それだけではなくて余計にもう一つ実りが欲しい。何かこうもう一つインパクトが欲しい。
 最終的にJavaで書かれたアプリケーションがJava VM上で同じ様に動けば良いので、「動かすモノの言語はJava VM言語であれば問題ないはずだ、そうだ、これだ」と悪のりが過ぎましてClojureでとなりました。前述のScalaとかGroovyとかも一応検討しましたよ、PとかRのヤツは知りませんけど。

 Clojureは最近開発された言語でありますから、今風な感じもキャッチアップしてあります。それでいて関数型言語でありますから、安定した指向を持つとも言えます。かつ、複雑すぎない大げさにしない無茶しない適当な頃合いでシンプルにまとまっていて凄く凄く好印象を持ちました。Javaの呼び出しも単純で直接的だし、Javaから呼び出される為にクラスファイルとして生成しておく事もできるし。
 Java VMという資産は活かしたいけれども、Javaではなくて新しい何かをお望みの層には有効な選択肢の一つになり得ると思いましたよ。最終的にはLisperになりたいと言い続けている私にとっては入門の第一歩的にもいい感じ。

 まぁ、結局のところ、今回の某プロジェクトには採用するのを断念してしまったのだけどね。