ちょうど話題で出たので、今更ですけどオブジェクト指向について。以前少し書きましたけど続きではないです。


オブジェクト指向が普及しない一番の理由は、難しいからだと思います。
いや、そんな言うほど難しくないんですが、オブジェクト指向を解説した文章をいくつか読むと、わりとどれも書いている事が違っていて辛いです。オブジェクト指向を分かりにくくしている一番の原因は、多分これなんでしょうね。


例えば、Hello World並に有名なんじゃないかと思う「哺乳類インターフェイスと犬クラスと猫クラス」の例なんて、分かる人間から見なきゃ分からないんじゃないか、と思う訳です。オブジェクト指向を知りたがっている人が、オブジェクト指向という技術を何に使いたいと思っているのか、というと当たり前ですがプログラムを作る為の技術として、システムを設計する技術として知りたがっているんですから、概念的な抽象化をのっけからやっても多分きちんと伝わらないと思います。


メリットとデメリットに焦点をあてた説明、実際の効果を見せた説明、保守性の向上や複雑さの回避を実現しているケーススタディを踏まえて、最後に根底にある概念を説明した方がずっと経験者に理解してもらえる説明になる気がします。
こういった手順を踏まえて、ようやく「カプセル化」「ポリモーフィズム」などの話が出来るようになり、最後にデザインパターンを1つ2つ理解して貰えれば、後は勝手に調べてくれるでしょう。


もちろん、新人相手だとまた違ったアプローチが不可欠です。メリットもデメリットも、そもそも現場の価値基準がしみこんで無い人に説明しても、実感できないと思います。