オブジェクト指向でなぜつくるのか(第2版)を読んだ

平澤章著『オブジェクト指向でなぜつくるのか』第2版を読んだ。初版は2004年、私が読んだのは2011年に改版された第2版。著者の平澤氏は『レガシーコード改善ガイド』や『リファクタリング』の翻訳にも携わった方だ。それらの本の専門的な内容・文体と比べると、本書はかなり平易な文章で書かれており、また、文字もやや大きめで読みやすいため、サクサクと読んでいける。 

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

 

著者である平澤氏は、オブジェクト指向技術とその周辺事情を実際に体験している。その著者により、一歩引いた視点から、技術としてのオブジェクト指向の基礎がバランスよく、やさしく語られている。

「一歩引いた視点」「良いバランス」という評には私の主観が多分に含まれるのだが、好印象を持ったことには違いない。世に出ているオブジェクト指向の解説本では、まるでオブジェクト指向が万能の銀の弾丸であり、それさえマスターすればすべてがうまくいくかのように導入されるものを見かける。また、対比として「手続き型プログラミング」を引き合いに出し、オブジェクト指向と手続き型プログラミングとを善悪の二極対立のように仕立て上げているものも、悲しいかなよく見かける解説になってしまっている(それは果たして解説と言えるのだろうか・・・)。

この点、『オブジェクト指向でなぜつくるのか』は大きく異なる。機械語から始まり、プログラミング言語そのものに対して見出されたその時の問題を解決する仕組みとして、プログラミングパラダイムが発展してきた。手続き型からオブジェクト指向へも、プログラミング言語の発展の自然な流れとして解説される。

また、この本ではたびたび「オブジェクト指向の限界」や「万能ではない」といった戒めが垣間見える。7章の後にあるコラムでは、「オブジェクトの向こう側」と題し、平澤氏の経験として、オブジェクト指向でなんでもやろうとしすぎてしまうことの失敗や、オブジェクト技術の中心はあくまでプログラミング言語であることなどに気づいたと告白されている。私には、平澤氏が現場での実践から得たフィードバックから、遂にたどり着いた言葉のように思えた。

 

最後に個人的に良いと思った点と、イマイチだと感じた点を列挙しておく。

良い

  • 機械語から順にプログラミング言語/技術の発展の延長としてオブジェクト指向が位置づけられている。
  • オブジェクトは現実世界そのままを写し取るのではない等、含蓄のある記述が散見される。

イマイチ

  • 追加された関数型の章含め、後半のパート(モデリングや設計等)は説明の仕方に納得感がない。
  • モデリングパートが、結局オブジェクト指向アプローチ前提になってしまっており、「なぜ?」に答えてくれない。

 後半部分はテーマの網羅性のためか、章ごとの内容が私には不満の残るものだった。欲を言うならば、網羅性を捨ててどれかワンテーマだけでも、前半と同じようにその技術の成り立ちをたどるスタイルで語ってくれていたら、なぜという疑問を晴らせたように思う。

しかし全体としては読みやすくバランスの良いオブジェクト指向技術の解説書だ。オブジェクト指向技術をある程度身につけた中・上級技術者は、自分の経験や実感と比較しながらこの本を読むことで、オブジェクト指向技術に対する認識を安定したものにできるだろう。