2010年03月02日
『プログラミングClojure』
オーム社様から献本いただきました。ありがとうございます。
関数型言語の第一人者の川合史朗さんによる翻訳ということで、楽しみにしていた。
Clojureは、Java VM上で動作する関数型言語だ。JavaをαとかHotJavaとかの時代に遊んでいた頃からすると、昨今のJVMの新たな展開には驚くべきものがある。
Lisp系関数型言語の一派だけあり、Clojureでもやはりカッコは多いものの、それでも少なくするような書式にはなっているらしい。標準で用意されている関数名/マクロ名は英語文法的といえばそうなのかもしれないが、覚えにくかったり用途を想像しづらい名前が多いように感じる。to-array、into-array、interpose、some、macroexpand-1、trampoline、……。
Javaと密接にかかわっているだけに、ClojureからJavaオブジェクトのメンバフィールド/メソッドを見たり、リフレクションを使ったり、Javaオブジェクトを作ってメソッドを呼び出したりといったことがごく簡単にできる。関数型言語でJavaを包んだという雰囲気だろうか。JVM上でならどこでも動くわけで、組み込みなどの用途も(関数型言語が好きなら)あり得るというわけか。
紙面はシンプルなレイアウト——というと聞こえはいいが、コード系に全部同じ等幅書体を使っているため、関数名なのか、任意値なのか、単なる文字列なのかが区別が付けずらい(前述のようにClojureの関数名はどうも覚えにくいため、余計にそう感じる)。 日本語本として読むからには頭のコンテキストスイッチの切り替えをそれほどしなくて済むよう、任意値のところは日本語になっていてほしい、せめてイタリックなどを使ったほうがよかったのではないかと思う。文章自体はこなれていて読みやすいだけに残念なところだ。
全体を読み通した感想としては、「Clojureってなんか不気味……」という形容しがたいもの。でも、柔軟性の高い言語な上に、必要に応じてライブラリの揃っているJavaコードを呼べるのは便利そうではある。何とも言えぬ不気味な感じは拭い切れないものの、『情熱プログラマー』にもあるように別世界の知識を得るために飛び込んで使ってみることも必要かと思う今日この頃(Do it now!)。
メッセージ: Ready to post a comment.
プログラミングClojure![[hatena]](http://d.hatena.ne.jp/images/b_entry_de.gif)
![[g15.jp]](http://g15.jp/powered-g15.png)
![[RSS]](/d/rss10.png)