2006年12月18日 07:45 [Edit]

サルが使おうとすると怒られる気がする言語

禿同です。

Matzにっき(2006-12-06)
今までLispという言語について語ったことはあったけれども、 LispコミュニティやLispユーザの精神性について言及したことはなかった(と思う)。 しかし、今回のことで「Lispが広まらないのには括弧以外の理由があるのかもね」と 強く感じた次第である。

(Common) Lisp has been the language from which inferior people picked good ideas when they could not handle the full language. -- Erik Naggum
[拙訳:(Common) Lispは、言語をフルを扱えない愚民どもがアイディアをつまみにくる言語である]

Matzさんの訳よりもどぎつくなっちゃいましたが、

Script Languages
Lisp を知らない奴に限って Lisp を他のもの、なかでも自分の自慰行為の結果と比べたがる

とのバランスを考えるとこれも悪くないかと。

この「自慰行為」という表現がいまいちわからないのですが、書いた自分以外にユーザーが一人でもいたら、そのプログラムはもはや自慰行為とは言えないかと思います。

逆に問いたいのは、Lispをどこまで知ったら、Lispを知っていることになるのか、ということです。Lambda CalculusがわかったらLispがわかったことになるのか。あるいは多くのプログラマーが書き捨てにする一行野郎(one-liner)もLispで書くようになったらLispが身に付いたことになるのか。あるいはCommon Lispの仕様書を端から端まで把握してやっとLispについて語る資格を得るのか。

Lisp HackersにとってのLisperの定義は、どうも最後のそれである気がしてなりません。

ところが、「つづりが P や R で始まるあれら」では、"hello, world!"が書ければもうユーザーの仲間入りという感じがします。もちろん何年たっても"hello, world!"しか書けないのであれば、さすがに「仲間たち」もうんざりしますが、少なくとも「初心者」という存在に非常に寛大なことが、その普及の力となったのは確かです。

You can program in Perl Baby-Talk, and we promise no to laugh. -- Programming Perl
[拙訳:カタコトのPerlを話してもいいんだよ。わらったりしないから]

LispのBaby-Talkって一体なんなんでしょうか。

少なくとも、Paul Grahamはこのことがよくわかっているように思えます。

The Python Paradox
ただ、ひとつ言えることは、PerlやPythonは、 Rubyと(そしてIcon、Joy、J、Lisp、Smalltalkとも)同じように、 プログラミングを本当に愛する人々が作り、そういう人々に使われている という共通の事実があるということだ。 そして、彼らこそが、 素晴らしいプログラムを生み出すのじゃないだろうか。

もちろんLispもまた愛されている人に作られ、そして使われている言語ということにかわりはありません。ただ、Lispは絶世の美女でも浮気を絶対に許さない美女のような気がします。「正規表現萌え〜」「ばか!マクロがあるじゃないのよっ」とか。Perlの「尻軽さ」とは対極的ですね。なにしろ何とでも交わろうとしますから。もちろんLispとも。

Lispの世界は広大ですが、しかしPやRな言語と比べると閉じた世界のように思えます。いや、括弧に閉じられた世界というか。バカとつきあえとまではいいませんが、もう少しバカに微笑んでくれてもいいんじゃないとは感じてます。愛想笑いでもいいから。

具体的には、Cookbookのような書物が欲しいですね。SICPの世界は確かにすごいし、だから私も拙宅を勉強会の会場として提供したりもしているのですが、例えば「適当なURIをとってくる」とかという日常茶飯事なことがどうやってやるのかすぐにわからない。

知っていることも重要ですが、使う事はさらに重要だと思います。「私はもう使えますが何か?」ではなくて、バカの壁ならぬ'(括 弧 の 壁)を乗り越えるためのはしごがもっとあってもいいのではないでしょうか。

Dan the Nullingual


この記事へのトラックバックURL

この記事へのトラックバック
Matzさんところ、Danさんところの関連エントリーを読んで。 私も、Lisp系方言の一つSchemeでプログラミングをする『にわかな奴』です。さらに、Common Lispに至っては使ったことがありません。 SchemeとEmacs LispばっかりなのでLisp選民ではなく、落ちこぼれに分類される...
Gaucheをもっと気軽に使おう【kiyoka日記】at 2006年12月20日 21:19
この記事へのコメント
え、えーと、じゃあprologは…
Posted by およびでない? at 2006年12月18日 14:43


LISPの人って「週間子供ニュース」とか見たことないんだろうなあw

LISPはコミュニティという”処理系”がアレだった。

ラテン語に関する正高信男の記述
「要は、インテリ言語は庶民言語と差別化されねばならなかった。
庶民にやすやすとマスターされてはありがた味がない。むろん庶民
のあやつる言葉は、本能に即した形を備えている。結果として
本能に逆行する形式をラテン語は付与されるようになった・・・
中略
・・古代ヨーロッパにおいてメインストリームを形成した人々が
紡ぎ出した言語文化は、弱い者を巧妙に洗い出す装置となっていた
ことが実によくわかる」

やはりLISPはラテン語か。
Posted by Cはガテン語? at 2006年12月18日 14:12
私はSICPを徹底的に読み解く本が欲しい。
自分で考えるのは面白いが、すべて自分で考えてたら(私の悪い頭では)何年かかってもムリポ…。
「自分で考えろ、カス」なんだろうか。
Posted by ワロス at 2006年12月18日 12:37
さしずめ、C++はフタナリだな。(笑)
Posted by おやじです at 2006年12月18日 12:06
黒田さんは確かSchemeはLispとはちがう。
Schemeは実用にはならないともいっていました。
Posted by oskimura at 2006年12月18日 11:18