八発白中

技術ブログ、改め雑記

語らるるべき日本のCommon Lisper達

Lispのエッセイのようなものを継続的にブログに載せていこうとしたのはいいのだが、立て続けに2つ載せたきりなかなか続かない。これはその3つ目のものである。

今回は「人」に焦点をあてて、Common Lispコミュニティで現状活発に活動している人を紹介する。挙げてみると、どうしてもそれなりに親交のある人に偏っている。またいずれ時をおいて第二弾でも書くかもしれない。

佐野匡俊

佐野さんは僕がLispを始めた頃からの知り合いである。最初に会って話をしたのは2010年に米国のリノというカジノ街で開催されたInternational Lisp Conferenceで、その後も国内外のカンファレンスでよく顔を合わせた。

今回紹介する中では年長で、100kgを超える縦にも横にも大きな体つきをしている。「待ち合わせは佐野さん前」と言われるくらい、人混みの中であろうと遠くから見てすぐ分かる。

だが、兄貴分という柄ではない。自信のなさそうなぼんやりした話し方。積極的入社Common Lispの良さを広めていくわけでもない。自分はCommon Lispのことが好きだけれど周りはどう思うか知らない、という態度で佇んでいる。どうも、みんなで公園で遊んでいたはずが、いつの間にか自分だけがそのまま取り残されてしまった子供のような様子である。

かと言って自分の主義主張が無いわけではなさそうだ。

2010年の10月、当時の僕の雇い主が主催の社外勉強会で「Lisp脳」というテーマでやることになった。佐野さんも何か話してもらえませんかね、と講演を打診すると、即答はしづらいと言いながらも引き受けてくれた。

佐野さんが登壇し、Common Lispの魅力を語る下りでこんな話をしていたのを覚えている。

Common Lispには (他の言語と比して) まだまだ足りない部分が多いです。新雪を踏みたい人には、まだいくらでもあります。ぜひ一緒にやりましょう。

彼はよくこのような文学的な表現をする。

当の本人はそんな話をしたことも覚えていまい。が、これを聞いた僕が、その後ウェブ周辺の新雪を踏み荒らしていったというのはご存知の通りである。

自分のブログは持っていないのでウェブで自分を語るようなことは無いが、話せば広い視野と気の長い展望を持っている面白い人物である。

実践Common Lispの訳者であることでこれまでも多少知られていたが、最近はRoswellの作者というほうが有名になってきている。

Rudolph Miller

Rudolph MillerはCommon Lisp界の若手ホープである。コミュニティに参加する前から独学でCommon Lispを学び、僕が会ったときには一人前のCommon Lisperだった。

趣味は何かと聞けば「Common Lisp」と答える。事実、平日も週末も関係なく年がら年中コードを書いている。出かけるときはいつもMacBookHHKBを持ち歩く。彼のことだから、おそらく僕が死んで葬式に現れたとしても参列席でMacBook開いてプログラムを書いているだろう。

一時彼とはサムライトという会社で同僚となったが、彼の生産性には目を見張る。

僕が入社するまでRailsで動いていたアプリケーションをたった一人、しかもほんの一ヶ月でCommon Lispにすっかり書き直してしまった。その後続けてNode.jsの広告配信サーバもCommon Lispで書き直し、上々のパフォーマンスを出している。

コードを書くだけでなく読む量もどうやら凄まじい。「この週末に深町さんのSxQLのコードを読んでみたのだけれど、面白い設計ですね」とか、「Qlotでハマったので読んでみたんですけど、想像よりも大変なことをしていますね」などと感想をくれたことも一度や二度ではない。その度に、彼の技術は魔法のようなものではなくこういう影の活動の積み重ねで裏打ちされているのだな、と感心したものである。

また、彼は僕に高速なHTTPサーバを書かせるきっかけを作った人物でもある。

サムライトに入社する前の話だ。ある日、僕がTwitterでNode.jsの話をしていた。「Node.jsか。速い速いって言うけど遅いじゃねぇか。Common Lispに移植したら、大して努力もしないで35倍も速くなった」

するとRudolph Millerが「HTTPサーバはどうです」と言ってきた。「さあ、計測したことはないけど」Common LispのイベントドリブンなHTTPサーバといえば当時はWookieしかなかった。これとNode.jsのhttpモジュールのベンチマークを取ってみると、なんとCommon Lispが2倍も遅かった。

この屈辱的とも言える事実を見て、僕はWookieや、そのHTTPパーサ「http-parse」にパッチを何度か送ることとなった。その度にいくらかパフォーマンスの改善は見られたが、Node.jsほどではない。そのうちに、こんなんじゃやってられん、ということで自前で書き直すことにした。それが「fast-http」や「Woo」である。

それから数ヶ月Wooの改善を続け、Node.jsと同程度には速い、というくらいになった頃。これでいいかねぇと言うと、Rudolphが「高速な言語のCommon Lispがそれでいいんですか」とニヤニヤ言う。言うねぇ、生意気なやつだ、それじゃあ行けるところまでやってやるかーー。

Wooのバックエンドをlibeventからlibevに置き換え、もはや完全にWookieとは別物になった。今やWooはNode.jsの2倍速い。彼は書くコードもそうだが、言うこともなかなか鋭く煽り方も一流である。

そんな彼も、先日サムライトを退職してCommon Lispを使わない企業に転職した。彼はそうとは言わないが、今後はCommon Lispを書く機会も然程もなかろう。残念なことである。

κeen

粗忽長屋」という落語がある。

浅草の観音に参りにきた八五郎は道端に人だかりが出来ているのを見つける。どうやら昨晩から行き倒れの死骸の身元がわからないので知っている人物を探しているらしい。八五郎は死人の顔を見るなり、これは隣に住んでる熊五郎だ、と言う。今朝会ったのだからそんなわけがないのだが、あいつ自分が死んだことに気づいてねーんだ、と言って長屋に戻って熊五郎を説得する。最初は否定していた熊五郎もいろいろ言われるうちに自分は死んだんだと納得してしまうという滑稽噺である。

粗忽長屋立川談志- YouTube

咄家の立川談志は、この落語を「主観長屋」として少し脚色を加えて演じた。

「“たまには(ひげ)()たれ” つってるじゃねえか」
「髭なんぞはどうでもいいんだい」
「人間てえのは鏡見んだろ。鏡ィ見りゃ、自分の顔ってのが判るじゃねえか。俺なんぞは、(まい)(にち)顔洗って、歯ァ磨いて、髭なんぞ剃るから、自分で自分が判る。だから、街で歩いてて、あ、俺だなってすぐ判る。お前は自分のことが判んない。俺はお前が判って、俺が判って、両方判ってる。俺が“お前だ” つってンだから、間違いねえだろう」
 こいつは“粗忽”ではない。あまりに主観が強いと、人間の生死までも判らなくなってしまうという、物凄いテーマを持った落語なのだ。

談志 最後の根多帳 (談志最後の三部作 第二弾) より

κeenさんにも、この八五郎のようなところがある。

非常に思い込みが強く、一度そうだと思ったら他の全員が違うと言ってもなかなか自分の意見を曲げない。不具合報告を彼からもらっても、よくよく聞けばκeenさんの勘違いだったりする。なのに語気は強いのだから後から思い返すと笑ってしまう。どうも彼は「主観」が強いらしい。

κeenさんがコードを書くときの勢いには目を見張るものがある。たとえば、彼のプロダクトの一つである「CIM」は、次のLisp Meetupが一週間後に迫っているという頃に書き始めて、一時はどうなるものかと思っていたが当日には非常に多機能なものを仕上げてきた。

しかし、その後目立った機能追加は無く、不具合もなかなか直らない。結局CIMは後発のRoswellに取って代わられてしまった。彼はどうも飽きっぽい性格のようで、作るときは並ならぬパフォーマンスを発揮するが、ある程度形になると手をかけるのをやめてしまう。結果中途半端なものがGitHubリポジトリに並ぶ。勿体無いものである。

彼はShibuya.lispの現行運営の一人でもある。積極的に月次のLisp Meetupの開催を助けるだけでなく、発表者が集まらないときは率先してLTをする。たとえ彼が仕事や私生活で忙しそうにしているときでも何かしら興味深い話をまとめてくる。彼が粗忽さや飽きっぽいという欠点を抱えながらもコミュニティで愛される立場にいるのも、彼のこのサービス精神の旺盛さから来るのかもしれない。

g000001

g000001さんを挙げなければ日本のLispコミュニティを言い表せないように思う。

とはいえ親交があるわけではない。昔にTwitterやブログで僕が生意気なことを言って怒らせたという経緯もある。ただ、僕に限らず彼との親交を持ち続けている人は周りにいない。古くからこのコミュニティにいる人は「あぁ千葉さんか」などと知人のように呼ぶが、じゃあ知っているのかと思いきや、聞いてみても大して知っているわけでもない。おにぎりのアイコンなので「おにぎりの人」などと呼ばれている。

昔、橘右近という寄席文字の職人がいた。日本テレビの人気テレビ番組「笑点」の舞台の後ろには、彼の書いた寄席文字が額で飾られている。その彼には寄席文字だけでなく、収集家としての趣味もあったらしい。

右近さんは、寄席の古き文献を集める趣味があって、新聞、雑誌の切り抜きはもとより、「ビラ字」や「鳴り物」で稼いだ金を、惜しげもなく使い、「昔のビラ」や「楽屋帳」「本」「写真」を集めてくる。その数は大変なもので、自分達の歴史をほとんど大切にしない寄席や、咄家の中で、貴重な存在になっている。

談志人生全集〈第1巻〉生意気ざかり より

g000001さんはLispコミュニティの橘右近のような存在である。方言に関係なくLispの古い文献・プログラム・MLのメールなどを集めている考古学者だ。Lispはそれこそ歴史がある言語なのでその情報量は膨大であるはずで、その一部は彼のブログで垣間見ることができる。

現代のコミュニティにおいても、Reddit/r/lisp_jaで日本語のLisp情報を活発に収集・共有を行っている。有名なブログだけでなく初心者がちょっと試してみたというような記事まで拾ってくるのだから、彼のアンテナの広さには感嘆させられる。

その他にも逆引きCommon Lispを運用していたり、Stack OverFlowの日本語版Common Lispの質問に積極的に回答したりなど、初心者向けのサポートも熱心である。

Shibuya.lispの初期運営を降りてからは人の集まる場所には滅多に顔を出さないが、ブログでは活発に情報発信を行っている。