アカウント名:
パスワード:
オブジェクト指向は戦場では役に立たない。そんなことふうに考えていた時期が俺にもありました。
構造体の延長として作った set/get しまくりのクラス。関数ポインタで作ったオレオレ仮想関数。構造体を第一引数に渡した オレオレthis。継承をむやみに使いまくって、追いきれなくなったゴミコード。
オブジェクト指向なんて誰も必要としていない。Bjarne Stroustrup インタビュー (?)をガチだと信じていた時期さえありましたwhttp://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html [rim.or.jp]
そんな風にOOをdisっていたら、とある恩師に、こんなこといわれました。キミがC言語を理解して使いこなすまでに何年かかった。そうか3年ぐらいかかったか。C++は、Cと似て異なる別の言語だ。だから、キミがC++を理解して使いこなせるようになるまでは3年ぐらいかかるよ。
それから、いやいやC++を利用してゴミコードを量産していたのですが、3年ぐらいすぎたあるときから、急にOOで書くのがすごく楽になりました。
恩師の言葉は事実だったんだなと思いますた。何がいいたいかというと、非OOの言語になれまくった人がOOを理解するのには、非OO言語を使いこなしたぐらいの時間がかかるんぢゃないのというお話ですた。
めでたしめでたし。#3年もかかったのは馬鹿といわれそうですが、アホなんで許してください。
> オブジェクト指向は戦場では役に立たない。確かに、TOPCODERのアルゴリズムコンペで上位の方のソースは、言語選択はC++でも、普通のCプラスアルファみたいなやつが多い気がする。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー
このはてしなく長いプログラマ坂をよ・・・ (スコア:3, おもしろおかしい)
ということは、知らずにやってた時期があったわけですね。
それはさておき、新たな技法を手に入れて過去の所行を見直したり、教科書に書いてある技をそれと知らず再発明したり、 逆についうっかりおっちょこちょいな独自の技法を編み出してしまったり、 「いやお前の考えはおかしい。エライ人が書いた教科書にもこっち方が正しいと書いてある」と言う実はもっともなアドバイスに反発してみたり、 後になって自らの過ちに気付いたり。 プログラマはそうやって、一歩一歩、成長を遂げるもんでしょう。
このトピックの話題も、そういう階段を一段上がり損ねた一事例に過ぎないでしょうから、ほほえましく見守ってあげれば良いんじゃないでしょうか。
# そうだそうだ!と言う賛同者をたくさん集めちゃって、階段の踊り場なんかが形成されたら嫌だけど
Re:このはてしなく長いプログラマ坂をよ・・・ (スコア:2, 興味深い)
オブジェクト指向は戦場では役に立たない。
そんなことふうに考えていた時期が俺にもありました。
構造体の延長として作った set/get しまくりのクラス。
関数ポインタで作ったオレオレ仮想関数。
構造体を第一引数に渡した オレオレthis。
継承をむやみに使いまくって、追いきれなくなったゴミコード。
オブジェクト指向なんて誰も必要としていない。
Bjarne Stroustrup インタビュー (?)をガチだと信じていた時期さえありましたw
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html [rim.or.jp]
そんな風にOOをdisっていたら、とある恩師に、こんなこといわれました。
キミがC言語を理解して使いこなすまでに何年かかった。
そうか3年ぐらいかかったか。
C++は、Cと似て異なる別の言語だ。
だから、キミがC++を理解して使いこなせるようになるまでは3年ぐらいかかるよ。
それから、いやいやC++を利用してゴミコードを量産していたのですが、3年ぐらいすぎたあるときから、
急にOOで書くのがすごく楽になりました。
恩師の言葉は事実だったんだなと思いますた。
何がいいたいかというと、非OOの言語になれまくった人がOOを理解するのには、
非OO言語を使いこなしたぐらいの時間がかかるんぢゃないのというお話ですた。
めでたしめでたし。
#3年もかかったのは馬鹿といわれそうですが、アホなんで許してください。
by rti.
Re: (スコア:0)
> オブジェクト指向は戦場では役に立たない。
確かに、TOPCODERのアルゴリズムコンペで上位の方のソースは、言語選択はC++でも、
普通のCプラスアルファみたいなやつが多い気がする。