おれおれオブジェクト指向は何が違うのか.

憂鬱本購入した鬱グラマです。私自身は結構役にたったと思ってる派なのでどの辺が屑なのかリストアップして下さるとありがたいです
http://d.hatena.ne.jp/JavaBlack/20070730/p1#c1186372421

答:全部違う.

憂鬱な(略)のどこらへんがおかしいと感じるかと言うことですが,ほぼ全てですね.この本はオブジェクト指向の本質的部分にまるで触れていません.
(中略)
・・・と,書き連ねるときりがありませんので,上述のちゃんとした入門書(デザインパターンとともに学ぶオブジェクト指向のこころ辺りからが良いかと思います)を読まれることをお勧めします.
http://d.hatena.ne.jp/uskz/20070726/p1#c1185501650

これにはほぼ同意見です.*1


一つ,たとえ話をしましょう.

ある人が寿司職人になるために、鉄火巻きの作り方を勉強しました.
本を読むと,マグロを寿司飯で巻き、さらにそれを海苔で巻いて作ると書いてあります.その本を参考にして,金に糸目を付けずに最高の食材を集め,何度も試行錯誤を繰り返し,最高の鉄火巻きを作りました.知人にも試食してもらいましたが,評判も上々です.

彼は思いました.
『よし,オレは鉄火巻きなら一流の寿司職人にだって負けないぞ.』


早速この自信作を,自分も一目置いている有名な寿司職人にも食べてもらいました.
彼の感想は,
『たしかに腕は悪くないね.
なかなか美味しいシーチキンおにぎりだったよ.
でも、それと私と、一体なんの関係があるんだね?』

たとえ使ってある素材が同じでも、作り方を間違えると全然関係のないものになってしまうんですよ.寿司を食べたことの無い人にとっては寿司に見えても,知ってる人にとってはそれは寿司ではありません.
追記:http://labaq.com/archives/50870099.html


作った料理が,たとえ寿司でなくシーチキンお握りだったとしても,そのおにぎりがとても美味しければ,まだいいでしょう.寿司屋の看板を下ろしてお握り屋の看板を掲げればすむことです.しかしそのお握りが不味ければ?米を研ぐのに洗剤を使っていたり、海苔が農薬まみれで食用に適さなければ?

それをお客に食べさせるのは,プロの料理人失格ですよ.


http://d.hatena.ne.jp/JavaBlack/20070805/p2
の件にしてみても,一体あそこでコメントしている何割の人が寿司職人ではなく我流のシーチキンお握り職人であることか.まずはシーチキンお握り職人を取り除いてからでないと,まともな寿司作りの話を進めることはできないでしょう.


ちょっと例の記事から辿ってみると,こんなものも見つけた.

Java/C++/C#オブジェクト指向的機能というのは、数学的なモデルとしては「包含関係を持つ集合をプログラマが任意に定義できる機能」と言える。包含関係というのはaggregationのことじゃなくて、集合としての包含関係なので、汎化/特化のことだ(つまり継承だ)。
http://blog.ajiyoshi.org/Entry/263/

たぶん,この人も全く分かってないと思う.憂鬱系のおれおれオブジェクト指向だと,こんな感じになります.*2

*1:くどいようだけどここね => http://d.hatena.ne.jp/JavaBlack/20070522/p1

*2:こういうのを見ると本当に憂鬱な気分になる.「憂鬱本」とはよく言ったものだ.