管理人である私のいないところで会話が進んでいくのが、この手の掲示板の
あるべき姿だと思ってます。皆様書き込みありがとうございます。
>じゃあ「オブジェクト指向」という言葉の定義は何かというと、詰まってしまって…
用語定義に拘泥するのはあまり意味があるとは思えないんですが、
無意味なことにこだわるのも人間だってことで。
たとえば、以下のページでは、
http://www.shiro.dreamhost.com/scheme/trans/reesoo-j.html
オブジェクト指向言語の要件を箇条書きにしたうえで、
| つまり、「オブジェクト指向」というのはちゃんと定義された概念ではない。
| ある人々 (AbelsonとSussman?) はLispはオブジェクト指向だと言うが、それは
| {3,4,5,7} に基づく (但し、全ての型はプログラマの頭の中に存在するとする)。
| Javaは {1,2,3,7,8,9} があるからオブジェクト指向だ。 Eは {1,2,3,4,5,7,9} と
| 6のほとんどをもつから、もっとオブジェクト指向だと言えるかもしれない。
(中略)
| オブジェクト指向というものが動く標的であるため、オブジェクト指向の熱心な
| 支持者はこのメニューのうちの適当なサブセットを気まぐれに選んで、
| それを以って他の言語はオブジェクト指向ではないと説得しようとする。
と述べています。実際、その通りだと私も思います。
でも、最低限、オブジェクト指向の必要条件(十分条件でないことは承知の上で)を
言うのであれば、「マルチプルインスタンス」は結構外せない線と言えると思います。
インスタンスとはすなわちオブジェクトであり、オブジェクトがなければ、
さすがにオブジェクト指向とは呼べないでしょうから。
ただ、マルチプルインスタンスという定義自体、クラスベースのOOに特化してないか、
と言われるとそれはそうかもしれず。プロトタイプベースの場合、(ある特定の
クラスの)インスタンスが複数生成される、というわけではないですから。
# プロトタイプベースの言語でも、結局クラスっぽいものを作ることが
# 多いとは思いますけどね。