オブジェクト指向はすでに粒度が時代にあっていない

定期的にオブジェクト指向disを書いてしまってるのだけど。

とりあえずオブジェクト指向の話をすると定義が人によって違いすぎるので、改めてここでの定義を書いておくと 、基本的にはOMTの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」 に従うのですが
「1990年に流行りソフトウェア開発のすべてを飲み込み、いまとなっては人それぞれ定義が違って技術的議論に使えなくなった、主にオブジェクトを基本単位としてプログラムを整理するやりかたを指すマーケティング用語」
という感じです。
ほとんどの場合で人によってオブジェクト指向の指す範囲が違いすぎて、技術的知見の共有には使えなくなっています。でも、いずれの定義にしろオブジェクトを基本単位にするというのは重要ではないかと。
ソフトウェアの組織化の単位としてオブジェクトを使うというのが大事で、データの搬送に構造体代わりのクラス使うくらいでオブジェクト指向っておおげさに言う必要ないと思ってます。

なので、オブジェクト指向いらないと書いたときに「大きいプログラム作らなければそれでいいんでは」みたいなコメントつくけど、「大きいプログラムつくるときにオブジェクトを基本にする必要なくない?オブジェクトを基本にすることほとんどなくない?」となります。
あと、「オブジェクトを使わなくてもオブジェクト指向の考え方は使える」みたいなツッコミが入ることあるけど「オブジェクト使わないならオブジェクト指向って名前で議論する必要なくない?それオブジェクト指向関係なくソフトウェア工学の話では」ってなります。

オブジェクト指向が流行ったときは、分析設計で出てきた要素をコーディングでもそのまま使えるというのが大きな宣伝文句でした。
ソフトウェア部品の再利用をするときに、オブジェクトを単位として販売するというのも見込まれていました。それで販売されたのは結局は画面部品だけだったので、ビジネスロジックを組織をまたがって再利用できるようにするというのを目指したのがEJB(Enterprise JavaBeans)でもありました。でもビジネスロジックを再利用する部品としてEJBが商売になることはありませんでしたね。

結局のところ、ソフトウェアの部品を組織をまたがって再利用する方法としてはWeb APIが主流になっています。
組織内でソフトウェアを管理しやすいように分類するときも、オブジェクトを基本として考えるのではなくて、マイクロサービスとしてサーバごと分離してWeb API経由で結合することが主になっています。
つまり、ソフトウェアの記述をどうまとめるかというレイヤーで管理するのではなく、サービスとして管理するようになっています。
これはオブジェクト指向のあとに現れたSOA(サービス指向アーキテクチャ)が、ようやく形になったとも言えます。ただ、すでにCORBAみたいな分散オブジェクトというのは忘れられていて、オブジェクト指向はベースになっておらずHTTPがベースになりました。
追記:ライブラリとして共有されてるのでは、という指摘をもらっていて、確かにその通りなのだけどうまくこの話の筋に組み込めてない・・・
追記続き:クラスを使ったライブラリはオブジェクト指向なのかというと、またそれは別の話だけど、本筋から外れるので、ここでは「クラスライブラリ=オブジェクト指向」ではない、とだけ書いておきます

オブジェクト指向がなぜソフトウェア部品の共通化通化で使われなかったかというと、ソフトウェアのバージョンアップやメンテナンス、運用といったソフトウェアライフサイクルを管理する視点が欠けていたからだと思います。
そういったライフサイクルまで含めてマイクロサービスとして管理されるようになりました。
サービス管理の細分化を推し進めて、ラムダとかファンクションという単位でサーバレスとして配備するようにもなっています。

そうするともうソフトウェアの記述としてはオブジェクトという単位は大きすぎて、関数という単位で管理すれば十分ということにもなります。

ソフトウェアの記述をまとめるという視点では主にステートレスな関数を分類できれば充分で、データと振る舞いをまとめたオブジェクトというのは大きすぎる、システムを分割して管理しやすくするという視点ではオブジェクトというのはライフサイクルやリソース管理の視点が足りず小さすぎる、ということで、オブジェクト指向の粒度でのソフトウェア管理は出番がなくなっているのではないか、と思います。

オブジェクト指向でなぜつくるのか」という本がありますが、「え、いまどきオブジェクト指向でつくらなくない?」っていつも思います。内容的には、もうほとんどはオブジェクト指向関係ないソフトウェア工学の紹介になっていますね。発祥がオブジェクト指向ならオブジェクトが関係なくてもそれはオブジェクト指向だ、みたいな考えの本です。「ソフトウェア工学でなぜつくるのか」って名前変えればいいのだけど、それでは売れないんでしょう。
オブジェクト指向が流行ったときに、オブジェクト指向方法論というのが流行って、いろいろな方法論をつくってそれをベースにコンサルするというのが流行りました。とにかくオブジェクト指向と名前をつけておけばコンサル料が取れるという感じだったのだと思います。
いまでも書籍に「オブジェクト指向」とタイトルにつければ売れるということで、まあ結局、昔も今も、オブジェクト指向は技術用語ではなくマーケティング用語なんでしょうね。

もしソフトウェアをうまく作る方法として「オブジェクト指向」を勉強したいと思ったら、その知りたいことは実際にはソフトウェア工学という分野でまとまっているので、そういったタイトルの本を読むのがいいと思います。