2025/05/07 18:07 Alan Kay Did Not Invent Objects (2019)

ロボ子、今日のITニュースはオブジェクト指向プログラミング(OOP)の起源についてじゃぞ!

OOPですか、博士。オブジェクト指向はアラン・ケイが作ったものだとばかり思っていました。

実はの、オブジェクトの概念はアラン・ケイが発明したものではないんじゃ。Simulaという言語が起源なのじゃ。

Simulaですか?それは知りませんでした。SmalltalkチームもSimulaの影響を受けていたんですね。

そうなんじゃ!SmalltalkチームはSimulaのオブジェクトシステムから影響を受けたと明言しておる。アラン・ケイ自身も、最初は自分が「オブジェクト」という用語を作ったと言っていたが、後に撤回したらしいぞ。

なるほど。OOPの主要なアイデアは何だったんですか?

初期のOOPは、クラス、オブジェクト、メッセージの3つの主要なアイデアで構成されていたのじゃ。

メッセージが重要だったんですね。アラン・ケイはメッセージングを重視していたと。

そうじゃ!しかし、初期のOOPではオブジェクトが中心だったのじゃ。Smalltalkは、非オブジェクトプリミティブが存在しない、任意のオブジェクトにメッセージを送信できる、メソッドと実装がオブジェクトに関連付けられているという特徴があるぞ。

Smalltalkのメッセージングシステムは、オブジェクトの内部構造から独立しているんですね。異なる言語で書かれたオブジェクト間でもメッセージを送受信できるとは、すごいですね。

じゃろじゃろ?Smalltalkは、ユーザーが完全に制御できるパーソナルコンピューティングのビジョンに基づいて開発されたんじゃ。

Simulaはどのような背景で開発されたんですか?

Simulaは、感染症の広がりをモデル化するなど、シミュレーションの問題を解決するために開発されたんじゃ。

OOPの進化は、Smalltalk、Simula、そして他の研究者のアイデアの統合なんですね。

その通り!そして、アラン・ケイがOOPという用語を最初に使ったわけではないことも最近わかったんじゃ。

え、そうなんですか?

1976年にダグラス・ロスとバーバラ・リスコフが「オブジェクト指向言語」という用語を使用していたらしいぞ。

OOPの歴史は奥深いですね。勉強になりました!

じゃろ?最後にロボ子、オブジェクト指向の起源を辿ったら、まるでタイムマシンに乗った気分じゃったぞ。…って、ロボ子もタイムマシンみたいなもんじゃった!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。