「データは“悪いアイデア”」——アラン・ケイが投じた一石と、リッチ・ヒッキーとの根源的なすれ違い
※この記事は Hi Alan! I've got some assumptions regarding the upcoming big paradigm shift (an... | Hacker News といくつかの参考資料を NotebookLM に解説させたものです。
2016年、コンピュータ界の伝説的人物であり、「オブジェクト指向」やパーソナルコンピュータの概念を創出したアラン・ケイが、人気フォーラムHacker Newsに降臨しました。ある若手起業家が未来のプログラミングについて熱意ある予測を投稿したのに対し、ケイはたった一行の、しかし恐ろしく挑発的な問いを投げかけます。
もし「データ」という発想自体が、とても悪いアイデアだとしたら? (What if "data" is a really bad idea?)
この一文は、瞬く間にClojure言語の作者であるリッチ・ヒッキーを巻き込み、プログラミングの思想的根幹を揺るがす大論争へと発展しました。それは単なる言葉尻の応酬ではありませんでした。この議論は、コンピュータ科学の歴史を通じて対立してきた二つの世界観——宇宙を「記録」しようとする科学者の視点と、新たな宇宙を「構築」しようとするシステム設計者の視点——の衝突を白日の下に晒したのです。
本記事では、この歴史的な議論を紐解き、そこから浮かび上がってきた驚くべき5つの発見を解説していきます。
⒈ すれ違いの核心:2人の天才は、同じ「データ」という言葉を別の意味で使っていた
この論争がここまで複雑化した根本的な原因は、ケイとヒッキーが「データ」という言葉を全く異なる定義で用いていたことにあります。彼らの議論は、一見噛み合っているようで、実は全く異なる土俵で繰り広げられていました。
- リッチ・ヒッキーの「データ」: 観測された「事実の記録」であり、変化することのない静的な値(value)であるべきもの。彼にとってデータは、科学者が宇宙の真理を探究するために用いる、信頼性の高い基盤そのものです。
- アラン・ケイの「データ」: それ単体では意味を持たず、解釈器(インタープリタ)から切り離された「記号の列」。彼にとって、意味を伴わない記号の列を送受信することには、本質的な危うさが潜んでいます。
この定義のズレこそが、互いの主張がすれ違う「不幸な不一致」を生み出した元凶でした。ヒッキーは「事実の記録という素晴らしいアイデアをなぜ否定するのか」と問い、ケイは「解釈の方法なしに記号の列を送って、どうやって意味が伝わるというのか」と問うていたのです。この定義のすれ違いこそが、単純なデータフォーマットの話ではなく、「意味はいかにして伝わるのか」という、より根源的な問いを我々に突きつけることになるのです。
⒉ 真意を伝える鍵:「電報」ではなく「大使」を送れ
アラン・ケイの思想を最も象徴するのが、「大使(ambassador)」という比喩です。彼は、意味の伝達における根本的な問題を次のように指摘しました。
重要な交渉では、私たちは電報を送りません。大使(ambassador)を送ります。
ここで「電報」とは、ケイの言う「データ」、つまり単なる記号の列を指します。それは一方的に送られ、受け手がどう解釈するかに全てが委ねられています。一方、「大使」は単なるメッセージの運び手ではありません。大使は文脈を理解し、相手と交渉し、予期せぬ事態にも自律的に対応する能力を持つ、動的なプロセスそのものです。
彼が本来目指したOOPとは、データという概念そのものを消し去り、すべてをメッセージのやり取りとして記述する世界のことであり、この「大使」という発想はその思想を凝縮したものです。オブジェクトとは、静的なデータをカプセル化したものではなく、自身の振る舞い方を知っている、自律した存在であるべきだという思想がここに凝縮されています。
⒊ 無限後退問題:「通訳の通訳の通訳…」をどう止めるか?
では、単なる「データ」ではなく、解釈の仕方を同梱すれば問題は解決するのでしょうか?フォーラム参加者の一人(panic)が、この点について鋭い指摘をしました。
「データに解釈器を同梱して送ったとしても、その解釈器のコード自体もまた、それを動かす別の何か(機械)がなければ意味をなさないデータではないか? これでは解釈器のための解釈器を送る、という無限後退に陥ってしまうのではないか?」
この問題は、特に通信相手と何の共通基盤も持たない「銀河間ネットワーク」のような極限状況を考えると、より深刻になります。相手が我々のコンピュータアーキテクチャや文字コードすら知らない場合、どうやって最初の「解釈器」を理解させればよいのでしょうか。
この問いに対し、アラン・ケイは「いい質問でしょう?」と応じ、この壮大な問題を考えるヒントとして、ある驚くべき存在を示唆しました。それが「Lincos」です。
⒋ 宇宙人との対話法:人工言語「Lincos」という驚くべき解決策
アラン・ケイがヒントとして提示した「Lincos(リンコス)」とは、1960年に数学者ハンス・フロイデンタールが考案した、地球外知的生命体との通信を想定した人工言語です。その目的は、いかなる共通言語も持たない相手に対して、意味をゼロから立ち上げることでした。
Lincosの核心的なアイデアは、「いきなり情報を送るのではなく、まず相手に“解釈器を自力で構築させる”ための教材(辞書/primer)を送る」という点にあります。それは、意味を一方的に伝えるのではなく、意味を理解する能力そのものを相手に育ませようという、壮大な試みです。
Lincosは、以下のステップで意味を“ブートストラップ”します。
- ステップ1: 数の提示 まず、電波パルスの繰り返し(「.」「..」「...」)によって、文化や言語を超えて普遍的である可能性が高い「数」という概念を例示します。
- ステップ2: 記号の導入 次に、「1+2=3」のような計算の例題を大量に送り続けます。これにより、受け手はパルスの列の間に挟まれた特定のパターンが、「=」や「+」といった演算記号の意味を持つことを推測できるようになります。
- ステップ3: 論理と会話へ さらに、二人の登場人物による質問と応答のやり取りを“劇”のように見せます。これにより、「質問とは何か」「回答とは何か」「その回答が正しいか(肯定/否定)」といった、対話のプロトコルそのものを教え込みます。
Lincosは、まさに究極の「大使」と言えるでしょう。それは完成した意味のパッケージを送るのではなく、「意味を理解するための手続きそのもの」を、丁寧なカリキュラムとして送る試みなのです。そしてこれは、前章で提起された無限後退問題に対する、壮大で理論的な解答でもあります。Lincosは「亀が下に亀」問題を、数学と論理という共有可能な現実の基盤を仮定し、受け手にそれを再構築させることで停止させるのです。
⒌ 最大のリスク:「大使」が“トロイの木馬”である可能性
しかし、「大使」というアイデア、つまり実行可能なプロセスや解釈器を受け手に送り、動かしてもらうというアプローチには、本質的なセキュリティリスクが伴います。フォーラム参加者(brutuscat)が指摘したように、この懸念は極めて現実的です。
「もし送られてきたオブジェクト(大使)が、トロイの木馬を隠したメッセージだったらどうする?」
この問いに対して、Lincosのアプローチは再び示唆に富んでいます。Lincosが送るのは、「これを実行せよ」という命令的なコードではありません。それは「これを理解し、検証せよ」という、宣言的で教材的な内容です。これにより、受け手は無防備にコードを実行する受動的な状態から、内容を吟味する能動的で批判的な状態へと移行します。未知のコードをいきなり実行してしまうリスクは、相対的に下がると考えられるのです。
結論:では、「データ」は本当に悪いアイデアなのか?
この記事で追ってきた議論を振り返ると、「データは悪いアイデアか?」というアラン・ケイの問いに対する答えは、単純なYes/Noではないことがわかります。
この論争から得られる最も重要な教訓は、「意味はデータ自体に宿るのではなく、送り手と受け手の間で共有される“解釈のプロセス”の中に生まれる」という事実です。リッチ・ヒッキーが重んじる「事実の記録」としてのデータも、アラン・ケイが追求する「自律したプロセス」としての大使も、この共有された解釈のプロセスがなければ成り立ちません。
最後に、この壮大な議論を私たちの日々の仕事に引き寄せてみましょう。
私たちが日々設計するAPIやデータフォーマットは、意味を削ぎ落とした無味乾燥な“電報”になってはいないでしょうか? どうすれば、それを少しでも豊かな文脈を持つ“大使”に近づけることができるでしょうか?
この問いこそが、二人の天才が残してくれた、最も価値ある宿題なのかもしれません。