[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 メーリングリストの案内