Clojureの楽しい入門書
いやあClojure楽しす。 "Clojure for The Brave and True" (紙本)を購入して読んでいるのだが、この本はすばらしいね。
ノリが軽いが、内容はよく整理されていて、構成がしっかりしている。 あとから目次頼りにリファレンスとしても使える。著者の奥さんのイラストも魅力的だしな。 直近は、Macroの仕組み&書き方の章を読み終えたばかりだが、Lispのエレガントなところが実に良く理解できた。
自分が他人に勧めるとしたら、まずは「7つの言語7つの世界」でClojureを試してみて、面白いと思ったなら、次はこの本だな。 オンラインで無料で公開しているのが信じられないくらいだ。(Learn to Program the World's Most Bodacious Language with Clojure for the Brave and True)
著者はClojureへの想いがよほど強いのか、どしどしeverybodyに使った欲しいからかな。
そして、この本を読んで良かったこと。 なんといっても、いまいちClojure (Lisp)のプログラミングをどう手を付けたらいいか分からなかったのが、この人のプログラムの組み方で要領がつかめたことだな。
「そうか、まずはデータ構造を考えればいいのか。特に難しく考えることはないんだな。」と。
プログラミングの基本は、結局、 UNIX哲学の”パイク: Cプログラミングに関する覚え書き”の
ルール5: データはすべてを決定づける。もし、正しいデータ構造を選び、ものごとをうまく構成すれば、アルゴリズムはほとんどいつも自明のものになるだろう。プログラミングの中心は、アルゴリズムではなくデータ構造にある。
に尽きるかもしれん。
この本の中でも、以下の格言を引用している。(参照:"Chapter 3: Do Things")
It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures. —Alan Perlis
Alan Perlisはその時代の何を指して言っているの分からんが、Clojureの文脈で語るなら "10 functions on 10 data structures"の方はOOPを指してるだろうなと。
巷のブログなどを読むと、LISPerの人はよくOOPのだめな点と対比してLispの素晴らしさを強調すること多い。 そして、それが納得できて実に面白い。 つまるところOOPのいちいち無駄なところがどうしても我慢ならん人はClojureが楽しいと思う。