PLAYNOTE Lispの父、ジョン・マッカーシー死去

2011年10月25日

Lispの父、ジョン・マッカーシー死去

[ネット・PC] 2011/10/25 15:00
john-mccarthy.png
John McCarthy (1927-2011)

Lispの父にしてAI(人工知能)という言葉の発明者でもあるコンピューター科学者、いや、思想家と言った方がいいかもしれない。ジョン・マッカーシーが亡くなった。つい最近、息抜きがてら、執筆環境の整備がてら、愛用しているエディタ・xyzzyを拡張しようとしてLispを随分いじっていた矢先だったので、とてもびっくりした。名著として名高い(らしい)ポール・グレアムの『On Lisp』を眺めながら眠りについた翌朝、彼の死を知った。

Lispは素人なので偉そうなこと何も書けないんだけど、括弧だらけの変態記法の美しさに惹かれていた。手続き型言語とはまるで違う構文。見た目に美しかったし、どうやらいろいろスゴイらしい。

  • FORTRANに続く世界で2番目に古い高級言語で、今も現役(俺も使ってるくらい)
  • マクロが強力で、ユーザーレベルでプログラミング言語の構造自体を書き換えられちゃう
  • 全部リストとS式

と、ストイック極まりない感じが俺の胸をきゅんきゅんさせていた。どれくらいユニークかというと、例えば階乗を求めるプログラミング、C言語だとこんな感じで書けるんだけど、

#include 
int main(){
    int cnt , num , i;
    for( cnt = 1 ; cnt <= 10 ; cnt++ ){
        num = 1;
        for( i = cnt ; i >= 1 ; i-- ){
            num *= i;
        }
        printf("%d! = %d\n", cnt, num);
    }
    return 0;
}

Lispだとこうなる。

;; 階乗
(defun factorial (n)
  (cond
   ((zerop n) 1)
   (t (* n (factorial (- n 1))))))

美しい。これは再帰をうまく使ったプログラムで、関数が自分自身を呼び出している。もちろん再帰はLispの専売特許というわけではないけれど、親和性が高いのは確か。ちなみにこの階乗の関数は、下記の教則本からパクったものだけど、フィボナッチ数列や等差数列なんかを鮮やかに記述できるLispにちょっと俺はくらくらしていたんだ。神秘的な何かを感じるんだ。

かっこの中に、あらゆる物が内包されていくこの形式、俺は単純に美しいと思う。一言で言えば、Lispはポエティックだ。高度に発達した科学は魔法と見分けがつかない、なんて言った偉人がいたけれど、高度に記述されたプログラミング言語は詩のような美しさを持つ。自分はPerlとCを少しかじっただけだけど、Lispの美しさは群を抜いている。

また、Lisper(リスプ使い)たち自身の狂信的な感じもステキだ。有名なLispの真実という文章の出だしなんか最高だ。適宜省略して紹介。

Lispを学ぶことはあなたの人生を変える。

あなたの脳はすごく大きくなり、そんなに大きくなるものだとは思わなかったほどになるだろう。

社会はあなたを避けるようになる。あなたも社会を避けるようになる。

あなたは自分のまわりの物やまわりの人すべてに不満を感じるようになる。

Lispは非常にエレガントであり、Lispのほんの初歩を知っているだけで、ロイヤルバレエのプリンシパルをワンシーズン務められるくらいだ。あなたがステージに小さなチュチュをつけて現われ、つま先で空に丸い括弧をいくつか描くだけで、人々は驚きのため息をつくことだろう。彼らがLispを知らなければ話は別だが。しかし彼らがLispを知らないのなら馬鹿ということであり、どの道気にすることもないのだ。

俺にとってプログラミング言語は、普段の仕事と対局にある無意味の極みのようなものだ。音楽を聴くとか旅行に行くとか、そういうのの方がまだ執筆にも翻訳にも演出にも役に立つ。無意味の極みにあるからこそ、たまに触れたくなるのだが、Lispの美しさはもはやよくできた戯曲のような完全性を持っている。

全く知らない未知の言語を学ぶスリルもある。$result = $a $b なんてのは、未知の言語ではない。読めばわかる。でも、(setq result ( a b))なんてのは、スワヒリ語並に意味がわからない。しかし、わかってみると、構造の美しさに目眩がする。これはポエムだ。純粋数学がポエムのような美しさを持つのと同じように、Lispは美しい。

この間届いたジョブズの訃報も衝撃的だった。ジョブズは我々の外側、ツールやスタイルを変えることで、我々の内側を変えた。ジョン・マッカーシーの創案したLispは、我々の内側を変える可能性を持っている気がする。

何はともあれR.I.P. 楽しい贈り物をどうもありがとう。