アカウント名:
パスワード:
>オブジェクト指向でプログラミングしなければならないかどうかは言語に依存するものではないでしょう。
「郷に入りては郷に従え」って言葉がありまして。IOCCC が開催されることとなったきっかけ [kaimei.org]は御存知?その言語にあわない流儀を用いてコーディングするなら最初からその言語を使うな、というお話。仲間内だけでやるならともかく外に出したら困ることになりますよ、と。# そのきっかけを忘れてアホ実装したのが Boost の lambda だったりするわけだが、何故か一部でもてはやされていて困る。
オブジェクト指向がしっくりこないなら、オブジェクト指向ではない言語を使って作れば良いだけです。ですから私の意見としては NG 。
だいたい、履歴書にコーディング経験C++10年、C#5年なんて書いていてあんなコードしか書けないのがいたら詐欺レベルですよね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
質問が間違いですね (スコア:5, すばらしい洞察)
そもそも設計がオブジェクト指向でなければ実装だけオブジェクト指向になることもないですし、オブジェクト指向設計はプログラミング言語抜きに行うことも出来ますよね。
(言語に対してある程度のオブジェクト指向的な機能は仮定するにしても)
あと、もとの記事を見るとC++が挙がっていますが、C++は「オブジェクト指向にも書ける」言語であって「オブジェクト指向のための」言語ではありません。
なので「C++を利用するならオブジェクト指向でプログラミングしなければならないか」というように質問を解釈したとすれば、「否」が答ですね。
STLの実装を見てもらえば分かりますが、C++の機能をふんだんに利用して「オブジェクト指向でなく」書いていますね。
各々のコンテナやアルゴリズムはできるだけ独立で直交するように設計されています。
# STLをUMLで再設計してみようとすれば如何にSTLがオブジェクト指向でないかが分かります
Best regards, でぃーすけ
Re: (スコア:0)
>オブジェクト指向でプログラミングしなければならないかどうかは言語に依存するものではないでしょう。
「郷に入りては郷に従え」って言葉がありまして。IOCCC が開催されることとなったきっかけ [kaimei.org]は御存知?
その言語にあわない流儀を用いてコーディングするなら最初からその言語を使うな、というお話。仲間内だけでやるならともかく外に出したら困ることになりますよ、と。
# そのきっかけを忘れてアホ実装したのが Boost の lambda だったりするわけだが、何故か一部でもてはやされていて困る。
オブジェクト指向がしっくりこないなら、オブジェクト指向ではない言語を使って作れば良いだけです。
ですから私の意見としては NG 。
だいたい、履歴書にコーディング経験C++10年、C#5年なんて書いていてあんなコードしか書けないのがいたら詐欺レベルですよね。
Re:質問が間違いですね (スコア:1)
逆です。例えば「作成するべき対象ソフトウェアがオブジェクト指向であるべきではない」が、「言語Xがオブジェクト指向で書くべき言語」であるとすれば、「言語X」の方が外されるべきな訳です。すなわち「何を作りたいか」の方が「言語」よりも「偉い」のです。
> IOCCC が開催されることとなったきっかけは御存知?
知りませんが、私はIOCCCのワンライナーなら普通に読めますよ。IOCCが何かを皮肉っているのかも知りませんが私には通用しません。
> その言語にあわない流儀を用いてコーディングするなら最初からその言語を使うな、というお話。
上記の意味を踏まえているのであればこれには同意します。
> Boost の lambda
あれこそC++らしいと思うのですが。C++と言うのは様々な異種の要望を、それらが互いに相反する性質のものであっても構わず、できるだけ沢山取り入れて「何でも出来る」ようにした言語である、と考えています。その「何でもできる」の「何でも」の一つの究極の形がlambdaである、と。
> オブジェクト指向がしっくりこないなら、オブジェクト指向ではない言語を使って作れば良いだけです。
違いますね。開発者がオブジェクト指向がしっくりくるかどうかは問題ではなく、作るべきものがオブジェクト指向にマッチしているかどうかが問題。
そこで作るソフトウェアがオブジェクト指向で作るべきであれば、「オブジェクト指向がしっくりこないと言う、件の開発者」は用無しです。
「オブジェクト指向ではない言語」で開発したところで問題は解決しません。
> だいたい、履歴書にコーディング経験C++10年、C#5年なんて書いていてあんなコードしか書けないのがいたら詐欺レベルですよね。
良く分かりませんが、オブジェクト指向で設計した経験がないと、C++のコーディングを何年やっても「あんなコード」なんじゃないですか?
私なら自分のresumeには必ず「クラスの設計」の経験を挙げますが。プログラミングパラダイムなんて年数の問題じゃないですよ。
Best regards, でぃーすけ
Re: (スコア:0)
あなたの頭の中ではオブジェクト指向とクラスが不可分なようですし。
オブジェクト指向分析設計したものはオブジェクト指向(言語)で実装するのが最適か?というと必ずしもそうではなく、現実には、オブジェクト指向で設計しAdaなどで手続的に実装といった話はごろごろしていましたよ。
Re: (スコア:0)
私も元AC氏とだいたい同意見で、なんであれ共有されている流儀に反するような書き方はするな、です。NGなのは言語じゃなくて人の問題。