プログラミング言語はLispに回帰しているんだろう

Lispはいまだ一騎当千の最強言語の地位を不動のものにしている(と思う)が、考案されたのが50年も昔というのには驚かされる。古代の神秘という感じ。
歴史には詳しくないけど、初期のLispからlambda式やGCってあったよな?あと、Schemeも30年以上前に生まれたんだっけ。あのころからレキシカルクロージャーがあったんだよね。すごいよなあ。
RubyLispの長所をたくさんとりいれた。Javaも最近になってクロージャーが導入されたっけ。GCは今な言語にはほぼ必ずといっていいほど備わっている。いろいろな言語がLispに近づこうとしているような。Lispの考え方からいろいろな言語が生まれて、進化の先はLispに回帰するということか…

せっかく最強言語のLispがありながら、おれおれ言語がどんどん登場していくさまはおもしろい。括弧が嫌いなのかな。Lispの表現力の源はS式だというのに括弧を拒否したら表現力が落ちるよなぁ…

Lispはあまりに強力すぎるがために普通の人には使えないものと思われているのだろうか。敷居を少しでも下げるためにいろんな言語が登場しているのかな。どうなんだろう。

俺はLispSchemeは初学には向かないけど、2番目、3番目の言語としては向いていると思う。最初の言語をマスターするころにはエディタの熟練度もそれなりに上がっているはず。エディタの熟練度は低いうちに括弧の海に飛び込むのは無謀だと俺は考えている。だけどエディタの熟練度が上がってきたら、S式単位の移動とかを教えるだけでやっていけるからね。今時のエディタだと括弧の対応くらい取ってくれる(んだろ?)し。まあ、プログラミングを学ぼうと思った時点でエディタの熟練度が高い人ならば初学がLispでもいいんだけどね。そういう初心者は例外的だと思う。


クロノトリガーの名言『生命の神秘:全ての生命はヌゥに始まりヌゥに終わる』を思い出した。s/ヌゥ/Lisp/g、s/生命/プログラミング言語/gしてみる。

プログラミング言語の神秘:全てのプログラミング言語Lispに始まりLispに終わる』

的を射てる気がする。

ヌゥに神秘を感じるプログラマLispを学んでおけ(ぁ

追記

そういえばまつもとさんはLisperなんだよね。言語オタクとしては、作ってみたかったんじゃないかと。数々のおれおれ言語を作ってきたという話だし。その最高傑作がRubyというわけで。

Rubyのブロック付きメソッドはほんとに萌える。ブロック付きopenを使えばclose書かなくてすむとかめちゃ感動した。だけどLispScheme高階関数に触れると「なーんだ、ブロックってただの高階関数じゃん」と思って少し落胆したが、「do〜end」が秀逸で制御構造のように見えるからやはり美しいと感じた。ブロックがひとつしか持てないのは、「関数引数を取る関数のほとんどがひとつの関数引数しか取らない」という研究結果によるもの。だから、関数引数がひとつの場合に限定しても表現力はほとんど落ちない。その中で最大限の美しさを実現しようとしたのだろう。いちいちlambdaと書いてると美しくないし、正しい選択だった。やっぱRubyのブロックには萌える。

やっぱり言語の力は表現力だけじゃないな。使いやすさとか、見た目の美しさとかも大事だ。言語が無数に出てきたのは「言語は表現力がすべてじゃない」ということなんだろうね。きっと。だからこそLispを知った今でもRubyを愛しつづけているのだろう。

俺がRubyよりも先にCommon Lispに出会ってたらどうなんだろう…高階関数とマクロに萌えてテキスト処理ライブラリでも作ってRubyのように手軽に使えるLisp環境を作ってかもしれないな。そして、オブジェクト指向はCLOSで…んー、当初の俺のレベルでCLOSを把握できたとは思えんなあ。挫折してRubyに逃げてるだろう。