[Tokyo.pm] Anti OO
maeda @ tokyo.pm.org
maeda @ tokyo.pm.org
2001年 6月 24日 (日) 21:14:10 CDT
宮川くん> http://www.speech.cs.cmu.edu/~sburke/pub/japanese_food_oop.html
読みました。わはは。
「和食はいいものだ。でも場合によってはよくない部分もある。あのど
ろどろのオカルトを『カレー』と呼んだり、『とんかつソース』を取り
出したりするのはその兆候だ。OOPで同様のものは『iterator』だ」
「Javaのコードを読んでOOの良い習慣を知ろうとするのは、インスタン
トラーメンを食べて和食の真髄を知ろうとするようなものだ」
全然関係ないですが、Ruby256本極道編を読んでいて、「やっぱオレに
はRubyは使えない」と思った部分がはっきりしました。金曜日の
Tokyo.pmのときには「begin/endやiteratorの変数を||で囲むsyntaxが
イヤ」と言ったのですが、それらの比ではない気持ち悪さだったのが、
配列を集合と見たてて差集合を計算する演算子「-」
配列の集合と見たてて積集合を計算する演算子「&」
配列の連結を計算する演算子「+」
(あるいは集合と見たてて和集合を計算する演算子)
です。Larry Wallは「演算子オーバーロードもいいが、数学用の記号
(+, *, <, ==)は、その演算が数学的意味を持つように注意せよ。特に+
は可換であるべきなので文字列の連結などに使ってはいけない」と言っ
ていますが、その意見に賛成です。
C++もキライです。iteratorの「++」が相手によっては本当に32ビット
ポインタの++の場合もあれば、木構造の再帰的トラバースだったりする
し、代入の「=」が相手によっては巨大な構造をmallocしてデータをコ
ピーするものだったり、それが同じ
a = *p++;
という字面になってしまって区別できないのが困ります。てなことを言っ
たら「あんたはOOについて来れない旧人類だ。Cだけ使っとけ」とか言
われました(泣)。そんなこと言って、自分達だってハンガリアン記法で
cHugeObject = *m_pHuge++;
iChar = *m_pszStr++;
って書き分けないと区別できないくせにーっ。
------------------------------- Avatar Md+ d/=□=\. Md+
前田 薫 maeda @ tokyo.pm.org 75t 170km/h AFC50 O \*oo*/ " LG+ LG+
Tokyo.pm http://tokyo.pm.org HeatSink 15 LRM10 .=X ̄X=. LRM10
------------------------------- Armor 2164 Md+ _|_ _|_ Md+
Tokyo-pm メーリングリストの案内