結局OOpが役に立たないのはなぜ?
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2010/04/14(水) 01:14:080809デフォルトの名無しさん
2010/09/04(土) 15:36:03>>808みたいにすればいいわけだし
もしもCにプリプロセッサが無かったら
開発支援ツールがもっと便利になっていたのは間違いない
0810デフォルトの名無しさん
2010/09/04(土) 16:40:280811デフォルトの名無しさん
2010/09/04(土) 19:19:250812デフォルトの名無しさん
2010/09/04(土) 19:43:58言語自体が死んでる
0813デフォルトの名無しさん
2010/09/04(土) 19:58:59日常的に使ってる会社もあったりするんだな
java より開発効率いいし…
0814デフォルトの名無しさん
2010/09/05(日) 00:10:180815デフォルトの名無しさん
2010/09/05(日) 03:39:550816デフォルトの名無しさん
2010/09/05(日) 18:26:55ソースファイルが500MBくらいの巨大な一個のファイルに収まってるんですね
0817デフォルトの名無しさん
2010/09/05(日) 18:57:23?
0818デフォルトの名無しさん
2010/09/05(日) 19:27:190819デフォルトの名無しさん
2010/09/05(日) 19:47:390820デフォルトの名無しさん
2010/09/05(日) 20:05:460821デフォルトの名無しさん
2010/09/05(日) 20:10:150822デフォルトの名無しさん
2010/09/05(日) 20:33:410823デフォルトの名無しさん
2010/09/05(日) 21:04:15じゃないことに気が付けよ
最近の言語には package とか namespase とか…
0824デフォルトの名無しさん
2010/09/05(日) 21:11:340825デフォルトの名無しさん
2010/09/05(日) 21:20:15みたいなのもありだな
0826デフォルトの名無しさん
2010/09/05(日) 21:40:060827デフォルトの名無しさん
2010/09/05(日) 21:49:37ヘッダで丸見えとかどうでもいいんだよ。
0828デフォルトの名無しさん
2010/09/05(日) 23:17:48意味不明。
コンパイラがファイルを跨いでシンボルを検索しないCの仕様が糞だとは思うように
なるかもしれないが、そんな風に思わない。
そもそも「ヘッダファイル」なんて意味不明な呼び名になってるから今の話の流れみたいな訳の分からん
勘違いをする奴が出てくるんだろうな。
実態はただのアセンブラの「インクルード(included)ファイル」まんまなんだから
素直にそう呼ぶべきだったんだと思う。
0829デフォルトの名無しさん
2010/09/05(日) 23:37:54その言語にはその言語のマナーがあるわけで
他の言語での自然さとかは関係ないでしょ
C++での例外は、templateを書くケース
0830デフォルトの名無しさん
2010/09/06(月) 04:05:200831デフォルトの名無しさん
2010/09/06(月) 06:27:52おまえら、ほんとにJavaとC++の両方使えるのか?
0832デフォルトの名無しさん
2010/09/06(月) 06:46:57とかしてそう
0833デフォルトの名無しさん
2010/09/06(月) 19:12:53プリプロセスなんぞ、各個人/プロジェクトで好きにすりゃいいじゃん。
で、俺は思うんだけど、「オブジェクト指向」って、なんで、オブジェクトを指向するの?
その手の、「物/対象」を指向する戦略は、プログラミング以外の分野でことごとく失敗してきてるんだけど。
ちゃんと歴史学んだ?世の中見てるの?
他所で失敗した考え方を、なぜまたプログラミングの分野に適応して、まーた失敗を繰り返したいの?
社会学ではどうだった?
「人」(⇔社会)を中心とした考え方って言ったら、共産主義やら左翼やら民主党のばら撒き政策やら、
目先の利益だけを見た短絡的な個人主義の考え方で、こんなの上手くいくわけねーって分かりきってるだろ。
歴史が散々証明してきたことだろ。
今21世紀だよ。本当にこんな赤い考え方で上手くいくと思ってるわけ?どっちの船に乗る?
嘘だと思ってる?回り見渡してみろよ。OOPに取り付かれてしまって屍と化した奴の名前を自分の中で挙げてみ。
どうだ?アランケイとかRubyの中の人とかεπιστημηとか、頭逝っちゃってる率高すぎだろ。
C言語のそれと比べてどう思う?
は ・ や ・ く ・ き ・ づ ・ け
手遅れになっても知らんぞ(べジータAA ry
0834デフォルトの名無しさん
2010/09/06(月) 19:17:530835デフォルトの名無しさん
2010/09/06(月) 19:22:030836デフォルトの名無しさん
2010/09/06(月) 20:13:45なんか君って痛い人みたいね
頭逝っちゃってるのはお前さんだろってw
ちなみに、「オブジェクト指向」的な発想で設計されているものは世の中にたくさんある。
君が気がついてないだけw
0837デフォルトの名無しさん
2010/09/06(月) 21:04:570838デフォルトの名無しさん
2010/09/06(月) 21:19:410839デフォルトの名無しさん
2010/09/06(月) 21:23:00君が「オブジェクト指向」をどう定義しているかわからんので、
その点についてはノーコメントだが、
共産主義を個人主義の考え方とみなしているところだけ見ても
社会学も歴史学もたいして学んでいないことがわかる。
あれほど全体主義的な考え方はないことは、
これまでの共産主義国家をみれば明らか。
マルクスからして「類的存在」としての人間しか考慮しておらず、
それが共産主義の間違いの大本の原因になっている。
0840デフォルトの名無しさん
2010/09/06(月) 21:24:07OOPを恨みだしたように見える。
0841デフォルトの名無しさん
2010/09/07(火) 00:11:50いまんとこそれにある程度成功してるのがOOPってだけ
0842デフォルトの名無しさん
2010/09/07(火) 00:14:320843デフォルトの名無しさん
2010/09/07(火) 01:04:18機能を制限してどうするの。
そんな考え方は概論としても間違ってる。
メンバを隠蔽するのは、別に機能を制限するためじゃなくて「操作する必用がない機能」
をマスクすることで「操作する必用がある機能」を明確にし、複雑性を縮減するため。
外食屋のシステム(客は直接厨房に細かい注文を出したりしない)を「機能の制限」
と考える奴は普通はいない。
だって、厨房の中の誰にどんな指示を出せばいいか知らなくても飯が食えるようにするために、
注文取りのお姉さんとだけコミュニケーションすればいいシステムにしてるんだから。
0844デフォルトの名無しさん
2010/09/07(火) 06:28:03言葉遊びして何か楽しいの?
相手の意図を汲まずにくだらない上げ足しかとれないようならレスなんて書くなと
0845デフォルトの名無しさん
2010/09/07(火) 06:58:56外食屋のシステムで動物園やろうと考える奴はいない。(動物を飼う機能はいらない)
そして「何でも」クラスは設計崩壊の元、機能を制限しろ、一つの仕事に集中させろ。
0846デフォルトの名無しさん
2010/09/07(火) 07:05:050847デフォルトの名無しさん
2010/09/07(火) 07:18:36寿司屋クラスを継承して魚飼えるようにして「機能の制限」を無かったことにするのがダメって事じゃね
0848デフォルトの名無しさん
2010/09/07(火) 08:01:20継承より委譲。
0849デフォルトの名無しさん
2010/09/07(火) 08:20:12リアルなら「あれもこれも」はアリだが、プログラムの世界としては、あるオブジェクトの役割は
常に一つであるべき。単一責任原則。
0850デフォルトの名無しさん
2010/09/07(火) 17:50:29気になってたことが解決した
ありがとう
0851デフォルトの名無しさん
2010/09/07(火) 19:46:59派生クラスのDogとCatがbarkでワンとニャーと表示する。
なんか、そういう説明がダメってよく聞くけど
これってどこがダメなの?
0852デフォルトの名無しさん
2010/09/07(火) 19:48:04言葉遊びでも揚げ足取りでもない。
そもそも隠蔽はOOPの概念じゃないがまあそれはいいとして、
プログラミングの世界の「隠蔽」を機能の制限という捉え方は普通はしない。
0853デフォルトの名無しさん
2010/09/07(火) 19:56:230854デフォルトの名無しさん
2010/09/07(火) 20:01:09馬鹿じゃないのか
0855デフォルトの名無しさん
2010/09/07(火) 20:11:17それクラスベースOOで多態の説明だろ。
てかOO一機能の多態しか説明していない。
この説明がダメではなく、これがOOだとおもってるやつがダメ。
0856デフォルトの名無しさん
2010/09/07(火) 20:42:48http://itpro.nikkeibp.co.jp/article/COLUMN/20060921/248617/
0857デフォルトの名無しさん
2010/09/07(火) 20:46:24is-a関係/has-a関係だとかにも同じ指摘が成り立つのに
そういうのはとんと聞かないのが不思議です
0858デフォルトの名無しさん
2010/09/07(火) 20:51:25実装クラスからインタフェースを切り出して、必要な機能だけを公開するのは、
APIを提供する側から見れば、
あるいは、あるインタフェースとしてAPIから提供されているオブジェクトが、
実際にはより多くの機能を持っている実装クラスであることを知っている
ユーザ側から見れば、「(本来あった)機能の制限」と見ることもできるでしょ。
別に>>843で言ってることも間違ってるわけじゃない。同じことを別の側面から見てるだけ。
0859デフォルトの名無しさん
2010/09/07(火) 20:56:20..',||i }i | ;,〃,,
.}.|||| | ! l-'~、ミ
. / \
/ Z-666 .|
../ | 、__人_从_人__/し、_人_入
| .) ( .| 、_)
.|.-=・‐. ‐=・=- /⌒i _) 日本人は消毒だ〜っ!!
.| 'ー .ノ 'ー-‐' ).| 、_)
| ノ(、_,、_)\ ノ '´⌒V^'^Y⌒V^V⌒W^Y⌒
|. ___ \ |_
.| くェェュュゝ /|:_
ヽ ー--‐ //::=三=-;;;;;;;;;'' :::::::::::
0860デフォルトの名無しさん
2010/09/07(火) 21:06:320861デフォルトの名無しさん
2010/09/07(火) 21:27:31お前らどうでもいいことばっかし話し合ってないで、
どうして、「オブジェクト」を「指向」する必要があるのか考えろって。
オブジェクト指向ってのは、宗教の流派みたいなもんで、いろんな人がいろんな適当なことを言うのな。
(色んな人が自分流の適当なこと吹きまわることが可能となってしまう「土壌」の、
その「土壌」そのものの、そんな土壌の原因を追求することも大事なんだが、
話が難しいのでとりあえず置いとく)
でも、どんな流派だろうと、オブジェクト指向と言うからには、
「オブジェクト」を「指向」する、これだけは揺ぎ無いんだろ。
なんで「オブジェクト」を「指向」する必要があるんだ?
0862デフォルトの名無しさん
2010/09/07(火) 21:30:360863デフォルトの名無しさん
2010/09/07(火) 21:37:50別にない
よく考えるとそっからして意味不明な設計手法といわざるをえない
まあ、百歩譲って考えやすいからってのと
一番はじめはシミュレーションのためのもんだったからオブジェクト単位にうまく
動作が記述できる言語がほしかったんじゃないかと・・・
0864デフォルトの名無しさん
2010/09/07(火) 21:43:48object-orientedは、過去分詞の形容詞的用法で主語を修飾するものだ。
あとは分かるな。。
0865864
2010/09/07(火) 21:55:59修飾するのは名詞だろうが。。畜生…!
0866デフォルトの名無しさん
2010/09/07(火) 22:05:100867デフォルトの名無しさん
2010/09/07(火) 22:13:17どういうこっちゃ。
object oriented → オブジェクトに関心を向けた、オブジェクトを指向する。
object oriented people → オブジェクト主義の人々。
どっちにしろ、オブジェクトをどうにかこうにか発想ってことだろう。
でも、どう考えたって、プログラムで一番大事なのは、制御なのに。
制御が、関数が、データ同士の関係を定義して、それで、機能がもたらされるのに。
だからわざわざfunctionって名前になってるのによー。関数はデータ同士の関係を定義したもので、同時に機能でもあるんだよ。
俺も百歩譲って、「機能オブジェクト指向」って名前だったらまだ納得するかなー。
なんでオブジェクトをどうにかこうにかって話になるんだろう。
物事逆から考えてるよ。こんなのリバースだよ。
逆立ち人間の、ルサンチマンの、奴隷根性の、逆恨みだよ。変だよ。
0868デフォルトの名無しさん
2010/09/07(火) 22:18:550869デフォルトの名無しさん
2010/09/07(火) 22:30:040870デフォルトの名無しさん
2010/09/07(火) 22:36:53これ重要だよな。
俺らは大概別に何かをシミュレーションしたいわけじゃねーんだよ。お目当ての機能が実装したいだけなんだよ。
なんで、シミュレーションの結果が目的の機能になるように、各オブジェクトの具合を調節するような、
遠回りで無駄な設計手法を取らなきゃなんねーんだよ。
わざと仕事増やしたいのか?まーそれはあるわな。
0871デフォルトの名無しさん
2010/09/07(火) 22:54:25単に大規模化しても複雑なバグを生みにくくする仕組みとしてOOPが使えるということだ
0872デフォルトの名無しさん
2010/09/07(火) 23:00:59オブジェクト指向の実現が必ずしもソフト開発にとっていいってわけではないよね
この初っ端のところが実はボケてるんだよね
誰もこれが結びついていそうでいないことがわかってない
0873デフォルトの名無しさん
2010/09/07(火) 23:25:02とりあえずシュミレーション云々は関係ないから。
とりあえずクラスベースのオブジェクト指向の有り難味を知りたいなら、
複素数とかベクトルとか分数みたいなデータ構造とその操作を
(1) 構造体 + 関数
(2) クラス
で書いてみればいい。
逆に言えばオブジェクト指向なんて本質的にはそんな程度のもので、別に難しくもなんともない。
ここでシミュレーションがどうのとか無駄だの遠回りだとか訳のわかんないこと言ってる奴は
その程度のコードも書けないのは間違いない。
そりゃOOPが糞なんじゃなくて、お前さんの脳が糞なの悪いけど。
0874デフォルトの名無しさん
2010/09/07(火) 23:27:080875デフォルトの名無しさん
2010/09/07(火) 23:28:450876デフォルトの名無しさん
2010/09/07(火) 23:35:51http://ja.wikipedia.org/wiki/Simula
なんかお前出だしから嘘っ八だし信用できないわ
0877デフォルトの名無しさん
2010/09/07(火) 23:47:07馬鹿か。
OOPの出自がシミュレーションであろうが無かろうが、
別にOOPはシミュレーションとだけ親和性が高いわけじゃないの。
だから>>870みたいなのはナンセンス。
それとも何か、電算機の歴史は確か砲弾の弾道計算から始まってるはずだが、
「コンピュータは弾道計算にしか使えねー」とか言うのかねお前さんは。
まあむしろ言いそうな勢いだw
本物の白痴だな
0878デフォルトの名無しさん
2010/09/07(火) 23:48:42これ都市伝説だろ
0879デフォルトの名無しさん
2010/09/07(火) 23:48:50どこかにそのあたり詳しく説明してるとこが合ったんだが、ブックマークに残ってないな。
0880デフォルトの名無しさん
2010/09/07(火) 23:52:46現状OOPより依存関係の整理しやすい物がない
0881デフォルトの名無しさん
2010/09/07(火) 23:57:25シミュレーションと勘違いしたんじゃね?
0882デフォルトの名無しさん
2010/09/08(水) 00:00:50間違いじゃねーし
0883デフォルトの名無しさん
2010/09/08(水) 00:03:23何が言いたいのかサッパリわからない
作った目的がシミュの実現だったのに何を言ってるのかと
0884デフォルトの名無しさん
2010/09/08(水) 00:04:500885デフォルトの名無しさん
2010/09/08(水) 00:05:19ひとつのクラスの機能を制限するという点に注目して機能の制限と書いたのでしょうけど
機能の分割と書けば意図する所を第三者に誤解されなかったと思います。
>>841は複雑な物は単純な物に分割するという分割統治の話ですね。
>>870
その方がより大規模なソフトウェアを作れるからです。
人間は複雑過ぎる物は階層化して単純な物の組み合わせにしないと扱えません。
原理的にはgoto文プログラミングでどんなソフトウェアも作れます。
しかしコード行数が増えると処理フローが複雑になりすぎます。
構造化プログラミングならgoto文レベルの処理フローを書く必要はありません。
処理フローは階層化されて容易に理解できるようになります。
その結果、goto文プログラミングより大規模なソフトウェアを作れます。
非オブジェクト指向では複数の関数から参照するデータは関数とは独立して構築します。
しかしデータが大規模になるとデータ構造が複雑になりすぎます。
オブジェクト指向ならデータを処理と分離してデータだけでまとめる必要はありません。
オブジェクト内にデータ構造が隠蔽されて容易に操作できます。
その結果、非オブジェクト指向より大規模なソフトウェアを作れます。
0886デフォルトの名無しさん
2010/09/08(水) 00:07:47本当に>>870につけたレスなのかと
お前がいってる複雑なものを単純に云々は構造化手法の話じゃないか
0887デフォルトの名無しさん
2010/09/08(水) 00:08:40「オブジェクト指向なら」っていうのに違和感を感じる。
0888デフォルトの名無しさん
2010/09/08(水) 00:16:480889デフォルトの名無しさん
2010/09/08(水) 00:18:140890デフォルトの名無しさん
2010/09/08(水) 00:22:470891デフォルトの名無しさん
2010/09/08(水) 00:23:460892デフォルトの名無しさん
2010/09/08(水) 00:29:493番目の段落は構造化プログラミングの話ですが、
4番目の段落はオブジェクト指向の話ですよ。
構造化プログラミングが以前より大規模なソフトウェア作成のためであるように
オブジェクト指向もさらに大規模なソフトウェア作成のためだという事です。
>870
>なんで、シミュレーションの結果が目的の機能になるように、各オブジェクトの具合を調節するような、
>遠回りで無駄な設計手法を取らなきゃなんねーんだよ。
これに対して機能を実現する関数だけを実装するのではなく
関数とデータを組み合わせたオブジェクトを設計する理由を説明しました。
0893デフォルトの名無しさん
2010/09/08(水) 00:32:21隠蔽 モジュール化のパラダイム。オブジェクト指向に限らない
動的束縛 オブジェクト指向と関係してるが、静的束縛のほうが型安全で実行速度も速い
継承 クラスベースに固有の概念。プロトタイプベース涙目。LSPが満たせないのは明らか。後はダイヤモンド継承問題
多態性 クラスベースに固有の概念(とwikiにあるが本当か?)。プロトタイプベース涙目
メッセージパッシング プロトタイプベースに固有の概念。クラスベース涙目
デザパタ Lispでは23個のうち16個が空気。元々、こういう個別技術は研究対象にすらならなかった
「もの中心」といえばデータ指向
0894デフォルトの名無しさん
2010/09/08(水) 00:40:58完全にOOPってのはこれから消えてくんじゃないかな
やっぱラムダ式とか便利だしもはや必須になりつつある
0895デフォルトの名無しさん
2010/09/08(水) 00:43:420896デフォルトの名無しさん
2010/09/08(水) 00:44:23問題は、その「大規模なソフトウェア」とやらが、目的の機能、顧客の要求に答えられるものになったかどうか、だ。
もちろん、がんばれば、どうにかなるよ。
でもしんどくね?
オブジェクト指向っていったらアレだろ?
複数のオブジェクトがメッセージという池の中で相互作用しあってどうのこうの。
で、その相互作用の結果が目的の機能/要求を満たしてなきゃならんという遠回り。
俺はね、メッセージの池、それをね、機能って呼んでるの。
機能の池の中にオブジェクトやらデータやらが浮かんでて、
「機能がオブジェクトの性質を決める」
オブジェクトが自分自身の性質を決めるのではなく、
機能が、周りとの関係が、関数というある種のフィルタが、その物の性質を決める。
だってそうだろ、100円を100円たらしめてるのは、100円に100円の機能を持たせているのは、
100円自身ではなく、市場経済の「機能」だろ。100円単体では、それはただの金属の円盤にすぎん。
市場経済の機能が有って初めて100円は100円の意味が出る。
100円というオブジェクトを指向しても何の意味もない。
で、機能ってのは、英語でfunction、つまり関数だっていってるの。関数は何かと何かの関係を定義したもの。
オブジェクトに着眼しちゃいかん。オブジェクトを指向しちゃいかん。
大事なのは、オブジェクトとオブジェクトの間にある見えない何か。
OOな人はそれを「メッセージ」というが、それはおかしい。正しくは「機能/関係」と言うべきだ。
物事はメッセージで動いていない。機能で動いているんだ。
0897デフォルトの名無しさん
2010/09/08(水) 00:46:160898デフォルトの名無しさん
2010/09/08(水) 00:49:530899デフォルトの名無しさん
2010/09/08(水) 00:56:37それ以上のこと、オブジェクト同士のかかわりやら何やらには、めっぽう無力。
でもね、大事なのは何時でも「機能/他者との関係」なわけ。これはOOPでは解決しない。
そこに注力しなきゃならないのに、OOPに拘ってる意味はもう無くて、
それこそ、継承とか言い出したらもうドツボなんよ。
0900デフォルトの名無しさん
2010/09/08(水) 00:57:410901デフォルトの名無しさん
2010/09/08(水) 00:59:59やばい、俺が考えてたこととかなり同じだ
いや、自演じゃなくてマジで
俺はセッターゲッターすらも認めないけどな
0902デフォルトの名無しさん
2010/09/08(水) 01:00:210903デフォルトの名無しさん
2010/09/08(水) 01:12:23説明しているオブジェクト指向が80年代(日本では90年代半ばまで)の
古いオブジェクト指向に見えます。古いオブジェクト指向設計は確かに
現実世界で名前があるものをオブジェクト候補にする迂遠な物でした。
でも現代のオブジェクト指向設計では最初にユースケースを考えてから
それに必要なオブジェクトを割り出すので目的の実現に関係ない
オブジェクトは最初から出てきません。
ユースケース
http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9
0904デフォルトの名無しさん
2010/09/08(水) 01:15:480905デフォルトの名無しさん
2010/09/08(水) 01:27:23>オブジェクトは最初から出てきません。
「目的の実現に関係ないオブジェクトが出てくる」なんて、俺一言も書いてねーよ。
0906デフォルトの名無しさん
2010/09/08(水) 02:27:42オブジェクト指向にすると問題が発生するのではなく
オブジェクト指向で解決できない問題があるという話ですよね。
非オブジェクト指向でなければならない理由にはならないのでは?
実装継承がコードを理解しにくくする場合があるのは確かですが、
大変有用な情報隠蔽まで一緒に否定する必要はないでしょう。
>>905
ではオブジェクト指向設計でも非オブジェクト指向設計と同じく
必要な関数(メソッド)とデータ(フィールド)しか含まない
ソフトウェアを作成できると考えているんですね。
オブジェクト思考プログラミングの記述が遠回りだという事だけが
オブジェクト指向に否定的な理由なんですね。
あなたはグローバル変数よりローカル変数の方が理解も保守もしやすい
という事はおそらく納得しているはずです。
裸の関数とデータ構造より抽象データ型の方が理解も保守もしやすい
という事をなぜ無視するのでしょうか?
0907デフォルトの名無しさん
2010/09/08(水) 03:13:29>オブジェクト指向で解決できない問題があるという話ですよね。
>非オブジェクト指向でなければならない理由にはならないのでは?
オブジェクト指向で解決できない問題をなぜオブジェクト指向で解決しようとするのかい
0908デフォルトの名無しさん
2010/09/08(水) 06:25:42サブクラス化が進んでいくと見通しが悪くなるだけなのも納得しているはずです。
結局必要なのはテンプレートだけでオブジェクト指向なんて糞の役にも立たないことをなぜ無視するのでしょうか?
レス数が900を超えています。1000を超えると表示できなくなるよ。