Smalltalk や C++ は何も発明していない。発明したのはケイやストラウストラップ。

第1回 サルでも分かるプログラミング言語の新潮流【前篇】の図中の 1969 年の Smalltalk というのはご愛敬として…(おそらく、FLEX システムあたりと取り違えられたのでしょう。自他共に認める言語オタクだけあって間違い方としては渋いですね(^_^;))

気になったのは次ページのこちら、

 しかし、オブジェクト指向という概念そのものは、Smalltalkによって発明されたものではありません。その概念は、1960年代後半スウェーデンのクリステン・ニガルド(Kristen Nygaard)らによってSimula言語に導入されたものです。当時は「オブジェクト指向」という単語はまだありませんでしたが、クラスや継承などオブジェクト指向プログラミングにとって重要なアイデアはSimulaにおいてすでに実現されていました。

 ビアルネ・ストラウストラップ(Bjarne Stroustrup)によるC++は、オブジェクト指向という考えをSmalltalk経由ではなく、Simulaから直接導入しています。以前お会いしたときに直接聞いたところによると、ストラウストラップは大学院時代にSimulaのユーザーであったため、その機能をC言語に取り込みたかったというのが、C++の直接の開発動機だったそうです。

第1回 サルでも分かるプログラミング言語の新潮流【前篇】:プログラミング言語の進化を追え(2/2 ページ) - ITmedia エンタープライズ


この部分。端折り方があまりといえばあんまりなので、勝手に大幅に加筆(^_^;)。

 しかし、このオブジェクト指向機能としておなじみの「クラス」や「オブジェクト」という言語機能を有していたのは、Smalltalkがはじめてではありません。これらの機能は、1960年代後半スウェーデンのクリステン・ニガルド(Kristen Nygaard)らによってSimula言語に導入されたものです。ただし、当時は「オブジェクト指向」という考え方はまだありませんでした。

 アラン・ケイは、Simulaの「オブジェクト」を彼の「メッセージングを介した動的システム構築」というアイデアにおける“レシーバ”(あるいはシステムの構成要素)として利用できることに気付き、「メッセージングのオブジェクト指向」(後に、オブジェクトへのメッセージ送信…に象徴されるようになる)をSmalltalkで実践して見せました。なお、彼のアイデアには必ずしも「クラス」のようなものは必須というわけではありませんでしたが、結局、Simulaスタイルのクラスやその継承機構なども後のSmalltalkには取り込まれます。

 他方で、ビアルネ・ストラウストラップ(Bjarne StroustrupはSimulaの「クラス」を用いて「ユーザー定義型(抽象データ型)」を実現できることに気が付きました。それをふまえて作られたのがC++(厳密にはその前身である C with Classes)です。したがってストラウストラップは、彼の「ユーザー定義型のオブジェクト指向」という考え方(後に、カプセル化・継承・多態性…に象徴されるようになる)のヒントを、「メッセージングのオブジェクト指向」に立脚したSmalltalk経由ではなく、Simulaから直接得ています。以前お会いしたときに…