What is it, naokirin?

Web+DB Press Vol.132 の「オブジェクト指向神話からの脱却」を読んだので、感想を書いておく

Web+DB Press Vol.132 に、「オブジェクト指向神話からの脱却」という特集記事が掲載されていました。

gihyo.jp

この記事を読んで、なんだかんだオブジェクト指向と言われるプログラミング言語を使って仕事をしている身として、久々に「オブジェクト指向」という言葉に向き合った感じがしたので感想を書いておくことにしました。

オブジェクト指向とはなにか?」ということを、現在の視点で書かれている

オブジェクト指向の機能や(過去も含めての)周辺技術を最初の方で紹介しています。とはいえ、これは別に「これがオブジェクト指向だ!」というものではなく、こういったものが歴史の中で「オブジェクト指向」として生まれてきたという話になっています。このあたりで、プログラミング界隈でオブジェクト指向が一大ムーブメントとなり、オブジェクト指向ありきな技術が生まれた流れを知る(または振り返る)ことができます。

後半では、現在のオブジェクト指向と呼ばれるものの使われ方、プログラミング言語自体の発展・多様化による、「オブジェクト指向」という言葉の多義化、あいまい化について書かれています。

個人的に、オブジェクト指向という言葉は残っていくと思われますが、記事に書かれている通り「オブジェクト指向」といっても言語ごとに異なるパラダイムが含まれていたりするなど、ベストプラクティスが異なる実情からすると、「オブジェクト指向」という言葉から読み取れる情報は昔以上に少なくなっていると感じます。

デザインパターンの変化に触れている

個人的には前々から思うところのあった、デザインパターンの変化について触れています。

実際に、プログラミング言語がサポートする機能が増えたことで、デザインパターンはいくつかにおいて、ほとんど見ることが(そして検討することも)なくなったものがあります。こうした一時期オブジェクト指向とともにもてはやされた知識も古くなってきているというのが書かれているので、デザインパターン神話からの脱却も図られています。

「ソフトウェア開発にとって何が大事か?」という、世の中の開発者への一石

単に「オブジェクト指向」という言葉に振り回されるのがソフトウェア開発にとって大事なのか?ということを投げかける記事となっています。 「オブジェクト指向」を理解したとして、ソフトウェア開発に活用できるなら良いが、そうでないならもっと注力すべきところがあるのではないかということでしょう。

実際、様々なプログラミング言語を触ってみると、非常に多様で、同じ問題領域でも(いわゆるオブジェクト指向と呼ばれる)言語やフレームワークごとに、ベストやベターな設計も変わってくるというのが現実だと思います。そういう意味では、達人プログラマー*1に紹介されている有名な「毎年少なくとも一つの言語を学習する」*2ことにより、逆に「オブジェクト指向」と呼ばれる言語の多様性などを学ぶと、狭い範囲の「オブジェクト指向」に囚われにくそうですね。

オブジェクト指向がわからない」といったことを考えていたり、「オブジェクト指向だからこうすべき」と思っている人は、ぜひ読んでみると良いのではないかと思う記事でした。

*1:https://www.ohmsha.co.jp/book/9784274226298/

*2:引用:毎年少なくとも一つの言語を学習する― 言語が異なると,同じ問題でも違った解決方法が採用されます。つまり,いくつかの異なったアプローチを学習することにより,幅広い思考ができるようになるわけです