Dr. Alan Kay on the meaning of "object-oriented programming"
Dr. Alan Kay, the pioneer who coined the term "object-oriented programming," shares his original vision behind OOP — focusing on messaging, encapsulation, and late binding rather than the common modern interpretation centered on classes and inheritance. He discusses how the core ideas were inspired by biological cells and early computer science concepts.
背景メモ
アラン・ケイ(Alan Kay)は、1960〜70年代にゼロックスPARCで先駆的な研究を行い、「オブジェクト指向プログラミング(OOP)」という用語自体を作った計算機科学者。Smalltalkという言語を設計し、現代のGUI(ウィンドウ、マウス操作、アイコン)やノートPCの概念を生み出した。この記事でケイは、OOPが「コードとデータのカプセル化」や「継承」に矮小化されている現状を批判している。彼の本来のOOPの定義は「メッセージ送信による遅延バインディング」—つまりオブジェクト同士が互いに「手紙(メッセージ)」を送り合い、受け取った側がそれをどう解釈するかを自由に決める方式。これは、Simula(1960年代の最初のOOP言語)が採用した「データ構造+手続き」という後の主流とは根本的に異なる。ケイが影響を受けたのは細胞間の情報伝達(生物学)と、ノーバート・ウィーナーのサイバネティクス(フィードバックによる自律制御)だった。この背景を知らずに「OOP=Java/C++のクラス機構」と捉えると、ケイの真の意図—計算を生物的な柔らかさ(柔軟性と進化可能性)で捉え直す—を見落としてしまう。