CTO「深町さん、Clojureの記事を書きませんか」
と井上さんに言われたのはもう4ヶ月も前のことです。WEB+DB PRESSの特集「Scala & ClojureではじめるJVM言語」をアリエルで書くことになり、僕にそのClojureの章を担当してもらえないかという話でした。
その頃僕は、SoftwareDesignで二度、Emacsの記事を書いていてとてもうんざりしていました。そして、「もうLispの原稿以外は書かない」と決めた矢先のことです。
Clojureと言えばLispじゃないですか。それなら書いてもいいかも…。いや…。
僕「何を書けばいいんですか?」
ここは慎重になるべきです。
CTO「まだ詳細は決まっていませんが、DSLかWeb系か」
LispでDSLと言えば……マクロ……!!!
僕「最近ClojureでL5というプレゼンツールを作ったんですが、その話なら」
CTO「じゃあそれでいいです。」
なんと雑誌でLispの、しかもマクロの記事が書けるなんて思いもしませんでした。さらにL5の宣伝ができるなら原稿を書くのも耐えられるというものです。
僕「どういった視点で書けばいいですか? たとえば、Lispは知っている前提でいいのか、lambdaは知っている前提でいいのか、マクロは知っている前提でいいのか」
@liris「ハードル高っ」
「Lispを知らないJavaプログラマ向けでお願いします」
もうこれは絶望です。JavaプログラマにLispを一から、しかもたったの8ページで説明するなんて無謀です。無謀過ぎます。
僕「……さすがに無名関数は知ってる前提で構いませんよね?」
「いや、できれば知らない前提で」
……。

Javaプログラマとは言えWEB+DB PRESSを購読しているような人たちが無名関数の存在を知らないとか考えづらいのですが、まあそういう要求であれば仕方がありません。そして必死に考えた末、ひとつの結論に行き着きました。
僕がLispを始めるきっかけとなった「ハッカーと画家」は、Lispの細々とした話は出てきません。一からLispの文法の説明をしたところでLispの魅力は伝わらない。重要なのは「Lispをやってみたい!」と思わせること。であればPaulのように、ひたすらLispはすごいんだぜという論調で書こう、と。
なのでClojureの”入門記事”というよりも”紹介記事”と言ったほうがいいかもしれません。
@liris「深町さん、Java嫌いそうですよね」
僕「え、でもdisり要素はいれてないはずですが…」
@liris「行間に漂ってますよ」
WEB+DB PRESS Vol.61は2月24日に出ます。行間に漂うLisp最強オーラを感じていただければ幸いです。





コメントする