07/04/27 08:15:52
「プログラミング作法」の Rob Pike 先生によるOO信者批判
URLリンク(hisashim.livejournal.com)
私はオブジェクト指向設計の熱心なファンではない。私はOOで作られた美しいものを
いくつか見てきたし、自分でもOOなものを若干手がけさえしたけれど、OOは単に問題に
対してアプローチする方法のひとつでしかない。ある問題に対しては理想的な方法だが、
別の問題に対してはそれほど合った方法ではない。(中略)
オブジェクト指向設計の推進者たちは、ひと塊の木材が持つ美しさが作業を始める前に
自ら姿を現すのを待っている、木彫りの名人のように思えるときがある。「おや、見てくれよ。
木をこう回転させたら、木目が座席の角度にちょうどうまく合った角度で流れるよ、ねえ?」
素晴らしい、いい椅子だ。でも自分が座っているときに木目が気になるだろうか? そして
次回は? やらなければならないことが、どんな木材にも隠されていないことがときどきある。
OOは、インターフェイスが自然に幅広い範囲の型に適用できるような問題には素晴らしく
適しているが、ポリモーフィズムを扱うにはあまり適さないし(コレクションをOO言語に
持ち込もうと画策する動きは、見ていると仰天することばかりだし、一緒に作業をすると
なるとひどい目にあいかねない)、ネットワークコンピューティングには抜群に不向きだ。
私が、問題によって言語を使い分け、そしてさらには -- しばしば -- ひとつの問題を解決
するために複数の言語で書かれたソフトウェアを組み合わせる、そういったことをする
権利を保留しているのは、このことが理由だ。