進まない。本当は今日が〆切なんだが、終わらなかった。 明日にはなんとか。
明日の発表のためにスライド書き。 ちょっと遅いだろうと言う気もする。
東京へ移動。 某企業との合同懇親会。楽しかった。
RubyConfの時に受けたインタビューがポッドキャストとして公開。 恥ずかしい。
Lispから見た「スクリプト言語」への苦言(?)。 だいぶ感情的になっておられます。
で、ですね、興味深いんで、ちょっと分析してみたい*1。
まず、どうやらこの方(えーと、KURODAさんですね)をもっとも怒らせているのは どうやら私らしい。というのも、
スクリプト言語ってのがあります。つづりが P や R で始まるあれです。
色々調べてみると、スクリプト言語の連中というのは、 何かといえば Lisp を引合いに出すのが常套になっているようです。
Lisp の不幸の1つに、
Lisp を使わない奴に限って Lisp について語りたがるというのがあるんですが、今回もう1つ加わったのは、
Lisp を知らない奴に限って Lisp を他のもの、なかでも自分の自慰行為の結果と比べたがる
っておっしゃっているが、
という条件に一番合致するのは、私しか思いつかない。
いや、怒らせるつもりはなかったんだけどなあ。しゃれですよ、しゃれ。
まず、第一に私はLispを知らないわけではない。 もちろん、職業的にCommon Lispでプログラムしたことがあるわけでないから、 第一線の方と比較すればまだまだのは当然だが、 Lispについて語る資格がないほど知らないわけではないと思う。
いや、ないのかな。思想や歴史の概要ならともかく、 その歴史を体験したわけでもないし、 Common Lispの仕様のすべてを把握しているわけじゃないし。 今日もCommon LispでSymbolに対して適用可能な操作のリストを見つけようとして 四苦八苦したもんな。
「(Common) Lispについて精通した人でないとLispを語る資格がない」っていうことなのかもしれないが、 そうだとすると、まあ、ずいぶんと敷居の高い言語であるなあとは思う。
私のどの発言がどんな「トンデモ」に感じられたかは、 ここではわからないが、私自身はいつもLispという言語に対して 「リスペクト」しているつもりである。 仮に少々揶揄することはあるにしても、それは親しみを込めた発言のはずだ。
私のLispに関する発言は、基本的には以下に分類される。
最初のものは、つまり、「Lispのこんなところがすばらしい」ということだ。 ほめているわけだから、非難されるいわれはない。 あるいは「お前なんかから言われたくはない」ってのはあるかもしれないけど。
次のところは、要するに「Lispのあるところは(ある種のスクリプト言語には)不要だ」 ということだ。これは 「Lisp の良いとこを取ろうと思ったら最低 ANSI にあるものは全部入れとかないといけない」という発言と対立しているから、KURODAさんとは意見を異にしている。
もちろん、これは「Lispの良いとこ」の定義によるわけだが、 KURODAさんの場合にはその定義は明確である。「最低ANSIにあるものは全部入れとかないといけない」という発言からは「Lispの良さとはCommon Lispであることと同値である」ことが引き出せる。疑問の余地はない。
おそらくKURODAさんにとってはそうなのであろう。そこは否定しない。
しかし、おそらく不幸なことに、すべての人がKURODAさんに賛成するかと言うと そうではなさそうだ。しかも、より不幸なことに、 KURODAさんに賛成する感性を持つ人は、業界を見まわす限り、かなり少数派のようだ。
そのような少数派の人の持つ自意識を端的に表現した引用があった。
(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は、真の言語を取り扱えない劣った人々がアイディアを取り込んでくる言語である
その通り。 我々、「劣った人々」はLispで実験され実証された優れたアイディアを 長年言語に取り込んできた。Lispは言語機能のテストベッドとして非常に優れている。
しかし、先鋭的なLispな人にとって計算外なことは、 業界の人間の大多数がいわゆる「劣った人間」で、 Common Lispには堪えられない、あるいは必要としていない、 という「事実」だ。
そして、私を含む大多数の「普通の人々」は、 Lispがいくら優れた言語でも、Lisp以外の「劣った言語」のユーザを 「劣った人々」と公言するような「Lisp選民」とのお付き合いには 抵抗がある。
今までLispという言語について語ったことはあったけれども、 LispコミュニティやLispユーザの精神性について言及したことはなかった(と思う)。 しかし、今回のことで「Lispが広まらないのには括弧以外の理由があるのかもね」と 強く感じた次第である。
参考: comp.lang.lisp: how I lost my faith
Erann Gatが、 Googleに移ってLispへの「信仰」を失い、Pythonに移行したという話。 「Lispじゃなきゃ」というのが思いこみであったとの告白。
あと、KURODAさんは「言語仕様を小さくまとめてライブラリで言語をリッチにしていこう」という考えを「残念ながらこれは端的に間違ってます」と簡単に断言しておられるが、 もしかしたら、これも同様に「思いこみ」から来る結論かもしれない。 Common Lispの著者の一人でもあるGuy SteeleのFortressは、 まさにそのアイディアを具現化しようとしてるのだから。
いや、KURODAさんがglsよりも正しい可能性は否定できないけど。
追記
「ある言語のユーザーの中に、自分にとって不快な言動をする人がいる」ということを言語自体や言語のユーザー全体をけなす理由にするのは反感の元」という指摘が。
また、こういう指摘も
言語Xのユーザーは、特に有名なユーザーは、同じ言語Xのユーザーから言語Xを使わないことを理由になじられたりはしません。だから「言語Xを使わないことをなじる言語Xのユーザー」がいないと感じてしまうんでしょうか。
まあ、もっともである。が、少々補足したい。
まず、誤解されないために、私が以下のように思っていることを明記したい
私自身はKURODAさんの選民意識は理解できるし、 さほど不快でもない。論理がおかしいとは思うけど。 おまけにこれでますます「普通の人々」がLispから離れちゃうんじゃないかと危惧するけど。
さて、Ruby厨についてであるが、 そういう人がいるという話は聞いている。 まさに上記の理由により私はあまりお目にかかったことはないけど、 存在は認識している。
しかし、少なくともその多くは選民意識によるものではない。 っていうか、Lispのようなある意味特殊なポジションにいる言語と違って、 大衆に受け入れられやすい言語のひとつである(しかも、類似ポジションの言語が複数ある) Rubyに対して「選民意識」を感じたとしたら、 それは単なる無知から来るものであろう。
*1 なんてことすると、ますます怒らせちゃうかも。