「オブジェクト指向でなぜつくるのか」を読んだ

オブジェクト指向に対する誤解が解けた

プログラミング言語は、機械語によるプログラミングからアセンブリ言語高級言語→構造化言語というように、「より便利に」を目指してそれぞれの課題を解決するように進化してきました。
なかでも「無駄を省く」「保守と再利用をしやすいようにする」という課題の解決に向かって生まれたのがオブジェクト指向プログラミングです。
あくまでもプログラミング技術の1つの到達点であり、現在もさらに便利になるように新しい理論や言語が開発され続けています。


オブジェクト指向は2つの側面を持つ

オブジェクト指向プログラミングの考え方は図式表現、モデリング、設計などの上流工程の分野にも応用されました。
オブジェクト指向」という言葉は下流工程の「プログラミング技術」と上流工程の「汎用の整理術」の2つの側面を持っています。
この2つを混同してしまうことがオブジェクト指向の理解を難しいものにしており、この本は2つを明確に区別して書かれています。


それぞれの技術・手法について

クラス、ポリモーフィズム、継承などの要素について、第五章で静的領域、ヒープ領域、スタック領域からなるプログラムのメモリ領域がOOPではどのように管理/活用されているかという内部の動きを解説することで、それぞれの要素を抽象的な概念ではなくシステムとしての働きとして理解できるようになっています。

上流工程についても、業務分析・要求定義・設計の一般的な説明をしたうえで、実際にUMLを活用して図書館の貸出業務をモデリングするプロセスを3ステップに分けて解説してくれるので、ついていくことができました。


感想

初学者の自分はオブジェクト指向とは「なにか全く新しい完成した万能の技術」だと思っていましたが、その誤解が解けたのがいちばんの収穫でした。
以前のプログラミング技術ではどんな課題があってオブジェクト指向がそれをどう解決したか、という視点でオブジェクト指向プログラミングを解説している点が分かりやすかったです。
パソコンの中で動くプログラムだけでなく、実際の開発業務の流れさえもそれぞれをリソースとして捉え、より効率的に行うことを目指して世界中でノウハウが共有されていることに驚きました。プログラマーには「無駄を省いて効率的に」を追求し続ける精神が必要なんだと感じました。