オブジェクト指向は素晴らしかった。
しかし遥かな以前に単なる buzzword に成り下がり、とっくに死んでいる。
オブジェクト指向を楽しそうに語る全ての人にそれぞれのオブジェクト指向があり、それは必ずどこかが他の誰かにとってのオブジェクト指向とは違う。
私は、我々はオブジェクト指向という単語を使って正確な意思疎通を行う事が不可能であると結論する。
色々な物が混じった。
アラン・ケイ氏が最初にオブジェクト指向という言葉を使った時は個々のコンポーネントがメッセージを送受信しながら相互作用で動くシステムのようなものを指していたらしい。
その後に様々な人が好き勝手にオブジェクト指向に意味を付け足したり、その意味を改変したりした。
これはもはや半ば混沌である。
オブジェクト指向には麻薬成分が含まれていた
オブジェクト指向は、本当に解り始めた後にしばらく最高に楽しい日々が続くドラッグみたいなものだった。
それでも体質的に受け付けない人はそこまで至れないし、数々の面白いテクニックは一緒に使える仲間がいなければ逆にストレスだ。
一度オブジェクト指向の良さを知ってしまえば、世の中のオブジェクト指向をろくに知らないプログラマーと働くことが苦痛になる。
彼らが知らないオブジェクト指向の奥義の数々は、彼らにはトリッキーで理解不能で危険にみえるらしいから彼らはとにかく必死に拒絶する。
私はそのように拒絶された時に怒りを覚える事のほうが多かったが、冷静になって見つめなおしてみると、多人数で働く事を重視する場合には時として彼らが正しい事もままある。
オブジェクト指向にはそんな麻薬みたいな効用が間違いなくある。
オブジェクト指向を知らないなんて言えない時代
オブジェクト指向をキメてハッピーになった奴らががオブジェクト指向をマンセーしすぎた。
オブジェクト指向を知らない人が素直に知らないと言えない時代がきたと思う。
その時オブジェクト指向を知らない人達は二つに分かれた。
オブジェクト指向なんて嫌いといってひたすら構造化プログラミング以前の世界にしがみつく人達がいた。
オブジェクト指向についてろくに知らないのに知らないなんて言えないから、知ったような顔をしながら使っている人達がいた。
いずれにせよ、彼らも不幸だ。
オブジェクト指向を知るもの同士?
誰かが「それはオブジェクト指向じゃない!これがオブジェクト指向だ!」と言って誰かを責め立てている姿を見たことはないか?
いいものだけを取り出そう
単にオブジェクト指向とだけ言えば、このように様々な余計なものがついてくる。
これからはかつてオブジェクト指向と呼ばれた混沌の中から、本当にいま表したい部分だけを拾いだしてきて、明示的な言葉で表そう。
例えばそれは message-passing だったり encapsulation だったりするかもしれない。
他にも素晴らしい物がオブジェクト指向という混沌の中にはまだたくさんある。
何かが必要な時、ゴミ捨て場の全てのゴミをぶちまける代わりに、まだ使えるスクラップを選び出して使おう。
あと、オブジェクト指向酔いからはそろそろ醒めよう。
オブジェクト指向以外にも、それと類するくらい大事な物が他にもたくさんあるから。
追記
オブジェクト指向がn%理解できる記事まとめ にリストして頂いた事で、興味深い記事をいくつも拝読する事ができた。
その結果、もしかしたらこれは オブジェクト指向 ではなく オブジェクト思想 とでも呼ぶべき思想と思想の熱い闘いなのではないかと思い至った。
例えば Matz は思想家だ。
私は Matz も好きだ。
特に何だったかな、「馬鹿野郎!コーディングこそが設計だ!」みたいな表明(うろ覚え)とかはもう共感しか覚えない。1
それでも Matz は唯一神ではなく一人の思想家に過ぎないので常に正しいわけではない。2
まつもとさんもまたこの世に生きるひとつの命に過ぎないという事だろう。