クラス指向

気付けば再三、ビアルネ・ストラウストラップの「抽象データ型のスーパーセット」としてのオブジェクト指向を簡単にするために「クラス指向」などと言ってしまっていますが、この言い換えには語弊がありそうです。ストラウストラップ本人は、オブジェクト指向は「抽象データ型のスーパーセット」だとは言っていますが、それを称して「クラス指向」とは言っていないからです(まあ、C++ の前身として C with Classes という処理系の呼称を使ったり、明らかにクラスという言語機能を意図したと思われる「継承を使ったプログラミング」などという言い回しをしていますから、ぎりぎりセーフといきたいところですが…)。なお、アラン・ケイの「メッセージ指向」としてのオブジェクト指向は、本人がオブジェクト指向という言葉を使い始める直前まで、同様の意味のことを言い表すのにそのものずばりを使っているのでこちらは問題なさそうです。したがって、オブジェクト指向には、ケイの「メッセージ指向」とストラウストラップの「クラス指向」がありそれらが明確な区別なしに扱われ…とするのではなく、少々面倒でも「メッセージ指向」と「抽象データ型のスーパーセット」があり…、というふうに言うのがより親切なのかもしれません。