← すべての記事

エンジニアリング哲学:アラン・ケイ、本当に大きなアイデアはメッセージングだった

オブジェクト指向プログラミングとパーソナルコンピュータの先駆者であるコンピュータ科学者、アラン・ケイ

要点

  • 大きなアイデアはオブジェクトではなく、メッセージングです。 ケイは「オブジェクト」という言葉を作ったことを後悔しました。その言葉が人々の意識をクラスや継承——つまり、より小さなアイデア——へと向けてしまうからです。本当に重要なのは、互いにメッセージを送り合い、そのメッセージの意味を受け手側に委ねる独立した存在なのです。
  • 視点の転換はIQ80点分の価値があります。 難問は、誤った枠組みの中でいくら頭をひねっても解けません。それが易しくなるような枠組みを見つけることが肝心です。ソフトウェアにとって、その転換こそがメッセージングでした。
  • Dynabookはコンピューティングを「作業の道具」ではなく「思考のための媒体」として捉え直しました。 1972年に描かれたノートパソコンとタブレットの構想は、人がそれまで考えられなかった思考をできるようにするためのものだったのです。
  • 独立性を生み出すのは遅延束縛(レイト・バインディング)です。 送り手は受け手がどう応えるかを知りません。だからこそ、各部分は互いを壊すことなく変化できます。これこそが、一人の頭脳には収まりきらない規模へとシステムが成長していく仕組みそのものなのです。

原則

「ずっと昔にこのテーマに『オブジェクト』という言葉を当ててしまったことを、私は申し訳なく思っています。その言葉が多くの人を、より小さなアイデアに注目させてしまうからです。本当に大きなアイデアは『メッセージング』なのです。」——アラン・ケイ1

彼はこの言葉を生み出し、それによってチューリング賞をほぼ手にし、そしてその後の数十年を、人々がそれを読み違えていると説き続けることに費やしました。オブジェクトという言葉は、エンジニアにクラスや継承、データモデルの中の名詞——いわば箱の中の家具——を連想させます。ケイの主張は、その家具こそがより小さなアイデアだということでした。重要なのはそのものと、箱と箱の間を行き交うメッセージなのです。つまり、それぞれが自分だけのプライベートな状態を保持し、互いにメッセージを送り合うことだけで関わり合う独立した存在であり、そこではメッセージの意味を決めるのは送り手ではなく受け手だということです。1 これは遅延束縛を哲学にまで高めたものです。送り手は内部に手を伸ばして機械を直接操作するのではなく、ただ尋ね、相手が応え方を心得ていると信頼するのです。

これが大きなアイデアである理由は、頭の中に収まりきらないほど巨大なものを築くやり方そのものだからです。ケイが繰り返し用いる比喩は生物学的なものでした。大きなシステムは、何百万もの細胞から成る身体のように育てるべきだ、というのです。その細胞の一つひとつが完結したコンピュータであり、自分の状態を守り、隣の細胞とはメッセージを通じてのみ言葉を交わします。2 どの細胞も、別の細胞の化学的内部に手を突っ込んだりはしません。生命体全体が頑健なのは、まさに各部分が独立しており、唯一の結びつきが互いに交わすメッセージだけだからこそです。ケイの意図したやり方で行うオブジェクト指向プログラミングとは、データを整理する手法ではありません。それは、互いに交渉し合う数多くの小さな存在からシステムを作り上げる手法であり、どの一片も全体を理解する必要がないようにするものなのです。

そのすべての根底にある、より深い一手は、コードに対してではなく問題に対する構えにあります。ケイは視点の転換はIQ80点分の価値があるとよく口にしました。3 難問は、誤った枠組みの中で賢く頭をひねっても解けるものではありません。その問題が易しくなるような枠組みを見つけ出すのです。メッセージングはそうした枠組みの一つでした。パーソナルコンピュータもまた然りです。正しい視点が剥き出しの頭の良さに勝るという確信は、センスとは主張するものではなく、検討できる技術的なシステムであるという論の根底にある確信と同じものです。問題を見通すために選び取る構造そのものが、仕事の本質なのです。

背景

アラン・カーティス・ケイは1940年5月17日、マサチューセッツ州スプリングフィールドに生まれました。4 彼がコンピューティングにたどり着いたのは遅く、そして横道からでした。ジャズギタリストであり、貪るように本を読む子どもであり、空軍に従軍し、そこで適性検査によってプログラミングへと引き寄せられ、その後コロラドで数学と分子生物学の学位を修めたのです。4 この生物学が効いてきます。彼のソフトウェア理論全体を貫くことになる「細胞としてのコンピュータ」という比喩は、いかなるプログラミングの伝統からでもなく、そこから生まれたものでした。

彼は1960年代半ば、ARPAの資金提供を受けたユタ大学のコンピュータ科学プログラムに加わります。博士課程の指導教官はデイブ・エヴァンスで、周囲の教員にはアイヴァン・サザランドもいました。4 ほぼ着任初日に、エヴァンスはサザランドの1963年の学位論文『Sketchpad』を読むよう手渡しました。Sketchpadはライトペンを使って画面に直接絵を描けるもので、決定的だったのはマスターインスタンスという概念を備えていたことです。形を一度定義すれば、それを継承するコピーを次々に押し出していけるのです。ケイは、この論文と、その後ほどなくして出会ったSimula言語こそが、彼のオブジェクトに関する思考の種だったと認めています。4 彼はまた、1968年のダグラス・エンゲルバートによる「すべてのデモの母」——マウス、ハイパーテキスト、対話的コンピューティングのライブ実演——にも参加しており、後にこれを生涯で最も素晴らしい経験の一つと呼びました。4 1969年の博士研究であるFLEXマシンと言語は、これらのアイデアを軸にパーソナルで対話的なコンピュータを作ろうとした初期の試みでした。4

1970年、彼は新設されたゼロックス・パロアルト研究所(PARC)に加わり、Learning Research Groupを率いることを任されます。4 1970年代のPARCは、研究者が企業の予算で20年がかりの構想を追求できる、稀有な場所でした。ケイにはそうした構想がありました。それは、より高速なメインフレームでも、より優れた端末でもなく、子どもが思考のための媒体として使えるパーソナルコンピュータでした。彼がPARCで築いたすべて——Smalltalk、ウィンドウ型のインターフェース、ノートパソコンという発想そのもの——は、その一枚の絵を実現しようとする試みだったのです。

仕事

Smalltalkとメッセージング——OOPが本当に意味したもの

PARCで、ケイとそのグループ——中心となったのは、基礎的な実装を手がけたダン・インガルスと、周辺のシステムやドキュメントの多くを築いたアデル・ゴールドバーグでした——は、最初期の完全なオブジェクト指向動的プログラミング言語の一つであるSmalltalkを生み出しました。45 Smalltalkでは、あらゆるものがオブジェクトであり、オブジェクトがすることは互いにメッセージを送り合うことだけです。別のオブジェクトの状態に手を伸ばす演算子は存在せず、算術演算でさえ数値に送られるメッセージなのです。このシステムは動的型付けであり、極度に遅延束縛されています。メッセージが何をするかは、送り手があらかじめ固定するのではなく、受け手がメッセージの届いた瞬間に解決します。5 この遅い解決こそが、動作中のSmalltalkイメージを実行しながら編集できるようにしていました。言語とその環境は、同じ一つの生きた存在だったのです。

ケイは後に、オブジェクト指向プログラミングの本当の定義を3つの要件へと蒸留しました。メッセージング。各オブジェクトの内部に状態とプロセスを局所的に保持し、保護し、隠蔽すること。そして、あらゆるものの極度な遅延束縛です。1 このリストにないものに注目してください。クラス、継承、型です。それらは実装上の便宜にすぎません。譲れないのは、状態がプライベートであることと、すべてが可能な限り遅く決定されることです。彼が「オブジェクト指向」という言葉を自分が作ったとき「C++を念頭に置いてはいなかった」と言ったのは、まさにこのことを指しています。クラスと継承を備えた言語であっても、あるオブジェクトが別のオブジェクトの内臓に手を伸ばすことを許してしまえば、肝心な点をまるごと取り逃がしているのです。6

メッセージングこそが屋台骨を支えるアイデアであり、オブジェクトではない理由は、独立性を現実のものにするのがメッセージングだからです。もし送り手が受け手の内部を知っていたなら、両者は溶接されてしまい、再び一つの巨大にもつれ合ったプログラムへと逆戻りするでしょう。送り手はただメッセージを送るだけで、応え方を決めるのは受け手だからこそ、送り手に手を触れることなく受け手を差し替えたり、拡張したり、成長させたりできるのです。これは、身体が傷を癒したり、ネットワークが死んだノードを迂回して経路を切り替えたりできるのと同じ性質です。ケイはソフトウェアを生物学が拡張するのと同じように拡張させたかったのです。そして生物学が拡張するのは、保護された細胞どうしのメッセージを通じてであって、内部の共有を通じてではありません。

Dynabook——媒体としてのコンピューティング

Dynabookのコンセプトスケッチ/モックアップ——あらゆる年齢の子どものためのパーソナルコンピュータというアラン・ケイの構想

1972年、ケイはボストンのACM全国大会で発表された「あらゆる年齢の子どものためのパーソナルコンピュータ」を執筆し、その中でDynabookを描きました。それは持ち運べるノートサイズのパーソナルコンピュータで、平らな画面を備え、子どもの蔵書、音楽、絵、プログラムをまるごと収められ、一個人が所有していつでもどこでも使えるものでした。7 彼はそれをノートほどの大きさの薄い石板として描き、原理的には当時の技術でも作ることができ、安価に売り出せるはずだと論じました。7 そんな機械は存在しませんでした。パーソナルコンピュータは存在しなかったのです。彼は1972年にノートパソコンとタブレットを描写していたわけです。

しかしDynabookは、本当はハードウェアの話ではありませんでした。それはコンピューティングが何のためにあるのかという話だったのです。ケイの枠組みは——ジェローム・ブルーナーの学習理論と、Logoを用いたシーモア・パパートの仕事から汲み取られたもので——コンピュータは文字や印刷術のような新しい媒体であり、媒体の眼目は人間がそれまで考えられなかった思考をできるようにすることにある、というものでした。47 本は読むことしかできません。Dynabookは、その中で書き手となりシミュレーションすることができます。子どもはアイデアの動的なモデルを組み立て、それが動く様子を見られるべきなのです。だからこそ、それはパーソナルで、持ち運べて、所有されるものでなければなりませんでした。思考のための媒体は、ノートがそうであるように、つねに手元になければなりません。さもなければ、それは媒体ではまったくないのです。ケイが築いたすべては、コンピュータを道具ではなく媒体として扱うことの下流にありました。

PARCのGUIと「未来を発明せよ」

講演するアラン・ケイ

Dynabookには子どもが使えるインターフェースが必要だったので、ケイのグループはそれを作りました。重なり合うウィンドウ型のグラフィカル・ユーザー・インターフェース——机の上の書類のように重なるウィンドウと、指し示して一つを手前にめくり出すマウス——は、PARCの彼のLearning Research Groupで開発され、グループが「暫定的なDynabook」と呼んだマシン、Xerox Altoの上で動きました。48 あなたがこれまで使ってきたあらゆるデスクトップは、その仕事の末裔です。1979年12月、スティーブ・ジョブズとアップルのエンジニアたちがPARCを訪れ、Smalltalkを動かすAltoを見せられました。ビットマップ表示、マウス、重なり合うウィンドウです。8 それらのアイデアはLisaへ、そしてMacintoshへと入り、そこからWindowsへ、コンピューティングの主流へと流れ込みました。8 いまや世界中が使うこのインターフェースは、新しい媒体の中で書き手となる子どもという構想に奉仕するために築かれたものだったのです。

その仕事を駆り立てた標語が、ケイの最も引用される一節です。「未来を予測する最善の方法は、それを発明することだ。」 彼によれば、これは1971年初頭のPARCで研究者とゼロックスの企画担当者が顔を合わせた会議から生まれたといいます——「情熱の発作に駆られて、私はあの言葉を口にした」のだそうです——企画担当者が予測を求めたのに対し、ケイの答えは、自分たちが築こうとしている未来を予測したりはしない、というものでした。9 PARCはまさにその一文を実地に移したものでした。コンピュータが何になるのかを問うのではなく、ケイのグループはコンピュータが何になるべきかを決め、それから10年をかけてそれを築いたのです。パーソナルコンピューティングの未来は、PARCで予測されたのではありません。そこで、意図的に発明されたのです。

コンピュータ革命はまだ起きていない

1997年、ケイは「コンピュータ革命はまだ起きていない」と題したOOPSLAの基調講演を行いました。これは、勝利を謳い上げる物語に対する必要不可欠な重しです。10 彼の主張は、業界はPARCの構想の成果物——ウィンドウ、マウス、パーソナルマシン——だけを取り入れ、アイデアを取り逃がした、というものでした。パーソナルコンピューティングは、彼に言わせれば、その大半が紙の自動化になってしまったのです。デジタルの文書、デジタルのメール、デジタルの書類棚——真に新しい媒体になる代わりに、古い媒体を模倣していると。彼が意味した革命——人間の思考を増幅する媒体としてのコンピュータ、普通の人々が文章を書くようにプログラムするコンピュータ——は、まだ到来していなかったのです。デスクトップの比喩が勝ちました。Dynabookのアイデアは勝てませんでした。

成果物とアイデアの隔たりは、彼の晩年の生涯をかけた批評となりました。2001年に彼が設立したViewpoints Research Instituteを通じて、ケイは現代のソフトウェアの肥大に強く抗いました。誰も完全には理解していないライブラリの寄せ集めからではなく、清潔でメッセージをやり取りする部品からシステムを育てれば、その何分の一かでできるはずだと彼が論じたことを行うのに、数千万行ものコードが費やされているというのです。411 彼の「STEPS」プロジェクトは、パーソナルコンピューティングのシステム一式——OS、アプリケーション、その他すべて——をおよそ2万行で再構築しようと試みました。肥大が必然ではなく選択であることを示す、存在証明としてです。11 メッセージングの確信は、その不満へとまっすぐにつながっています。あなたが理解できないシステムとは、その部分がきちんと独立していなかったシステムなのです。肥大とは、境界が漏れたときに起こることなのです。

方法

その方法は50年を通じて一貫しています——一つの言語、一台のマシン、一つのインターフェース、そして一つの批評です。

問題を易しくする視点を見つけよ。 ケイの最初の一手は、問題に正面から挑むことではけっしてなく、問題が置かれている枠組みを変えることです。手続きの代わりにメッセージング。道具の代わりに媒体。コードの代わりに細胞。IQ80点の一節は、方法を標語にしたものです。てこの力は努力ではなく視点にあるのです。3

呼び出す手続きではなく、メッセージを送り合う独立した存在から組み立てよ。 構築の単位は、自分の状態を守り、メッセージだけを露出させるオブジェクトです。大きなシステムは、生物学が生命体を育てるように——多数の小さく独立した、メッセージをやり取りする部分を組み合わせて——育てます。そうすれば、どの部分も他の部分の内部に依存しません。12

できる限り遅く束縛せよ。 物事は、責任を持って決められる最後の瞬間に決めます。遅延束縛こそが、システムを実行しながら変更できるほど柔らかく保ち、送り手を受け手の内部に対して無知なままに保ちます。早期束縛は速度を買い、システムを成長させる独立性を手放してしまいます。1

コンピュータを人間の思考のための媒体として扱え。 Dynabookの基準は「この道具は作業のために何ができるか」ではなく「人はいま、以前にはできなかったどんな思考をし、何を作り、何をシミュレーションできるか」です。この問いは、事業全体を自動化から増幅へと捉え直します。7

未来を予測するのではなく発明せよ。 予測を求められたら、代わりに決めよ。PARCの規律は、自分たちの望む世界を選び、それを築くことでした。10年がかりで追求された構想は、いかなる予測にも勝るという確信のもとに。9

影響の連鎖

彼を形作った人々

アイヴァン・サザランドとSketchpad。 着任時にデイブ・エヴァンスがケイに手渡した1963年の学位論文——マスターとインスタンス、画面上での直接操作を備えていた——は、彼のオブジェクトと対話的グラフィックスに関する思考の、文献に裏付けられた種です。4(直接の影響)

Simulaとオブジェクトの発想。 Simula言語は、状態と振る舞いを束ねるオブジェクトという具体的な概念をケイに与えました。彼はそれを「あらゆるものはオブジェクトであり、メッセージで語り合う」というところまで先鋭化させたのです。4(直接の影響)

シーモア・パパートとLogo、そしてピアジェを介して。 子どもがプログラミングするというパパートの仕事——そしてその背後にあるピアジェとブルーナーの発達心理学——は、コンピューティングの真の対象者は学習者であり、その真の目的はデータ処理ではなく思考のための媒体だという確信をケイに与えました。Dynabookは、Logoの野心を持ち運べる形にしたものです。47(形成的な影響)

生物学。 ケイが受けた分子生物学の訓練は、根幹となる比喩を供給しました。完結した、自らを守るコンピュータとしての細胞、そしてメッセージをやり取りするその何百万もの集まりとしての生命体です。彼にとってオブジェクト指向とは、生物学になろうとするソフトウェアなのです。2(形成的な影響)

彼が形作った人々

あらゆるオブジェクト指向言語。 Smalltalkのモデル——オブジェクト、メッセージ送信、動的ディスパッチ——は、Objective-C、Ruby、Javaへとまっすぐに流れ込み、その語彙はいまやプログラミングの当たり前の家具となっています。メッセージングに関する彼の警告を無視した言語でさえ、彼が作った言葉を受け継いでいるのです。56

グラフィカル・ユーザー・インターフェース、そしてそれを通じたMacとWindows。 PARCの彼のグループから生まれた重なり合うウィンドウ型のGUIは、1979年にAltoの上でジョブズに見せられ、Lisaに、Macintoshに、そしてそれ以降ほぼすべてのパーソナルコンピュータのインターフェースになりました。8

ノートパソコンとタブレット。 Dynabookは、1972年に、いまや世界中が持ち歩く携帯型パーソナルコンピュータを描写していました。あなたの机の上のマシンも、鞄の中の石板も、どちらも輪郭においてはケイが描いたものなのです。7

一本の筋

バーバラ・リスコフはデータ抽象をプログラミングの基本要素にしました——型とはそれが守る契約であり、派生型はその基底型が交わすあらゆる約束を尊重しなければならない、というものです。これはケイのメッセージングの確信を型理論として述べたものです。重要なのはオブジェクトの内臓ではなくオブジェクト間の契約であり、呼び出す側はメッセージを送り、それがどう生み出されるかをけっして読むことなく、その応答を信頼できるべきなのです。トンプソンとリッチーが「一つのことをうまくやる」小さなプログラムからUnixを築き、清潔なパイプを通じて組み合わせたところで、ケイは一つのことをやる小さなオブジェクトからシステムを築き、清潔なメッセージを通じて組み合わせました——大きなシステムは、インターフェースにおいてのみ結合された、多数の独立した小さな存在であるべきだという、同じ賭けです。そしてグレース・ホッパーは、コンピュータは人間の言葉で人間と向き合うべきだと主張し、翻訳をマシンの中へ移すことで人が自分自身の言葉で考えられるようにしました。ケイはそれをDynabookで極限まで推し進めました——コンピュータが単に人間の言葉を話すだけでなく、人間がその中で考える媒体になる、というところまでです。その筋はやがてスティーブ・ジョブズへと前に伸びていきます。彼は1979年にPARCに足を踏み入れ、ケイのインターフェースを見て、それを世界へと運んだのです。(シリーズの橋渡し)

ここから受け取るもの

私が忘れずにいる教訓は、どんなシステムでも最も難しいのは枠組みを選ぶことであり、その枠組みは中身の頭の良さよりも価値があるということです。ケイのIQ80点の一節は、このシリーズ全体で最も役に立つ一文です。なぜなら、それはどこに努力を注ぐべきかを教えてくれるからです——悪いモデルの中でいっそう力任せに挽き続けるのではなく、問題が溶けて消えるようなモデルを見つけることに、です。ソフトウェアにとって、その一手がメッセージングでした。パーソナルコンピューティングにとって、その一手がコンピュータを媒体として扱うことでした。規律とは、一行を書く前にどんな視点がこれを易しくするのかと問い続けることです。これは品質こそが唯一の変数であるという基準と同じものです——問いはけっして「間違った設計をもっと力任せに動かせるか」ではなく、「正しい設計を見つけられたか」なのです。

私がいま築いている世界——エージェント、ツールのループ、AIシステム——において、ケイによるオブジェクト指向の本当の定義は、このサイトで最も屋台骨を支えるアイデアであり、それを名指す人はほとんどいません。エージェントとは、まさにケイのオブジェクトなのです。それはプライベートな状態を保持し、あなたはその内部を読むことができず、あなたがそれと関わるのは、メッセージを送って応え方の判断をそれに信頼して委ねることだけです。マルチエージェントシステムは、ケイの生物学的な構想そのものです——多数の独立したコンピュータが、それぞれ自分の文脈を守りながら、互いのメモリに手を伸ばすことによってではなく、メッセージをやり取りすることによって、より大きな何かへと育っていきます。それが機能するとき、それが機能する理由のすべては遅延束縛にあります。送り手は受け手がどう応えるかを知らず、その無知こそが特長なのです。それこそが、各部分を独立して変化させるものだからです。エージェントをうまく築くこととは、ケイの細胞を築くことなのです——そして失敗はつねに同じ失敗、すなわち漏れた境界です。システムは、互いの内部に手を伸ばし合う部品から組み立てられるのではなく、メッセージを送り合う小さな存在から育てられるべきだ——その確信こそが、1972年のDynabookのスケッチから2026年のエージェント・ハーネスまでを貫く一本の筋であり、そしてそれはまさに、証拠の関門がコンポーネントの内側ではなく、その応答を確かめる理由でもあるのです。

よくある質問

アラン・ケイのエンジニアリング哲学とは何ですか?

ケイの核心にある確信は、頭の中に収まりきらないほど大きなシステムは、自分だけのプライベートな状態を守り、メッセージを送り合うことだけで通信する独立したオブジェクトから築かれなければならない——互いの内部に手を伸ばし合う部品から組み立てられるのではなく、多数の小さな細胞から成る生物のように育てられる——というものです。その根底にあるのは、問題に対する構えです。視点の転換は剥き出しの頭の良さよりも価値があり、だから仕事とは、難問が易しくなるような枠組みを見つけることなのです。彼はこれをプログラミング(Smalltalk)に、コンピュータそのもの(Dynabook、思考のための媒体としてのコンピュータ)に、そして業界(本当のコンピュータ革命はまだ起きていないという批評)に適用しました。13710

アラン・ケイが「オブジェクト指向プログラミング」と「メッセージング」で意味したものは何ですか?

ケイは「オブジェクト指向」という言葉を作りましたが、後にそれを後悔したと言いました。その言葉が人々をオブジェクト、クラス、継承——「より小さなアイデア」——に注目させてしまうからです。彼の本当の定義には3つの部分があります。メッセージング。各オブジェクトの状態を局所的に保持し、保護し、隠蔽すること。そして、あらゆるものの極度な遅延束縛です。1 大きなアイデアはメッセージングです。オブジェクトはけっして互いの内部に手を伸ばしません。送り手はメッセージを送り、それが届いた瞬間に意味を決めるのは受け手です。クラスと継承がリストにないことに注目してください——言語が両方を備えていても、あるオブジェクトが別のオブジェクトのプライベートな状態を操作することを許してしまえば、肝心な点を取り逃がしているのです。メッセージングこそが各部分を真に独立させるものであり、それが、大きなシステムをもつれ合うことなく成長させ変化させるものなのです。16

Dynabookとは何でしたか?

Dynabookは、ケイが1972年の論文「あらゆる年齢の子どものためのパーソナルコンピュータ」で、ACM全国大会において描いた携帯型パーソナルコンピュータでした。ノートサイズの平らな画面を備えたマシンで、一個人が所有してどこででも使い、自分の蔵書、音楽、絵、プログラムを収められるものです。7 そんな機械は存在しませんでした。彼はノートパソコンとタブレットを何十年も早く描写していたのです。しかしその本当の眼目は概念的なものでした——文字や印刷のような、人間の思考のための新しい媒体としてのコンピュータであり、そこでは人(とりわけ子ども)が、ただコンテンツを消費するのではなく、アイデアの動的なモデルを組み立てて動かすことができるのです。Xerox Altoは「暫定的なDynabook」として作られ、いま私たちが持ち歩くノートパソコンとタブレットは、その構想がハードウェアで実現されたものなのです。47

アラン・ケイはなぜチューリング賞を受賞したのですか?

ACMはケイに2003年のA.M.チューリング賞を授与しました。「現代のオブジェクト指向プログラミング言語の根幹にある数多くのアイデアを先駆けたこと、Smalltalkを開発したチームを率いたこと、そしてパーソナルコンピューティングへの根本的な貢献に対して」です。12 その表彰文は、彼の仕事の両面を捉えています。ソフトウェアの作られ方を形作った言語とメッセージ送信のモデル、そして、パーソナルコンピュータとは何かを形作ったDynabookとPARCのグラフィカル・インターフェースの仕事です。彼は、Smalltalk、1979年にスティーブ・ジョブズがPARCで見てMacintoshへと運んだ重なり合うウィンドウ型のGUI、そしてパーソナルで携帯可能な、思考のための媒体としてのコンピュータという概念そのものの、鍵となる人物だったのです。48


出典


  1. アラン・ケイ、Squeak開発者メーリングリストへのメール、1998年10月10日。アーカイブされ広く引用されているのはpicostitch「Alan Kay On Messaging」。「ずっと昔にこのテーマに『オブジェクト』という言葉を当ててしまったことを、私は申し訳なく思っています。その言葉が多くの人を、より小さなアイデアに注目させてしまうからです。本当に大きなアイデアは『メッセージング』なのです……」。ケイによるOOPの三部構成の定義——「メッセージング、状態とプロセスの局所的な保持・保護・隠蔽、そしてあらゆるものの極度な遅延束縛」——は、同じテーマに関する後年(2003年)の返答に現れ、Stefan Ram「Dr. Alan Kay on the Meaning of ‘Object-Oriented Programming’」にアーカイブされています。議論はHacker News。 

  2. アラン・ケイ、オブジェクトと、ソフトウェアを生物のように拡張することに関する生物学/細胞の比喩について。ACM SIGPLAN『History of Programming Languages』II(1993年)の「The Early History of Smalltalk」にある彼の回想、および彼の「Alan Kay」Wikipedia項目にまとめられた「それぞれが丸ごと一台のコンピュータである何百万もの細胞」という枠組みを参照。 

  3. 「Quote Origin: Point of View Is Worth 80 IQ Points」、Quote Investigator。ケイに帰属。最も古い文献に裏付けられた発言は、1982年7月20日のCreative Thinkセミナーの講演(アンディ・ハーツフェルドによる録音)で、1984〜1985年に刊行物に登場。異形:「Point of view is worth 80 IQ points」「A change in perspective is worth 80 IQ points」。Wikiquoteにも収録。 

  4. 「Alan Kay」、Wikipedia。1940年5月17日、マサチューセッツ州スプリングフィールド生まれ。1969年、ユタ大学で博士号取得、指導教官はDavid C. Evans(学位論文『FLEX』)。アイヴァン・サザランドの『Sketchpad』とSimulaが彼のオブジェクト思考への影響。1968年のエンゲルバートの「すべてのデモの母」に参加。1970年にゼロックスPARCに加わりLearning Research Groupを率いる。ダン・インガルスとアデル・ゴールドバーグとともにSmalltalk。Dynabook。重なり合うウィンドウ型のGUIと「暫定的なDynabook」としてのAlto。「オブジェクト指向」という言葉を造語。Viewpoints Research Institute設立(2001年)。Britannica「Alan Kay」も参照。 

  5. 「Smalltalk」、Wikipedia。ゼロックスPARCで設計。最初期の完全なオブジェクト指向・動的型付け言語の一つ。あらゆるものがオブジェクトであり、すべての計算はメッセージ送信による。動的で、遅延束縛され、生きたイメージ。実装はダン・インガルスが主導し、ドキュメントとシステムの仕事はアデル・ゴールドバーグによる。 

  6. アラン・ケイ、OOPSLA 1997基調講演の発言、「私がオブジェクト指向という言葉を作ったとき、C++を念頭に置いてはいなかった」。「The Computer Revolution Hasn’t Happened Yet」、アーカイブ動画と書き起こし、Internet Archiveを参照。 

  7. アラン・C・ケイ、「A Personal Computer for Children of All Ages」、原典は『Proceedings of the ACM National Conference』、ボストン、1972年8月(Viewpoints Research Instituteにより再掲)。Dynabook——学習のための媒体としての、携帯型でノートサイズのパーソナルコンピュータ——を描写し、ブルーナーとパパート/Logoに依拠する。概要とAltoへの「暫定的なDynabook」の系譜は「Dynabook」、Wikipedia。 

  8. 「History of the graphical user interface」、Wikipedia、および「Xerox Alto」、Wikipedia。重なり合うウィンドウ型のGUIはPARCのケイのLearning Research Groupで開発。スティーブ・ジョブズとアップルのエンジニアは1979年12月、Smalltalk-76を動かすAlto——ビットマップ表示、マウス、重なり合うウィンドウ——を見せられた。そのアイデアはApple LisaとMacintoshへと流れ込んだ。 

  9. 「Quote Origin: We Cannot Predict the Future, But We Can Invent It」、Quote Investigator。ケイ自身の説明(1998年のメール)は、「未来を予測する最善の方法は、それを発明することだ」を、1971年初頭のPARC研究者とゼロックス企画担当者の会議——「情熱の発作に駆られて、私はあの言葉を口にした!」——にさかのぼらせる。最も古い刊行物での帰属は『InfoWorld』、1982年4月。 

  10. アラン・ケイ、「The Computer Revolution Hasn’t Happened Yet」、OOPSLA 1997基調講演(Internet Archive)。業界はパーソナルコンピューティングの成果物を取り入れる一方でアイデアを取り逃がした——真に新しい媒体を築く代わりに「紙を自動化」した——という主張。 

  11. Viewpoints Research Institute、STEPS Toward Expressive Programming Systems——パーソナルコンピューティングのシステム一式(OS、アプリ、その他すべて)をおよそ2万行のコードで再構築し、ソフトウェアの肥大への批評とするプロジェクト。NSFへの最終報告書はVPRI/Internet Archive(worrydreamミラー)にアーカイブ。背景はWikipedia「Viewpoints Research Institute」。 

  12. 「A.M. Turing Award Laureates — Alan Kay」、Wikipedia(2003年表彰文)。「現代のオブジェクト指向プログラミング言語の根幹にある数多くのアイデアを先駆けたこと、Smalltalkを開発したチームを率いたこと、そしてパーソナルコンピューティングへの根本的な貢献に対して」。ACM受賞者ページ:amturing.acm.org/award_winners/kay_3972189.cfm。 

関連記事

エンジニアリング哲学:レスリー・ランポート、コードを書く前に考える

レスリー・ランポートは分散システムを科学へと変えました。時間はグローバルではなく、因果こそが実在であり、コードを書く前に設計を仕様化するのです。

2 分で読める

エンジニアリング哲学:グレース・ホッパー、コンピューターに人間の言葉を話させる

グレース・ホッパーは、プログラムを人間の言葉で書けるよう最初のコンパイラーを作り、ナノ秒のワイヤーでレイテンシーを物理的なものに変え、古びた教条と闘い続けました。

1 分で読める

The Shader Gallery That Lied: Debugging 216 WebGL Presets

A user said the shader playground looked broken. Pixel-readback testing found 30 dead presets, 11 that never compiled, a…

11 分で読める