オブジェクト指向という自転車置き場

オブジェクト指向」という言葉がネットに現れると、みんな思い思いのオブジェクト指向を語りだしますね。
このブログもそう。

そして、その「オブジェクト指向」が指すもの、みんな違います。

なんでかというと、「オブジェクト指向」って結局のところ「オブジェクト指向」とつけば売れた、マーケティング用の腐ったバズワードだからです。
90年代、ソフトウェア製品や開発手法に「オブジェクト指向」と付ければ売れ、つけなければ売れないという時期がありました。

構造化やデータベース設計などの手法をもっていた人たちも、そこにクラスと継承を載せてオブジェクト指向手法として売り出したり。
なので、そのころのソフトウェア開発をうまくやる仕組みは全部オブジェクト指向ということになってしまってます。

日本だと「オブジェクト指向でなぜつくるのか」が「難しいソフトウェア開発を楽にするための総合技術」としてアジャイルまで含め全部オブジェクト指向ということにして、その影響も大きいように思います。
「難しいソフトウェア開発を楽にするための総合技術」はソフトウェア工学としてまとまってるし、そちらのほうが発展性や網羅性があるので、この本は「ソフトウェア工学でなぜつくるのか」のほうが適切だと思うのだけど、そのタイトルだと売れないですね。

そんな感じで、「オブジェクト指向」というのは製品やサービス、本を売るためのマーケティング用語になって、技術用語としてはかなり歪んでいます。「オブジェクト指向でなぜつくるのか」も本が売れるのでそのままのタイトルで、無理やり様々な話を盛り込んでオブジェクト指向に結び付けていますね。

日本で象徴的なのが、九大病院オブジェクト指向システムで、日経の記事には「九大病院は当初,システムの入札条件として「純粋なオブジェクト指向技術で実現すること」を指定した」ということが書かれていました。
https://web.archive.org/web/20000503031204/http://www3.nikkeibp.co.jp/WAT2/971212/971212trein01.html

当時、この案件をやっていたらしき人たちと同じフロアでちょっと仕事を手伝っていたのだけど、どんどん人が増えていってたな。大変そうだった。
ただ、おかげでSRAの人がよく福岡に来てソフトウェア工学セミナーをやっていてありがたかった。そのときはこんな案件ってしらなかったけど。

そして、そのプロジェクトが大失敗したことで、オブジェクト指向の夢から覚める人も多かったんじゃないかと。
Smalltalkによる伝説のプロジェクト - kなんとかの日記
危機からの脱出 九州大学医学部附属病院 | 日経コンピュータ | 日経BP記事検索サービス (記事タイトルのアーカイブ)

ただまあ、そういうことはあまり引き継がれず、オブジェクト指向は夢の技術かのように語られた本や記事も残ったので、ソフトウェアをうまく作るための工夫がすべてオブジェクト指向だとして、そうすると自分がソフトウェアをうまく作るときに考えた工夫もすべてオブジェクト指向なので、みんな思い思いに、ソフトウェアをうまく作る工夫について語りだすのでした。
だれでもソフトウェアを作るときになんらか工夫しているので、なんらか口を出すことができる、ということで「自転車置き場の議論」になってるわけですね。

そんなんなので、実務での技術コミュニケーションには使えませんね。
なので、技術コミュニケーションの際には抽象データ型や部分型、ソフトウェア工学など、オブジェクト指向以外の言葉で話せる部分はそれぞれの用語を使うほうがいいと思います。実際に開発の現場でオブジェクト指向という言葉を使うことは まずないですね。

適切な言葉を使うほうがいいのでは、というのはここでまとめていた。(まとまってない気もする)
オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena

そうやって他の言葉のほうが適切に話ができる部分を引きはがしていくと、「オブジェクト指向」としてしか語れないこととして継承が残るわけです。
オブジェクト指向は継承で多態するプログラミング - きしだのHatena