オブジェクト指向とはなにか

 そう問われたら「それはそれが何かと考えたときにだけ存在するものでそんなものは存在しない」と答えるような気がする。
 勿論概念として存在しない訳ではないけれど「これ」がオブジェクト指向だと一言二言で言い表せる言葉は少なくとも存在していない。
 寧ろ解るとか感じるような概念で、意識し学ぶ事で自然と手に馴染んでいく技術のようなものであると想う。

 以前、会社で素人衆を集めて講師を呼び「オブジェクト指向入門」という講座をやったという話を聞き、ああ勿体ないなぁと想ったりした。
 ちょうど常駐していたSEさんに「素人にオブジェクト指向は無理じゃないですかね」と話したとき、「そんなことないんじゃないかな」という言葉が返ってきて愕然とした。
 実装の技術が無い人間が「オブジェクト指向」を知ろうとすることに無理があるし、それを教えられる人間もいるとは想えない。勿論、そうした講座の効果など何もなかったのは言うまでもない。

 実装時においてデザインパターンや設計における原則を知らずにオブジェクト指向を用いることはできないのに、素人である人間に何ができるだろう。オブジェクト指向という言葉面だけが一人歩きして、胡散臭いものになってしまっていることにがっかりさせられる。

 少なくとも画一的な「オブジェクト指向」は存在しない。それを理解しているとして各々によってパターンの適用などが変わってくるものなのだから「答え」はない。

 だからこそ「オブジェクト指向とはなにか」という問いに答えは存在しない。ただ、それは実装時などに擦り合わせを行うにおいて必要となる基本的な技術や認識、知識の固まりであって「これがオブジェクト指向です」なんてものは存在しないのだ。