Lispがそんなに素晴らしいなら
2003年5月
Lispがそんなに素晴らしいなら、なぜもっと多くの人が使わないのか?最近の講演で聴衆の学生からこの質問を受けた。初めてではない。
言語においても、多くのものと同様に、人気と品質の間にはほとんど相関関係がない。なぜJohn Grisham(『キング・オブ・トーツ』の売上ランク、44)はJane Austen(『高慢と偏見』の売上ランク、6191)よりも売れるのか?Grisham自身でさえ、自分がより優れた作家だからだと主張するだろうか?
『高慢と偏見』の最初の文はこうだ:
良い財産を持った独身の男性は、妻を必要としているに違いない、というのは普遍的に認められた真実である。
「普遍的に認められた真実?」恋愛小説の最初の文にしては長い言葉だ。
Jane Austenのように、Lispは難しそうに見える。その構文、または構文の欠如は、それがほとんどの人が慣れ親しんでいる言語とは全く似ていないように見せる。私がLispを学ぶ前は、私もそれを恐れていた。最近、1983年のノートを見つけ、そこにこう書いてあった:
私はLispを学ぶべきだと思うが、それはとても異質に思える。
幸いなことに、当時私は19歳で、新しいことを学ぶことにあまり抵抗がなかった。私は無知で、ほとんど何を学ぶことも新しいことを学ぶことを意味していた。
Lispに怯えた人々は、それを使わない他の理由を作り上げる。Cがデフォルトの言語だった頃の標準的な言い訳は、Lispは遅すぎるというものだった。今ではLispの方言は利用可能なより速い言語の一つとなっており、その言い訳は消え去った。今の標準的な言い訳は公然と循環的だ:他の言語の方が人気があるという。
(そのような推論には注意せよ。それはあなたをWindowsに導く。)
人気は常に自己永続的だが、プログラミング言語では特にそうだ。人気のある言語にはより多くのライブラリが書かれ、それがさらにその言語を人気にする。プログラムはしばしば既存のプログラムと連携する必要があり、同じ言語で書かれていればそれがより簡単なので、言語はプログラムからプログラムへとウイルスのように広がる。そしてマネージャーは人気のある言語を好む、なぜならそれらは開発者に対してより多くの影響力を与え、開発者をより簡単に置き換えることができるからだ。
確かに、プログラミング言語がすべてほぼ同等であれば、最も人気のあるもの以外を使う正当性はほとんどないだろう。しかし、それらは同等ではない、遠く及ばない。そしてそれが、Jane Austenの小説のように、あまり人気のない言語が生き残り続ける理由だ。他の誰もが最新のJohn Grishamの小説を読んでいる時、常に代わりにJane Austenを読んでいる少数の人々がいるのだ。