オブジェクト指向(object-oriented)という言葉が普及しておよそ30年になる。最初のオブジェクト指向言語smalltalkの台頭が1980年、それ以降、さまざまな「オブジェクト指向言語」が発表されてきた。そして、その中のいくつかは現在主流言語として定着するに至った。
それだけ、オブジェクト指向プログラミング(OOP)やオブジェクト指向設計(OOD)、はたまたオブジェクト指向分析(OOA)がソフトウェア開発の現場で有効であると認められたのである。
さて、日本語になじみにくい外来語は多々あるが、おそらくこの言葉もその中で軽くトップテンに入るであろう。そのわけは、
- オブジェクトに相当する適切な日本語がない/発明されていない
- oriented=>指向という翻訳ミス(?)
の2つである。
オブジェクトとは広い範囲でのモノをさす。物理的な存在に限らず、抽象的なモノでも共通の概念を形成しうるものであればすべてオブジェクトである。
英語のグラマーの授業でS-V-Oというのを習ったと思うが、これはsubject(主語)、 verb(動詞)、object(述語)の順に英語では書きますよ、ということであった。
オブジェクトとはこの「述語」のことであるから(たとえばパイロットが"I have control."
と言ったときのcontrol)、「対象物」と訳すのが最も近いかも知れない。およそシステム化しうるもののすべてと考えればよい。
次に「指向」であるが、これが多くの混乱の原因となっていて、ほんとうは、こんなの日本語じゃないのである。こんな「指向」の使い方はない。
「上昇志向」などの志向(めざす・こころざす)とは意味が異なる。
「指向性マイク」などというときに使う言葉である。単に「そっちを向いている」というほどの意味である。とても簡単なことを言っているだけだったのだ。つまり、
- プログラミングにおいてはついロジックや手順やルールやデータ構造を考えてしまうが、
- システム上ではなく現実空間での「ものや概念」が最初にあるのであって、
- それ中心に考えた方が本来の目的に合っているよ。
という主張を熟語にしたもの。「あたりまえじゃん、そんなの」というべからず。ここにたどりつくまで結構大変だったんだよ。ふーう。
【結論】「対象物が最初にありき」という考え方をいう。