OOというキメラ

はてな オブジェクト指向の概念の発明者は誰ですか?という質問。
これを見た、id:sumimさんのコメント
そもそもオブジェクト指向の原義としては、

端的にはコンピューティングに関わるすべてを「“オブジェクト”と、それに対する“メッセージ送信”で表現すべし」というドグマにより成り立たせようとする世界観

いわばアラン・ケイの想うパーソナルコンピューティングの理想(Dynabook)の基礎であり、哲学であり、世界観である。
その最も純粋な(暫定ではあるが)具象化が、Smalltalk であった。

対して、現在一般的なC++/Javaに代表されるオブジェクト指向は、抽象データ型の発展形。

一例として、以下、信州大学のサイトより。

抽象データ型およびクラスの概念がオブジェクト指向の出発点である。以下の様な流れで発展してきている:

  1. データ型


    データの型をユーザが自由に定義できるようにしようとするものである。C言語でのtypedefはこれをもっともシンプルに実現したものである
  2. データ抽象


    データの型とそれに対する操作は密接に関係している。これらを一括して表現しようとするのがデータ抽象である
  3. 抽象データ型


    データ型をそれを実現するデータと、その操作のための関数からなると考え、この両者をまとめて表し、それを型としようとする考え方である。これにより例えば分数を表す抽象データ型を用意して、従来の型(整数、実数等)と同様に利用する事が可能となる。また通常この場合利用者側にたったインターフェイスの定義部分と実現部分を分離する
  4. オブジェクト指向