見出し画像

Retro-gaming and so on

stomachman氏の指摘は100%正しい --- だからLispは使われない

ぶっちゃけ、経験上、「どのプログラミング言語を勉強すべき?」に類する質問って質問者自身はあまり大真面目に質問してないのね。このネット時代でプログラミング言語百花繚乱な状況で、ある種、まともな思考能力さえあれば、「どのプログラミング言語を学ぶか」ってのは、そこそこ目的があれば自分で選べるものなんです。JavaScript「だけ」は失敗するだろうけど(笑)。

どっちにせよ、あまり発展性のある質問じゃない。下の下策的な質問なのね、経験上。大して質問者はマジメでもない。

それもあって、Lispって爆弾突っ込んだりしたわけですが。それに反応したstomachman氏の指摘は全く正しいと思っています。ただ、あの場でネタを発展してもしょーがない、って思ったので、ここでコッソリ書いておこうと思う。

No.9さんは実用性がないと仰るけれど、PIXER社の初期のCGレンダリングマシンはLISPで動いてましたし、数式処理システムReduceもLISPです。

これホント全く正しい。ただ、問題はそれらは「過去の運用実績」なのね。いや、別に揚げ足を取ってるわけじゃなくって。そしてこれが今現在のLispの弱みであって、図らずもstomachman氏自身が「何故Lispが使われないのか」その解答までも書いている。

例えば数式処理システムMaximaもLispだし、初代プレステ、Final Fantasy VIIでのCG自体がSymbolicsのマシンで作られていた。つまりLispで描かれたCGだ。クラッシュバンディクーもLispで書かれてた、なんてのも知ってる人は知ってるでしょう。しかし全部「過去の運用実績」、そして大体は90年代で止まってるんですよね。それは何故でしょう?

これはLispの性質、と言うか、「使われ方」に大きく関係してると思います。Lispは「今まで見たことも聞いたこともないソフトウェアを書こうとした時に最大限力を発揮する」。仕様も良く分からん、ってぇ時にパワーを発揮する言語、それがLispなのです。

もう一例上げると、世界で初めてリレーショナルデータベースを実装した言語はLispです。つまり、その時、リレーショナルデータベースの理論だけ、は存在してた。ただ、誰も実装した事がない。現物が存在しない。「誰も見たことも聞いた事もないソフトウェアを作り上げる」時、使わなきゃならない言語がLispなのです。結局世界初のリレーショナルデータベースはLispで完成された。「完成された」一種モックアップがあれば、それを見様見真似で他の言語で実装する事も可能ですよね。

これでピンと来た人は偉い。問題はLisp側にあるんじゃない。実はソフトウェアってのはもう出し尽くされてるんですよね。今から「誰も見たことも聞いた事もないソフトウェア」が出てくるんでしょうか?確率は低い。そう、時代は再発明の時代へ突入しています。もう、多分、真に新しいソフトウェア、ってのは出てこないでしょう。だからLispの運用実績の割に「実用性が無い」辺りへと落ち込んでいるわけです。

ポール・グレアムがWebアプリをCommon Lispで実装して「すげぇ」ってなったのは、これもまだ誰もWebアプリの具体像が良く分かってない時期だったから、って事があるんでしょうね。今みたいにもはやWebアプリなんて珍しくもなんともない時代になると、Lispの新奇性とか柔軟性なんかより、やっぱ「豊富なライブラリ」の方が重要になってくるわけです。再発明しかしてないわけですから、別に真に新しいモノを作ってるわけでもないので。

つまり、苦しくも、stomachman氏が冒頭に書いてた事自体が、Lispの実用性が「無くなった」直接の原因なのです。

主流は「他人が書いたプログラムを利用する」でしょう。Pythonでプログラミングやってるとか言っても、巨大なライブラリを利用するための最小限のコードしか書かない。

「再発明の時代」ではLispの実用性は乏しいのです。

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事