オブジェクト指向ー詐欺師の時代の終焉。
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001逝って良しの1
NGNG2CHでも、大分前からOOの有用性については現場レベルから疑問視
する声が上がっていました。
かような擬似技術が今までまかり通っていた原因は供給側、つまり
日経提灯やセミナー屋にももちろんあるでしょうが、需要側にも
擬似技術を受け入れる下地があったと思われます。
何時の時代にも仕事の出来ない、自分の能力の限界に気付いてしまった
若いPGがいます。
今のままでは決してベテラン技術者に追い付けない事を仕事で
実感している連中です。
彼らの逆転のチャンスはなんでしょうか?
社会の混乱を醸成し、混乱に乗じた革命。これしかありません。
OOの出現はそんな彼らの需要にぴったりのモノでした。
従来からある用語を言い換えただけのインチキ性。
既存の技術者のスタイルを否定する構造。
反対者や疑問を抱く者には「新技術について行けない人」というレッテル
を貼るだけで追い出せるのですから、詐欺師にとってはこんなオイシイ
仕掛けはありません。
しかし、もう結果は出始めています。
革命ごっこはもう終わり。
まだ詐欺師に占拠されていない会社においては、一刻も早くこうした
擬似技術者の駆逐による経営の健全化を強く望むものです。
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGワタクシめはソフトウェア業界における逆賊ですか。
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGまぁ。。。いつかは終焉を迎えるだろ<オブジェクト指向
そして10年もすれば新しいパラダイムが生まれることだろう。
>従来からある用語を言い換えただけのインチキ性。
制御文の構造化アプローチがgotoの悪用を防ぐために
導入されたのと同様、データー中心アプローチが進化
しただけで「優秀な」技術者にとっては何の新規性も
無いはずだ。
>既存の技術者のスタイルを否定する構造。
オブジェクト指向は、お前の従来のスタイルを否定するの
か?ということは、もともとデータ中心アプローチなんて
意識してこなかったんだろ?ゴミプログラマーめ。
>反対者や疑問を抱く者には「新技術について行けない人」というレッテル
>を貼るだけで追い出せるのですから、詐欺師にとってはこんなオイシイ
>仕掛けはありません。
別に「新技術について行けない人」というレッテルを貼っ
てるわけではない。
従来から存在する堅牢なプログラムを開発する手法に疎い、
それを判ってないあんたと一緒に仕事したくないと言ってる
だけ?判るか言ってることが?え?
0006デフォルトの名無しさん
NGNGC言語だけには戻りたくないもんだ。
2chでやるより会社で反革命運動したほうがええんのちゃう?>1のジジイ
0007名無しさん
NGNGなんか信じられないんだけど。
つーかそんなやつが構造化プログラミングをちゃんとできるとは思えん。
00086
NGNGものだが、プログラマーの世界では全く逆なのがおもしろいな。
ジジイほど己の力を過信し、学校の窓ガラスならぬメモリを破壊しま
くる(わら
というわけで、1のタイプの人間を珍と呼んでいいですか?
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG使わん!とわめきながら、if-elseを多重ネストした下手糞な
例外処理書いてそうで怖いです。>オブジェクト指向わからん馬鹿ども
0011デフォルトの名無しさん
NGNGの○○ってのは、オーオーではなくて、なにか2文字当てはめてください
ってことなんじゃないの?ワザワザ全角にしてるんだし。
あてはめてあげようよ。
まぁ>>1は盗んだバイクで走り出してなさいってこった。
0012デフォルトの名無しさん
NGNG>>1
>従来からある用語を言い換えただけのインチキ性。
暗黙知の形式知化って知ってる?
0013デフォルトの名無しさん
NGNGいつ出たのだ?
0014デフォルトの名無しさん
NGNGやっぱりオブジェクト指向は幻想でした。
http://piza2.2ch.net/test/read.cgi/tech/1003815855/
0016デフォルトの名無しさん
NGNG吉牛だって80年前からあったなんて誰もしらなかったぞ?
もう無意味な「言葉遊び」は止めようね。>ALL
0017デフォルトの名無しさん
NGNGアメリカのようにジジイ爆撃してばかりだとテロされるからな。
0018デフォルトの名無しさん
NGNGwarata
0019デフォルトの名無しさん
NGNG=============== 開 始 ===============
0020デフォルトの名無しさん
NGNGまあ、1が「新技術」などとのたまう背景もあるわけで。
OOの周辺技術が盛んに研究されてるからね。
オブジェクト指向に関する新技術は今もたくさん出現していて、
その多くは使い物にならないが、
オブジェクト指向という基本概念自体の有用性は
オブジェクト指向をサポートした言語(C++/Javaなど)が主流になっている事実からも否定できない。
と言っておこう。
0021デフォルトの名無しさん
NGNGデーターフロー分析は構造化アプローチと親和性あるし。
要するに極度に抽象化された仕様を実装するためには高度な具体化が必要で、
そこまでやるのにOOの持つボトルネックが却って仇になるケースが現場では
起こりがちということなんだろうな。
ようは、手法なんてツールなんだから必要な物を使えばよし。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGってなんですか?なんで語尾を延ばす必要があるんですか?
0026デフォルトの名無しさん
NGNGかなり有用なのに。
0027親切な人
NGNG読んでおきなさいってこった。
0028デフォルトの名無しさん
NGNG相対性理論はニュートン力学(過去の実績)を否定しない。
適用限界(あらたな需要)が生んだまで。
今日日へたすりゃ小学生でもわかる理屈です。
0029デフォルトの名無しさん
NGNG================== ド終了 ====================
0030逝って良しの1
NGNG0031デフォルトの名無しさん
NGNG奴、などを積極的に採用していうことにより君の時代がくるかもしれん。
クズ連中と一緒に地獄の行進を。アーメン。
0032お胸おっぱい
NGNG0033無理やり七資産
NGNG見たことない?
GUIと切り離せないクラスライブラリのせいで
デスクトップ開かないと動作しないサーバーとかあった気が。
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG「OOができない人間は、情熱がない、根性がない」
OOが普及しない理由は、体育会系のプログラマにはそう写るんだね。
0036デフォルトの名無しさん
NGNGそれはそのフレームワークのアーキテクチャが悪いのであって、
アーキテクチャのアーキテクチャ(メタアーキテクチャとでもいうか)、
フレームワークのフレームワーク(メタフレームワークとでもいうか)、であるOOには
あんまり責任はないと思うが。
>>35
どんなアーキテクチャやメタアーキテクチャでも、
「それを理解する"能力"が無い」か、
アーキテクチャのほうに「理解される"能力"が無い」
つまりアーキテクチャのほうがドキュだ(w)ってのか、
どっちかに属すると思われ。
0037_
NGNGソースを書く段階にに至れない。
プロの方々は違うのですか?
0038デフォルトの名無しさん
NGNGそう、OOが良い悪いっていうよりも、
既存のフレームワークが肌に合わない。
TCP/IPで通信したいだけなのに、
ウインドウイベントを処理しないと動作しない
通信ライブラリとか、依存関係に納得できない。
そこら辺だな。OO自体を否定する気はないね。
0039デフォルトの名無しさん
NGNGプログラミングとその前の設計(とその前の解析)は別。
ユースケースから勉強城屋。
0040デフォルトの名無しさん
NGNGすばらしい煽りだ。
0041デフォルトの名無しさん
NGNGお決まりのパターンとして、そこのメインテーマを無視し
「おぶじぇくと指向とはなんぞや」を議論し出すから、なんとなく
イメージ悪い(藁
ま、今は普通に仕事で使うから、別段の思い入れは無いけど。
0042デフォルトの名無しさん
NGNGhttp://piza2.2ch.net/test/read.cgi/tech/1003924678/1-5
>なにそれ?
>必要な時に覚えればいいじゃん?
と仰っています。じゃぁOO言語なにかひとつ覚えろよゴラー!!と
思ったんは俺だけじゃあるまいsage。
0043デフォルトの名無しさん
NGNG覚えられないからダメといってませーん。
役に立たないからダメといってまーす。
sage
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG覚えられないから役に立たないんだよ・・
0046デフォルトの名無しさん
NGNGそんなレベルの低い話をしてるのでは無いだろ ふぅ・・・・
0047デフォルトの名無しさん
NGNG使い所もわからないんだろ?
巷で箸が流行り出したから箸でスープを食べてみたら
全然効率的じゃなかった。そういってるように見える。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG+ + \\ 厨房合戦ワッショイ!!/+
+
. + /■\ /■\ /■\ +
(´∀`∩ (´∀`∩) (´∀`)
+ (((つ ノ (つ 丿 (つ つ )) +
ヽ ( ノ ( ヽノ ) ))
(_)し' し(_) (_)_)
0051デフォルトの名無しさん
NGNGやっぱりオブジェクト指向は幻想でした。
http://piza2.2ch.net/test/read.cgi/tech/1003815855/
0052デフォルトの名無しさん
NGNG>>49
生活がかかってんの!
0053デフォルトの名無しさん
NGNGそのうちOO採用会社でリストラ始まるぞ。
それでもOOマンセーしてるつもりかねー。
0054デフォルトの名無しさん
NGNG1はオブジェクト指向技術を何か一つでも体得できたのかね?
いや、マジで。oo云々以前に、そもそも進歩の無い奴はダメだと思うんだが。
ひょっとして、このスレで一番能力が低いのって・・・
1よ、君の血の滲むようなスレ立て・煽りカキコの努力の跡を、
私達は決して忘れはしない。私達は前へ進む。さようなら、1よ
0055デフォルトの名無しさん
NGNG砂漠で見ているオアシスの蜃気楼と同じだ。
そっちへ行ってはいけない。
0056デフォルトの名無しさん
NGNG生産性の低下は進歩ではなく退化だ。と付け加えておこう。
0057逝って良しの1
NGNG0058デフォルトの名無しさん
NGNGはやく蜃気楼見てるのは自分の方だって気づけよ・・・
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG統計でウソをつく方法
http://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/books/4061177206/250-3156298-7668241
この本でも読んでしっかり勉強しろよ(w
0062デフォルトの名無しさん
NGNG死体画像。
0063デフォルトの名無しさん
NGNGアマゾンが死体なわけないだろ。
0064デフォルトの名無しさん
NGNGいや、アマゾン川のドザえもんだよ。≠ドラえもん
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGでももう九尾吊って氏んでね。
0067デフォルトの名無しさん
NGNGアマゾンにはピラニアがいるだろうが。死体画像の可能性大だぞ。
0068速報板同一名スレッドからのこぴぺ
NGNGオブジェクト指向って上級者のテクニックを何も知らない初心者・未経験者におしえるようなものだと思う。
何年か開発を経験した後にオブジェクト指向の本を読み直すと、非常に参考になることが多い。
とくにパターンの本は参考になる。
51 : :01/10/26 23:44 ID:rXMlpsSM
仕事してなくても帰りは遅い、生産性の低い>>49
52 : :01/10/26 23:48 ID:3B2NF3JY
東洋思想でオブジェクト指向を語る
「タオ・オブ・オブジェクト」って、オブジェクト指向の世界では
名著と言われてるんだけど、非常に胡散臭いと思うのは俺だけ?
53 :にょ :01/10/26 23:49 ID:cekAAgue
>>44
君は、小規模な開発しかしたことないね。(まあ、わしもだけど・・・)
1日〜数日で中規模なソフトを作ろうといろいろ工夫していると、いつのまにかオブジェクト指向の考えに近づいていることが多い。
プログラムしかしないプログラマはむしろ駄目かも・・・。(わしは製品開発にプログラムを使用しているのであって、本業はプログラマとはいえない)
54 : :01/10/26 23:49 ID:APQkMxU/
オブジェクト志向は確かに上司を不機嫌にさせて遊ぶのにも使えるね。
55 : :01/10/26 23:50 ID:Vi0KjFnP
>>25
逆。
1の文章はプログラム板からのコピペだよ。
56 :a :01/10/27 00:00 ID:ahANcsYi
オブジェクト指向というと、オブジェクト指向をサポートした言語、
たとえばC++やJavaを思い浮かべるかも知れないが、サポートして
いないC言語などでもオブジェクト指向を取り入れた設計は可能で、
実際にOSなんかはそのように作ってある。つまり、OSというブラック
ボックスにメッセージを送ると、OSはそれに従って動くということだ。
Windows でも MS-DOS でも Linux でもこれは変わらない。
57 :a :01/10/27 00:01 ID:ahANcsYi
>>55
そうか。じゃああとでそっちに行こうっと。
ここじゃ場違いだよな。
0069デフォルトの名無しさん
NGNGたしかにデバドラとかUnixのVFSとかはオブジェクト指向っぽいと
言えなくもないが、ただのシステムコールをメッセージパッシング
と呼ぶのは牽強付会というものだろう。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGオブジェクト指向的?な設計がCでもできるということと、
継承や多態などのオブジェクト指向の強力な概念をOOPL
を使って駆使することの間には相当な開きがあると思われ。
0072デフォルトの名無しさん
NGNG#includeがあります。
0073デフォルトの名無しさん
NGNGハァ?
007473
NGNG>>72
にハァァ?
……ハァハァ………。
0075デフォルトの名無しさん
NGNG> を使って駆使することの間には相当な開きがあると思われ。
おまえにとってのオブジェクト指向とは、
継承や多態の事らしいな。
技術を駆使してると勘違いしたプログラムほど、
はた迷惑な物はない。
1人で趣味でやってくれ。
0076デフォルトの名無しさん
NGNGオッサンでてきたね。最近どうやって召還したらいいかわかってきたよ。(w
ちなみにOOPLつかえば継承も多態も言語機能の一つに過ぎず、
『技術を駆使』してるつもりがなくても便利に使えるよな。
で、オッサンはCで関数ポインタや『ハンドル』駆使した再利用可能なライブラリを
日頃作り続けてるンですのん?
0077デフォルトの名無しさん
NGNGがはははははは ハァ...詩嚢...
0078デフォルトの名無しさん
NGNG00791
NGNG0080デフォルトの名無しさん
NGNGで相手の人物像を作り上げ、自分で作った妄想に対して批判する。その
パラノイア的思考パターンを、自分では論理的だと信じている。どこか
のデザパタに、狂った思考パターンが存在するのか?
00811
NGNGちなみに俺はJava用のサブルーチンライブラリを構築中だ。藁
0082デフォルトの名無しさん
NGNG> サブルーチンライブラリ
ださっ!
00831
NGNG笑うだろww
0084デフォルトの名無しさん
NGNG前者の方が少なくともカプセル化の度合いは強いと思うけど・・
0085デフォルトの名無しさん
NGNG多態と継承はどうすんのさ。
0086名無しさん
NGNGどうでもいいけど、ここ(2chプロ�c板)ってレベル低すぎ。
考え方も古いし視野も狭い。得るもの無し。
0087デフォルトの名無しさん
NGNGオマエモナー
0088名無しさん
NGNG0089名無しさん
NGNGこわいこわい。
0090デフォルトの名無しさん
NGNG0091ナナシ
NGNGどれの話をしているのだろう?
0092
NGNGニュー速版のほうがレベル高いぞ(w
0093デフォルトの名無しさん
NGNG上流工程でのOOAも批判を見たいところ。
OOAの本を買ってみたんだけど、具体的なハナシに入る前に
終わっていて、セミナーの紹介があった。商売気がありすぎ。
0094デフォルトの名無しさん
NGNG新思想においては生産性など無視して良いのですね。
0095デフォルトの名無しさん
NGNG俺も Tao of object は迷著(!名著)だと思う。
話が抽象的すぎて何を言いたいのか具体的でないし
OOやデザインパターンを理解した現時点で読めば
内容が浅薄すぎる。混乱ばかり招いて何の役にも立たなかったな。
0096デフォルトの名無しさん
NGNG確かだ・・・実世界で言ったら正気を疑われる。
0097デフォルトの名無しさん
NGNG組み込み系でアセンブラや C を駆使しているというならまだ分かるが。
0098ドキュソ
NGNG同じことをするために導入したんだろ。全部templateLibraryに置き換わった
理由じゃないか。たいていのC++OOPにゅーもんしょは宅建技能の通信講座みたいな
もんだよ。○洋せんせーマンセー。
0099デフォルトの名無しさん
NGNGhttp://news.2ch.net/test/read.cgi/news/1004087790/
0100デフォルトの名無しさん
NGNGOOとは関係ないけど、テンプレートはすごく便利だと思う・・・。
ばんばん使いまくっている。
0101デフォルトの名無しさん
NGNGつーか使ってない奴はアフォ
0102デフォルトの名無しさん
NGNGそれが何の役に立つのだろう?さらっと何事もなかったように
いろいろな技術を使っていくことのかっこよさに何故気づかないの
だろう?
0103デフォルトの名無しさん
NGNGライブラリを使うような層は滅多に触らない。
テンプレート使う奴は素人。
0104デフォルトの名無しさん
NGNGHA?
0105
NGNG0106イソダ
NGNG0107デフォルトの名無しさん
NGNGで、そういうの言い出したのは、カメラを受け入れられなかった人たち。
オブジェクト指向なんて、カメラやラジオのような当たり前の技術のひとつでしょ。
まだ、それを詐欺とか言ってるのは、まあ、あれだな、「俺は電話なんか使わんっ」
て言ってるGさんと同じだな。もう、今時、そんなのいないけどな。
ちなみに、カメラがあっても、使わなきゃいかんというもんでもない。
0109デフォルトの名無しさん
NGNG俺もコンテナ程度ならバリバリ使うよ
0110
NGNGなら、
テンプレートとか、継承とか、
そういう長所ごとにすすめてほしいもんだ。
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG上位層にてvector,map,set,listを使わない理由を述べよ
0113デフォルトの名無しさん
NGNG>>103は template を書かないと言ってるような…。
0114デフォルトの名無しさん
NGNGclass も書かないような使い方なら別だが。
VC++ などのコンパイラが力不足なので、言語仕様的に正しい
template メソッドがコンパイルできなかったりして鬱なことは
多々あるが
0115デフォルトの名無しさん
NGNGテンプレートはC++の高度なマクロにすぎない、とか言ってみる。
0116デフォルトの名無しさん
NGNGiteratorを使わずにかってに実装依存の領域にまで踏み込んで、
vectorの内部配列をいじったりしてるんだろ
0117デフォルトの名無しさん
NGNG言うのは自由だが、C のマクロと同等だと思ってるようなら出直したほうがいい。
0118デフォルトの名無しさん
NGNG現状ではまだ汎用性が疑問なんだけど。
0119デフォルトの名無しさん
NGNGCode Warriorはほぼ完璧だが
0120デフォルトの名無しさん
NGNG言って見たかっただけと思われ。
0121デフォルトの名無しさん
NGNGまだ、処理系によって不完全な部分がある。特に partial specialization や member template,
namespace がからむと厳しい。
とはいえ、問題部分を抽出して #ifdef で切り分ければ、そこそこ使えるレベルには達してる
処理系が多いと思われ。
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNGなぜきみ達はVBを批判するのですか?
0127デフォルトの名無しさん
NGNGデムパ?
0128デフォルトの名無しさん
NGNG「ほげ言語」のパラドックス
を読みましょう。
>誰であれ、プログラムについて考える時には自分が使うことになった言語に思考が支配されているから、その言語に満足してしまうんだ。
0129デフォルトの名無しさん
NGNG激しく同意。だから、プログラムしかしない技術者はプログラマとしての視野が狭いことが多いように思える。
0130デフォルトの名無しさん
NGNGそれはまた別の話。
0131デフォルトの名無しさん
NGNG回教は良いかと聞けば、
すばらしいと言うに決まっている。
批判なんかしたら、大変だよ。
聖書を読んでる人間でも同じ。
キリスト教のために、
過去に何万人死んでようが、
批判する人間は馬鹿にしか見えない。
コーランを読めば読むほど、
聖書を読めば読むほど、
教義の問題点が見えなくなっていく。
最後には、現実の生活のための教義ではなく、
教義そのもののために命までかける。
0132デフォルトの名無しさん
NGNGおなじみのトンデモネタに移行しそうですね
>>1
0133デフォルトの名無しさん
NGNG批判はトンデモに移行してからにしたら?
0134デフォルトの名無しさん
NGNGこのスレのレベル低すぎ。
0135デフォルトの名無しさん
NGNG読めなくても、レベル低くても食っていけるからなぁ(藁
0136デフォルトの名無しさん
NGNG>>128-131の意味がわかってないほどレベル低い奴は
君以外にいないだろうな。
0137デフォルトの名無しさん
NGNG各言語での個人的蓄積と学習コストを無視したlisp信者の戯言である。
マシン語を低レベル低レベルと連呼してるのにはむかつく。
0138デフォルトの名無しさん
NGNGジョークの判らない奴発見!
あれは
「XXを指向理解できない奴が居るとは・・・。
このスレのレベル低すぎ。」
のパロディー
0139デフォルトの名無しさん
NGNGlisp知らないとそう思うんだよね・・。
0140デフォルトの名無しさん
NGNGい。しかし教義がもたらす現実なら、一般人の方が冷静に判断できる
0141訂正
NGNGジョークの判らない奴発見!
あれは
「XXを理解できない奴が居るとは・・・。
このスレのレベル低すぎ。」
のパロディー
0142デフォルトの名無しさん
NGNG蓄積が増えて行けば生産性は高級言語と変わらなくなるんだよね。
実は言語の差などではなく、ライブラリの差だというのが
正解だと思う。
0143デフォルトの名無しさん
NGNGライブラリの豊富な言語が良い言語。
0144デフォルトの名無しさん
NGNG自分の知る言語が「ほげ」であるとして周りをみろ。
「ほげ」でばかりで思考するな、上も見ろってことだろう。
非OO言語だけの奴がOOが理解できるわけがない。
0145デフォルトの名無しさん
NGNGは提供していない。
よって言語移動やってコスト的に見合うのは蓄積のない新米PGか
蓄積できないアホPGだけということになる。
0146デフォルトの名無しさん
NGNGOOが非OOより上だと言ってるところが信者。
んでもって「向上心が無い」っつうんですか?
0147デフォルトの名無しさん
NGNGいや、
マシン語がアセンブリ言語より生産性が上がることは
絶対にない!
16進数でコーディング、命令増やすたびに分岐アドレス再計算
などやってられん。
0148デフォルトの名無しさん
NGNG言語なんかなんでもいいけど、糞Javaはライブラリ作るのに邪魔。
まあOOPLではC++が一番まともだな。Cでも書けるから 藁
0149デフォルトの名無しさん
NGNG理解できないオヤジっていう、妄想パターンもある。
0150デフォルトの名無しさん
NGNG丁度良い比較対象として
ゲームボーイ(アセンブラ)と
ゲームボーイアドバンス(C言語)
を揚げておこう。
カセットのハード原価なんか同じっぽいし。
市場価格の差が無ければ、生産性の差が無い証拠。
0151デフォルトの名無しさん
NGNGそんな奴はいない。せいぜいハンドアゼンブル止まり。
0152デフォルトの名無しさん
NGNGだってマシン語は言語じゃないし。
0153デフォルトの名無しさん
NGNG滑稽ですね。
0154デフォルトの名無しさん
NGNGいや、ハンドアセンブル無しでいきなり16進で入力してマシン語
組む奴も居なくは無い。
0155OO使い3年生
NGNG0156デフォルトの名無しさん
NGNGだからお前だけが「オブジェクトほげ」使ってるんじゃないんだよ。
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG長所が生きて、短所が障害にならない場所で、使えばよい。
アセンブラよりLispが優れているから、アセンブラはいらないとでもいうのか?
0159デフォルトの名無しさん
NGNGここで仮想的なプログラミング言語「ほげ」を使って私のポイントを説明しよう。
「ほげ」は抽象度のスペクトルのちょうど真中に位置するものとする。
最もパワフルな言語ではないけれど、Cobolや機械語よりはパワフルだ。
そして、仮想的な「ほげ」プログラマ氏は、Cobolも機械語も使わない。
もちろん機械語なんて使わない。あれはコンパイラのためのもんだ。
それにCobolだって、あれで何かをきちんと動かしたことがあるって人を知らないよ。
結局のところ、「ほげ」にある機能xが無いもんな。
このプログラマ氏がパワーのスペクトルを見下ろしている時、
彼にはそうしているという自覚がある。
「ほげ」よりも力の弱い言語は、明らかに力が弱い。
彼が慣れ親しんだ機能が無いからだ。しかし、このプログラマ氏が反対の方向に目を転じた時、
彼は自分が見上げているのだということに気付かないのだ。
彼が目にするのは、変てこりんな言語ばかり。
多分、それらは「ほげ」と同じくらいパワフルなんだろうけど、
どういうわけかふわふわしたおまけがいろいろついているんだ、
と思うだろう。彼にとっては「ほげ」で十分なのだ。
何故なら彼は「ほげ」で考えているから。
0160デフォルトの名無しさん
NGNG依存するところが多すぎて、スマートさが失われることが多いぞ。
0161デフォルトの名無しさん
NGNG失礼とは思うが、あえていわせてもらおう。間抜けすぎる。
君がキャッシュカードを使うとき、汎用機のコボルプログラムが動いている。
汎用機のない全国システムとか、作れると思うのか?
日経バイトでも読んで、そんな幻想を抱いたか?
適材適所という言葉を、君に捧げよう。
0162デフォルトの名無しさん
NGNGだからその文章は各言語PGの蓄積を無視してるんだって。
おまへは自分のライブラリを持ってなくて、プログラム組むたびに
1から全部コーディングするのか?
0163デフォルトの名無しさん
NGNGただ一つの概念で斬ろうとするから毎回こういった論争が起きるのでは・・・
0164デフォルトの名無しさん
NGNG>>128のリンク先を読めよバカ
情報も集められないマヌケとは話にならんね
0165デフォルトの名無しさん
NGNG同じ性能のWS10個買う方が安いし…
信頼性っても、WSが同時に10個ぜんぶ壊れるよりは、壊れる確率高いし…
コボルで書いた過去の遺物プログラムはwrapしてそっと安楽死
させるんだろうけど、今から書くのにコボルつかっちゃ終りでしょ。
0166デフォルトの名無しさん
NGNGはたから見てると、只の負け犬の遠吠えにしか聞こえんのだが。
0167デフォルトの名無しさん
NGNGどの言語でもベテランなら「今の言語のままの方が速い」と言う。
当然だ。そして事実速い。
その言語での蓄積があるからね。
蓄積の問題を「嗜好」にすりかえた酷い煽りだ。
0168デフォルトの名無しさん
NGNGスパコンもなくなると思うのか?
金出しても、高性能と安定性を求める場所があるのだよ。
0169デフォルトの名無しさん
NGNGとっくに読んだよボケ!
お前はその後の反論が理解出来ないのか?
自分の共感を感じるだけで論理的に説明できないのか?
0170デフォルトの名無しさん
NGNGアセンブリ言語無しで動く電化製品を上げてみろ。
0171デフォルトの名無しさん
NGNG今あるコボルの資産を他の言語で書き直すことなどありえない。
だれもそんな費用を負担できない。
汎用機はクラスターマシンとして残るだろ。
0172デフォルトの名無しさん
NGNG日経コンピュータとかで、ずいぶん昔に同じ事いってたよ。
まあ、想像(希望?)と現実のギャップってやつかな。
0173デフォルトの名無しさん
NGNGまとまってた方が課金の管理とか楽だしね。
0174デフォルトの名無しさん
NGNG自作自演、必死だな。
>>167
では上をみることなく、「ほげ」にへばり付いて生きてください。
仕事は減っていくばかりで、後輩からは疎まれるだけでしょうけど。
>>165
IBMでも新規プロジェクトでCOBOLはもうありえないって。
ぜえんぶJavaですって。
残るけど保守だね。
>>169
じゃあコピペにまじれすしてないで
個人の蓄積が言語の進化を上回るという
納得できる資料を持ってきてもらいたいものだ。
>>160
まともな意見だね。その通り。スマート差を求めた結果がOOではないもの。
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGどこかで「保守コスト」が「書き直すコスト」を上回ると思うが…
それはともかく、汎用機じゃなくてもCOBOLが動きゃいいんだろ?
0177デフォルトの名無しさん
NGNGまた、根拠のない批判と、妄想による仮想人物像の生成・・・・・
あんた、OO信者だね。
0178デフォルトの名無しさん
NGNG想像の話と、現実の話は、区別してください。
0179デフォルトの名無しさん
NGNG書きなおした言語での保守コストも勘定に入れよう。
ひょっとして仕掛け人か?
0180デフォルトの名無しさん
NGNG0181169
NGNGとっくに反論の中にはいっとる。
読んでから反論しろ ぼけ!
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG馬鹿が!自分だけがOOPL使ってるとおもってやがる。
とさっきも書いた。
周りが見えなくなるくらいなら有害。
0184デフォルトの名無しさん
NGNG一生懸命にOOを否定してるやつにもうんざり
0185デフォルトの名無しさん
NGNG今から新たに書くならCOBOLは誰もつかわんだろ。
0186デフォルトの名無しさん
NGNGjava使ってるやつってほんとにOOわかってんの?
そんなんだからこういうスレたつんだよ。
0187デフォルトの名無しさん
NGNG私は OO 否定なんてしてないよ
0188デフォルトの名無しさん
NGNG汎用機はコスト高になるから案件が少ないしな
0189デフォルトの名無しさん
NGNGハイハイ。せいぜいOO目一杯導入してデスマーチで死んでくださいね。
0190デフォルトの名無しさん
NGNGageてるのおまえだけだし。(藁
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG判ってる奴は欠点も見えてくるものなのです。
判ってない奴は日経なんかのプロパガンダが頭の中を駆け巡るだけで
自分見て自分の頭で考える事が出来ない人なのです。
0193デフォルトの名無しさん
NGNG0194訂正
NGNG0195デフォルトの名無しさん
NGNGたしかにイー・ウイング証券はPCサーバだし、
スター・フューチャーズはUnix、
富士サイバーバンクはUnixクラスタだね。
海外の銀行や証券は5〜6年前からUnixに移行してるよ。
0196デフォルトの名無しさん
NGNG山ほどいるからだろう。
ツールや言語がOOベースだからといって、それで生産性や品質が
常によくなるわけではない。
OOで何かをはじめるには、従来のソフトウェア開発の手法とは
違うベクトルでものを考えなければいけないのに、
それに気付かず、いざはじめて見て挫折するんだろう。
0197デフォルトの名無しさん
NGNGという言語があったとするわな。あくまで仮定な。
そして、君の下に何人か馬鹿な部下がいるとする。(あるいは君が馬鹿なプログラマだと仮定してもよい)
君なら開発言語に何を選ぶ?
馬鹿だらけの今の業界の状況では学習が容易な言語を選んだほうが生産性が結局は高いことはざらなのよ。
グローバル変数使いまくったほうがいいって言うぐらい馬鹿なやつしか集まらない惨状もあるのだよ。
そして、君は個人的に志を高くして効率のいい方法を学べばよい。
大きいところにいちゃだめだ。大勢の凡人がいるところでは凡人にあわせる必要があるからね。
128はベンチャーの話題だろ?
0198デフォルトの名無しさん
NGNG183も185も189も 私じゃないよ
自作自演だっておもってるの
だとしたら ちょっとノイローゼ気味かも
0199デフォルトの名無しさん
NGNG意味不明。
COBOLってのはいつからOSになったんだよ 藁
0200デフォルトの名無しさん
NGNG∧( ^∀^)< 終了
∧( ( つ ⊂ ) \___
∧( ( つ.) ) )
∧( ( つ (__)_)
∧( ( つ (__)_)
∧( ( つ (__)_)
∧( ( つ (__)_)
∧( ( つ (__)_)
∧( ( つ (__)_)
∧( ( つ (__)_)
∧( ( つ (__)_)
( ( つ (__)_)
( つ (__)_)
| (__)_)
(__)_)
0201デフォルトの名無しさん
NGNG汎用機の意味わかっていない人発見
0202デフォルトの名無しさん
NGNG妄想大爆発非論理的思考回路要転職
0203デフォルトの名無しさん
NGNG>グローバル変数使いまくったほうがいいって言うぐらい馬鹿なやつしか集まらない惨状もあるのだよ。
はい、デスマーチ決定。
馬鹿を何人も自殺させ、退職に追い込んで、その上プロジェクトの顧客満足度は限りなく低いまま
プロジェクトは崩壊しましたとさ。
0204デフォルトの名無しさん
NGNGなんでUNIXに移行するとCOBOLが使えなくなるのか
小一時間問い詰めたい。
0205デフォルトの名無しさん
NGNGヴォケか?
0206デフォルトの名無しさん
NGNG典型的な信者の反論だな。
想定問答集でもあるのか?
いままでちゃんと商売が成り立っていたのにOO導入で大赤字
っつう現実をそうやって他人のせいにするとは。
0207デフォルトの名無しさん
NGNG面白意
藁汰
0208デフォルトの名無しさん
NGNGCOBOLは大抵UNIXベースだろ?
ああ、サーバーね。
ガイシュツだけどわざわざ最新のプラットホーム用のCOBOLも
後を絶たないらしいんだな。
0209デフォルトの名無しさん
NGNGOO導入していない企業が
OO導入した企業を駆逐したという事例を紹介してください。
OO導入に失敗したという企業はわんさかありそうだが。
0210デフォルトの名無しさん
NGNGOO導入してない企業を駆逐したという事例を紹介してください。
OO導入に成功したのに赤字という企業はわんさかありそうだが。
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG情報関係なら、OOについていけない窓際族はいても、
企業ごとOOを導入してない企業なんて無い。
0213デフォルトの名無しさん
NGNGOOを導入した企業がパタパタ潰れて行くからなのです。
0214デフォルトの名無しさん
NGNGひたすら「気合」「根性」「徹夜」「できるやつ頼み」?
0215デフォルトの名無しさん
NGNGそりゃOOPL。
0216デフォルトの名無しさん
NGNG自分で蓄積したライブラリ。
0217デフォルトの名無しさん
NGNG転職(転社)したらどうするの?
0218デフォルトの名無しさん
NGNG言語変わっても同じようなライブラリを組んでしまう。
だから言語関係無し。
0219デフォルトの名無しさん
NGNGソフトウェア工学って知ってる?
0220デフォルトの名無しさん
NGNGで、OO を使わないとしたら開発手法は何使うわけ?
ひたすら「気合」「根性」「徹夜」「できるやつ頼み」?
216 名前:デフォルトの名無しさん 投稿日:01/10/28 02:40
>>214
自分で蓄積したライブラリ。
馬鹿はいいねえ。気楽で。
あなたこのように思われてます
なんでこんな奴と給料が一緒なんだと思う瞬間
http://pc.2ch.net/test/read.cgi?bbs=prog&key=1000730743
0221デフォルトの名無しさん
NGNGそういった同じ様な開発手法を集めたんがデザパタじゃないの?
あまりレス読んでないんだが
0222214
NGNGなんじゃそりゃ。
指示ファイルに記述された複数のファイルにある複数の単語
(または文法規則)を一気に変換する個人ツール持ってますが何か?
0223デフォルトの名無しさん
NGNGもちろん in house な開発手法でやってるのだろうけど、
ほとんどは明文化されずに「いつもやっているようにやる」だけではと思ったので。
文書があっても読むと頭痛がするようなのだったりするが。。。
0224デフォルトの名無しさん
NGNGアセンブラソースをC言語のソースに変換したりできる強力な奴ね。
0226デフォルトの名無しさん
NGNG0227214じゃなくて216
NGNG0228デフォルトの名無しさん
NGNGそんな簡単に作り直せる量なら蓄積にこだわる必要もないね。
0229デフォルトの名無しさん
NGNGアセンブラからJavaにもできる?
だったら欲しい。
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG簡単ね。
つうか言語は邪魔ね。
変換規則ファイルいちいち書かなきゃいけないし。
0232デフォルトの名無しさん
NGNGあげない。
つうか個人ツールだから目的のファイルが得られたらそこで作るの
止める。
Javaだと文法規則の解釈ルーチンを拡張しなきゃならんなあ。
0233デフォルトの名無しさん
NGNG再利用性は既存手法と変わらない。というより、既存手法でもOOでも無理。
でもOOを使い続ける。時代の流れなんだからしょうがない。
0234デフォルトの名無しさん
NGNG全部断る事だろ?
0235デフォルトの名無しさん
NGNGプログラマそれぞれが車輪の再発明をやっている、という
世界観だよね?その世界観だと『コードの再利用』って奴は
せいぜい個人のレベル止まり。
そんな事をいつまでもやっていれば、
・他人のコードを修正する。
・新しい言語に移行する。
といった行為がコスト高になってしまうのは当たり前だと思うが。
0236デフォルトの名無しさん
NGNG多種多様なリアル社会においては実践不可能
理論上可能なので試してみたら不可能だったのだ
0237デフォルトの名無しさん
NGNGあほか。
ライブラリレベルの細かいものじゃないわい。
どこにもないから自分で作るしかないの。
お前最先端の仕事した事ないだろ?
最先端の技術ってのは他社には秘密だし、名前なんかついてないんだよ。
世間でも認知されてないものなの。
0238デフォルトの名無しさん
NGNGこいつ馬鹿?
0239デフォルトの名無しさん
NGNG厨房決定
0240デフォルトの名無しさん
NGNG>>236、それはある意味正しい。
再利用性を考慮してOOを使いこなすのは非常に難しい
単なる構造化の方が再利用性は高い。
再利用性で生産性を高めるためにOOが生まれたわけじゃないです。
現実の事象にそってプログラミングできる利便性
それにより設計段階のプログラミングが非常にやりやすくなるし
仕様変更にもより柔軟に対応できるようになる。
加えてマルチタスクプログラミングがやりやすくなっている。
デザパタのStateパターンがイメージとして近い。
そういう目的があってOOが導入されてきたわけ。
OOが生産性が低いといっている人は
設計を行わずにいきなりコードを書き始めていないか?
決まりきった定型処理ばかりなら
それで生産性の高いことが出来るだろうが
複雑な仕様になると設計は必須だし
その設計を反映させるためのOOも重要になるのだが。
0241デフォルトの名無しさん
NGNG君ら、望み無し。
救いがたい。
0242デフォルトの名無しさん
NGNG面白い人ですね。コテハンを名乗られては如何でしょうか
0243デフォルトの名無しさん
NGNG厨房に救われても迷惑だろう。
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG委譲による再利用は、うまくいきやすい。
0246デフォルトの名無しさん
NGNG委譲はOOの中でもより構造化プログラミングに近い。
その方が再利用がうまくいくということ。
OOが再利用性が高いと思うのが間違い。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG委譲ってレイヤリングみたいなもん?
0250デフォルトの名無しさん
NGNG委譲はOOの中でもより構造化プログラミングに近い。
その方が再利用がうまくいくということ。
OOが再利用性が高いと思うのが間違い。
ワラタ
delegation (black-box再利用)の方を多用すべきなのは
OOを勉強した人間なら常識だろ。デザパタもそう。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGつゆだく認定。
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGなるほど。
レイヤリングもクラスのメンバにオブジェクトのインスタンスを
置いて使うものと自分は理解しているんだけど、委譲とは
何か違いがあるのかな?初心者でスマソ
0256デフォルトの名無しさん
NGNGそのインターフェイス(publicなメソッドね)の一部(または全部)をラッピングして
自分のインターフェイスとして外部に提供する。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGいいから251じゃなく256を信じとけ。
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG何故委譲が推奨されるか(つまり安易な継承が推奨されないか)は
この文書の「実装の継承に関する問題」を読んでくれ。
http://www.microsoft.com/japan/developer/library/jptech/TechArt/VTools/vb/vb6/ifacebased.htm
0264デフォルトの名無しさん
NGNGブラクラチュウイ
0265デフォルトの名無しさん
NGNG不毛な議論の
マ板での受け入れ先がきまりました。
各位よろしくおねがいいたします。
今思ふ 今の時代言語は何でも言いと・・・
http://pc.2ch.net/test/read.cgi?bbs=prog&key=1003835137
0266デフォルトの名無しさん
NGNGそんな手しか思いつかないのか?
1)OO推進者は実は生産性なんかどうでも良いと思ってる詐欺師。
2)OO推進者はプロジェクトが失敗しても何かを生産したと思ってる馬鹿
これは問題だぞ。
0267デフォルトの名無しさん
NGNG馬鹿呼ばわりされて悔しい日常なのには同情するがもう飽きた。
0268デフォルトの名無しさん
NGNG憐れみすら感じさせる発言だねぇ。
ageてるし。
よっぽどかまって欲しいらしい。
0269デフォルトの名無しさん
NGNGと煽って紅衛兵を生産した。
0270デフォルトの名無しさん
NGNG私は委譲は>>251さんの意見と同一の理解で、コンポジションは
委譲と同様のインプリで意味は他のオブジェクトとのつながりが非常に密なもの(切り離せない)という理解です。
委譲の方の意味は実現したい昨日を他にお任せするという理解です。
・・・どうでしょうか?
0271デフォルトの名無しさん
NGNG他とのつながりが密なわけではなくて、
他との切り口が同じになっていることを言うんだよ。
0272デフォルトの名無しさん
NGNGもっと分かりやすくきぼん。
0273デフォルトの名無しさん
NGNGわかりやすく言うからよーく聞け。
スレ違いだ。
0274デフォルトの名無しさん
NGNG本来ここは技術板なのだから、1の方が板違い。
0275デフォルトの名無しさん
NGNGオブジェクト指向の効能書きを読み返すべし。
生産性を問題にしないオブジェクト指向なんて合って良いはずが無い。
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGどうしたいきなり?
まあ、静的型言語ならそうだな。
0278デフォルトの名無しさん
NGNGcovariantかcontravariantかっていう話じゃないの?
0279デフォルトの名無しさん
NGNGその問題は typing があるから生じるんでないの?
まあ、確かに型付けがある言語が一般的だし、
コンパイルをすり抜けるようなエラーが生じるややこしい問題だってのは分かるが。
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGVC++でcovariant return typeの扱いにバグがあるのは有名な話だが、
それが何か?
0282デフォルトの名無しさん
NGNGこれ↓の次スレとして使おうという目論見? それなら、賛成一票入れとく。
やっぱりオブジェクト指向は幻想でした。
http://pc.2ch.net/test/read.cgi/tech/1003815855/
0283OO初心者
NGNG上がってくる「相対性理論は間違っていた!」みたいなスレをつい
連想してしまう。
ただしそちらでは相対論擁護派の勢いが強くて(まあ当然だけどね)、
やがてスレ立ての1はスゴスゴと退散というのがいつものパターン。
しかしこちらではOO擁護派の意見に今ひとつ迫力が感じられないのは
どういうわけだろう? やっぱり胡散臭いところがあるということか。
擁護派の皆さん、何か後ろめたい気持ちがあるんじゃないの?(w
0284デフォルトの名無しさん
NGNGソフトウェアの品質をどう評価するかって部分で噛み合わないし、
ウォーターフォール開発に凝り固まっている組織にOOを導入するコストは
OOを導入したことによるメリットを軽く上回るだろうしなあ。
# まったく新規にソフト会社を作るとして、OOを採用しない理由はないと
# 思うがな(関数型言語を採用するなんて剛毅な会社があってもいいけど)。
まあ、とりあえずOOを批判するならMeyerの著作の主張に反論してみて
ほしいね。あと、どうしてIBMがRGBとかを捨ててJavaに移行してるか
とかな。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNGOOが原理だと思ってる基地外発見。
0287デフォルトの名無しさん
NGNG学生さんですか?
反論とか理論とかは私には意味無いです。
現実に使えるかどうか、それしか興味ありません。
生産性が上がるなら理論でなくても、たとえ矛盾してても使いますし、
下がるならどんな立派な理論でも使いません。
それだけ。
0288284
NGNG生産性ってのもプログラマーしかやっていない奴のレベル
(生産性=仕様書通りのコードを早く書けること)
と、クライアントと交渉する奴のレベル
(生産性=クライアントの要求を低コストで実現すること)
とでは、まったく観点が違うからね。仕様書も書くし、
コードも書くという奴なら、なおさらOOを選択するでしょ。
要求が五月雨式に出てくるようなプロジェクトで、
OOしないなんて、少なくとも俺にはできない。
0289デフォルトの名無しさん
NGNG生産性っていう言葉の定義が問題だな。
誰が何を使うとどう生産性に影響がでるか。
学習に多大なコストがかかるのは、学習内容のレベルが高い場合と
学習者のレベルが低い場合がある。
反論とか理論とか、と並記するあなたの国語のレベルはどうかと思うが。
0290デフォルトの名無しさん
NGNGOO的に継承を使う処理は、インスタンスが複数作られ、かつオブジェクトの機能が固定され
る事を前提にする場合非常に巧くゆく
その代表はGUI的処理
一つのプロセスでインスタンスが1つあればよい場合は ユニット・モジュール分割で十分
オブジェクトの機能が固定されない場合、OO的に継承を使って書くのは馬鹿げている
その代表は、社員や商品ををクラスで表現なんて事
0291デフォルトの名無しさん
NGNG誰だって死にたくないからな。
0292デフォルトの名無しさん
NGNGホントだね。トンデモな人達がこんなに多いとは。
>>290
OOで継承が重要だと思ってるバカ発見。
0293デフォルトの名無しさん
NGNGOOに関する間違った印象を与えているとしたら
とてーも残念なことですねー。
0294デフォルトの名無しさん
NGNG↑
こういう言い方が一番根拠が無い、知ったか学生だYO!
自分の立場も明らかにしてないし、自分の意見も無い。
継承を否定するのが大学のトレンド(古い言葉だけど厨房にピッタリ)なだけだろ?
OOで継承が重要じゃないと仮定しても、
プログラミング(OOP)では、時間が有限であるため、差分コーディングは重要。
0295デフォルトの名無しさん
NGNGでも誰が見ても290はバカ。
0296294
NGNG0297デフォルトの名無しさん
NGNG知ってもらうためのスレ?
0298290
NGNGじゃ、継承を使わないオブジェクト指向によるコードの例あげてみてよ >>ALL
既存の言語で継承使わないで書いたら、 普通はモジュールとかユニットって呼ぶぞ
そしてそれは FILE *fp の頃からやってたやり方だ
0299デフォルトの名無しさん
NGNGFILE* をモジュールとかユニットとか言う人は少ない
0300デフォルトの名無しさん
NGNGそもそもクラスベースではないオブジェクト指向言語もある。Smalltalk とか JavaScript とかね。
勉強して出直しましょう。
0301デフォルトの名無しさん
NGNGこの手のブームはMISで耐性がついています。
0302290
NGNGおバカな290でも Smalltalk にも JavaScript にも継承がある事くらいは判るぞ
0303290
NGNGhttp://www.ogis-ri.co.jp/otc/hiroba/technical/Squeak4/index.html
ここを見た感じでは クラスという概念はあるようじゃないか
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGネタであることを祈ろう。
0306デフォルトの名無しさん
NGNGオブジェクトベース→実行時に継承→インタープリタ実行時に継承
→インタープリタ=Smalltalk or JavaScript
0307デフォルトの名無しさん
NGNG>>290よ、OOはダメだそうだが抽象データ型はどうなんだ?
0308デフォルトの名無しさん
NGNGOOで失敗を経験した奴がOOに私怨を抱いているだけと思われ
0309290
NGNGいわゆる似た操作には同じ名前を使いましょうって事を発展させた奴でやんすね?
あれば便利って事なら異存はございやせんぜダンナ。
単に同じ名前にしとけば interface被せて便利に使えるんだから、こりゃ便利でやんすね
0310デフォルトの名無しさん
NGNGしてた人もいたようなので便乗で書いておくと、
抽象データ型(Abstract Data Type)、とはそれの
内部表現にまつわる関数群等をデータと一体にし
て定義したデータ型の事だ。そのデータ型を用い
る事により内部の実装を隠す事をデータ抽象と言う。
オブジェクト指向の一つ前の段階。
もちろんオブジェクト指向はデータ抽象を支援する。
0311290
NGNG抽象データ型も、
オブジェクトの機能がが静的な場合 つまり属性、所属が静的な場合非常に巧くゆく。
GUI以外に、数学ライブラリ(行列ベクトル、多倍長)とかね
だからあれば便利だと思うよ
しかし、 時間変化とともに状態=所属が変化するようなものを扱う場合=
interfaceを動的に切り替えなければならない場合困った事になる
JavaScriptなら動的にメソッドチェンジ出来るし、Delphiならイベントにしと
けば動的にメソッドチェンジ可能だけど、
これって判り易いか?
歩と成歩くらいの事なら、どっちでも、そりゃ問題ないけどさ
0312デフォルトの名無しさん
NGNG↑
誤解してるZE!
だって、データ型の事だ、だと、データが隠蔽されてないじゃん!
0313デフォルトの名無しさん
NGNG日本語変だぞ
> だって、データ型の事だ、だと、データが隠蔽されてないじゃん!
言語と、やりかたによる。
0315デフォルトの名無しさん
NGNG>>314 みたいなのがプロジェクトで頑張ると OO導入は大失敗に終る事間違いなし
0316デフォルトの名無しさん
NGNGだって、文書の間違いを指摘されたら、修正版の文書を出すのが先でしょ!
0317デフォルトの名無しさん
NGNGつーか、黙れ。
0318デフォルトの名無しさん
NGNG話が出来ないなら、書き込みするな。
うざ。
0319デフォルトの名無しさん
NGNG話が出来ないって「314」に論理的に書いてるじゃない。
出きるもんなら、314に反論してみろYO!
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNGそのとき、その変数に値を入れることが出来ますよね。
また、その値を他に移すことできますよね。
これを値丸見えと言います。
で、どうだ?>>322
0324310
NGNGどういうレベルの話をしたいのかわからないが、
データ型、がデータ丸見えってのはどっから出てるんだ?
俺はただ、Data Typeの事をデータ型、と書いただけなんで、
もしデータ型、という特別な意味の専門用語が既にあるなら、
適当に直してくれ。
修正した文のせたいなら勝手にやってくれ。
別に俺の文の正しさを強固に主張する気も無い。
0325323
NGNG0326デフォルトの名無しさん
NGNG自分以外の全ての書き込みは、一人の対話相手のものだと勘違いしてるみたいだな。
2ch初心者か、デムパってとこか。
0328322
NGNG関数に代入は出来ないだろ?
property はどうだ? これは 型を持ってるけど書き込みだけ、読み出しだけしか出来ないように設定出来るぞ
それから C++ の テンプレート関数のテンプレート引数は?
0329322
NGNG0330デフォルトの名無しさん
NGNGもしかして、「データ型」って、プリミティブな型のことを言ってるのか?
だとしたら痛すぎる。つかバカ。
0331310
NGNGこの手の喧嘩はいつも知るべき人を遠ざけるから避けたい。
ttp://mitpress.mit.edu/sicp/full-text/sicp/book/node27.html
データ抽象ってのはこれの事だ。
(define a (make-complex 1 2))
(get-real a)
(get-imaginary a)
みたいな感じでやるのがData Abstractionだ。
aがどう実装されてるかはわからんから、データが抽象的。
OOと抱き合せの概念でも、排他的概念でも無い、
と言いたかっただけだ。
0332デフォルトの名無しさん
NGNG例えば、Cの場合は構造体を使うことになるから、
メンバ変数を直接触ることが可能なので、
隠蔽されていないと言いたいのだろう?
考え方を逆にしてみてくれ。
メンバ変数を直接触らなくても(どう定義されているか知らなくても)、
そのデータ型に関して十分な処理ができるように
関数が定義されているからデータ抽象。
つまり隠蔽が言語でサポートされていない場合は紳士協定になるんだよ。
0333デフォルトの名無しさん
NGNG抽象化って言うものを知らずにプログラマをやってるのか?
Cにおけるデータ抽象の例:文字列から整数値へのマップ
#ifndef map_h
#define map_h
typedef struct _map *map_t;
map_t map_create(void);
void map_add(map_t, const char *key, int value);
int map_probe(const map_t, const char *key, int dflt_value);
void map_delete(map_t, const char *key);
void map_iterate(map_t, int (*func)(const char *, int));
void map_free(mapt_t);
#endif
struct _mapの実装は見えない。
ハッシュ表かも知れない。二分木かも知れない。
線形リストかも知れない。
キーと値の型が限られる(monomorphicである)ことがCの限界。
また、メモリ管理に神経を使う(例えば、map_free時にkeyは解
放するか等)もCの面倒な点。
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNG昔そういうことやってたよ。C++コンパイラが入ってなくて、
入れさせてもらえなかった環境で苦肉の策として。
C++使えるって幸せだよな。
0337515
NGNGデータ抽象の意味が分かりかけてきたので、教えてください。
Cでのデータの抽象化とは、メンバ変数を直接触らなくても、
そのデータ型を使用するのに十分な関数群が定義されていて、
そのデータ型を使うユーザの間で、データ型に直接触らない
(必要なら新しく関数を作る)ようにルールを決めて運用すること
を指している
という理解でいいんですよね?
#2ch初心者です。
0338
NGNG0339デフォルトの名無しさん
NGNGつーか、構造化以後オブジェクト指向以前の書き方だよ。
Modula-2とかAdaとか。
C++だとBridgeパターン使うんだろうな。
0340デフォルトの名無しさん
NGNG抽象データ型ってのは、具体的なデータ表現が隠されていて、
データに対する操作のみが定義されているデータ型。
実際には完全に隠されてなくても良い。「紳士協定」で、抽象
データ型「だと思って」使うっていうのでもかなり役に立つ。
0341515
NGNGなるほど。ありがとうございました。
#オブジェクト指向の抽象化と理解がごっちゃになってました。
0342デフォルトの名無しさん
NGNGオブジェクト指向の抽象化も、元々の意味合いとしては同じだよ。
Javaのinterfaceなんてまさに抽象データ型(+継承)だし。
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNGオマエモナー
0345515
NGNGオブジェクト指向の抽象化は、「車をcarクラスにする」みたいな
話ですよね?
オブジェクトの機能を抽象化するのとデータの抽象化は
ちょっと違うような気がするのですが。。。
0346デフォルトの名無しさん
NGNG話ですよね?
なんじゃそりゃ(w)
0347デフォルトの名無しさん
NGNGとか思ってみたり。
・・・逝ってくるよ
0348デフォルトの名無しさん
NGNGごめん、俺も逝ってくる
0349デフォルトの名無しさん
NGNG始まりはともかくとして、
プログラミングにおけるオブジェクト指向は、抽象データ型の
「データと、それに対する操作の組」という考えを素直に発展
させたものだと思うよ。極論すれば「すべてのコードは、デー
タに対する操作としてデータに付随するものである」とか。
言い過ぎかな。
0350310
NGNGんだが、読むべき人に読まれてよかった。
Data Abstractionという言葉を知らなくてもOOPは
出来るし、結果としてその恩恵を得る事も出来るが、
意識して組むといろいろわかりやすい事も多いと思う。
JavaやC++の入門書にはゲッタやセッタ作れ、みたい
な事がちょろっとした例と共に書いてある事が多い
と思うが、結局Abstract Dataという考え、というか
その心を知らないと納得出来ない様な内容が多いだろう。
CにおけるData Abstraction、とかOOPLにおけるData Abstraction、
という視点だけではなくて、Data Abstraction、という
視点から両者を見る、という事も出来ると良い、と思う。
上で挙げたSICPの該当個所は、英語だけど入門とし
て読むにはいいと思う。Schemeなのがちょっとあれだが。
0351339=349
NGNG禿しく概出だったね。申し訳ない。
>>345
JavaのinterfaceやC++のBridgeパターンを使うと、マップの実装
(ハッシュ表か、木か等)を実行時に選ぶことができる。
Cで同じようにやるには、以下のようにする。
struct map_impl;
typedef struct _map *map_t;
struct _map {
struct map_impl *impl;
void (*add)(map_t, const char *key, int value);
int (*probe)(const map_t, const char *key, int dflt_value);
void (*delete)(map_t, const char *key);
void (*iterate)(map_t, int (*func)(const char *, int));
void (*free)(mapt_t);
};
別途 hash_map_create() とか tree_map_create() とかを用意する。
どちらも map_t を返し、使い方は同じ。
map_t map = hash_map_create();
map->add(map, "Key", 0);
のように使う。
これはC++コンパイラがやることを自分でやってるようなもんだが、
Cのコードでも同じような書き方を目にすることは多いはず。
具体的には、Unixのファイルシステム(vfs)、デバイスドライバ、
ウインドウシステムなんかで良く出てくる。
Cで書いてても、やっぱりOO的な考え方はあちこちで必要になってく
ることが分かる。
0352デフォルトの名無しさん
NGNG言い過ぎ。
0353デフォルトの名無しさん
NGNG反OOな人たちへの最高のサンプルコードですね。
すぐ思いつくメリットだけでも
1.使用者は処理の実装を意識する必要はなく、結果のみを得られる
2.使用者が非正則な手段を使わない限り勝手にデータを操作することは
不可能なので実装者はデータの一貫性を保証される
3.動的に処理を切り替えられる柔軟性がある
反OOな人にとってこれは「悪い」コードなのか?
0354デフォルトの名無しさん
NGNG>これはC++コンパイラがやることを自分でやってるようなもんだが、
>Cのコードでも同じような書き方を目にすることは多いはず。
別に反論じゃないけど、この方式だとC++のVtblと違ってすべてのオブジェクトがすべての
メソッドへのポインタを持つことになる。
だから実行時にメソッドを付け替えるのも簡単だ。
強力なオブジェクトはこの機能を必要としていることが多い。だからStateパターンだの
Templateメソッドパターンだのが作られるのだと思う。
0355デフォルトの名無しさん
NGNGstruct map_vtable {
void (*add)(map_t, const char *key, int value);
...
};
struct _map {
struct map_impl *impl;
struct map_vtable *vtable;
};
typedef struct _map *map_t;
map_t map = hash_map_create();
map->vtable->add(map, "Key", 0);
の方が良いんじゃないか?
いずれにせよ、この書き方を否定するなら、たいていのOSの
デバイスドライバやGUIの仕組みを否定することになるね。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG>>312 みたいな基地害が出てきてくれないと面白くない。
それとも312はOO派のネタだったのか?
0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNG自殺するなよ・・・
0361デフォルトの名無しさん
NGNGRuby、C#、Dylan、Eiffel、OCaml、Lisp・・・
0362デフォルトの名無しさん
NGNGruby.Python
(perl5,phpはムリヤリっぽい)
0363デフォルトの名無しさん
NGNGそうじゃなくて「私は Ruby派」と書いてほしいのです。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGEiffel派だからうらやましい。いい言語なんだけどなあ。
0366デフォルトの名無しさん
NGNG0367365
NGNGCLUに興味あるのでどんな言語か説明してほしい。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGEiffel派ですか?いっしょにスレ立てませんか?
っていってもド素人なんてですが、、、
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGhttp://www.gotdotnet.com/resourcecenter/resource_center.aspx?classification=Language%20Vendors
いまなら誰も実装していないからチャンスありますよ!
0373369
NGNGたとえ、地味―なスレになったとしても
地道にがんばりますのでよろしくお願いします(^^;
ここの板もスレの傾向が
1.業務スレ
2.ねた、煽りスレ
3.個別言語スレ
4.個別テーマスレ(ex.ゲーム、ネットワーク)
と大体棲み分けが出来てきたような感じなので
続くと思います!
0374デフォルトの名無しさん
NGNGこちらこそよろしくお願いします。
0375デフォルトの名無しさん
NGNGghostscriptで見れるんじゃねーの?
0376デフォルトの名無しさん
NGNGありがと。
0377デフォルトの名無しさん
NGNGenum Janken{ Guu, Tyoki, Paa };
enum Shouhai{ Kati, Make, Aiko };
class Player{
Janken j1;
public:
Janken te(){ return j1; }
};
class Computer : public Player{
public:
void janken_pon(){ j1 = Janken(rand()%3);}
};
class Man : public Player{
int kati_cnt, make_cnt, aiko_cnt;
public:
Man(){ kati_cnt=make_cnt=aiko_cnt=0; }
bool janken_pon();//終了するときはfalseを返す。
//判定と勝ち負け回数のカウント
Shouhai hantei(Janken com);
int kati(){return kati_cnt;}
int make(){return make_cnt;}
int aiko(){return aiko_cnt;}
};
class JankenGame{
Man man;
Computer com;
void kekka_hyouji(Janken man_te, Janken com_te, Shouhai shouhai);
void syuukei_hyouji(int kati, int make, int aiko);
public:
void play()
{
while(man.janken_pon()){
com.janken_pon();
kekka_hyouji(man.te(), com.te(), man.hantei(com.te()));
}
syuukei_hyouji(man.kati(), man.make(), man.aiko());
}
};
int main()
{
JankenGame game;
game.play();
return 0;
}
0378377
NGNGコンソールで動く簡単なじゃんけんゲームを作ってみました。
(実装一部略)(ももともと大学の課題なんですが)
僕がオブジェクト指向を理解しているか勘違いしているか
判定してやって下さい。
(いまいち自信がない。周りにOOな人もいない。)
0379デフォルトの名無しさん
NGNGOOにいまいちメリットを感じない。
(このじゃんけんゲームはもともとCでの課題です)
やたらと作為的で、不自然で、まだるっこしい。
自分のコーディングがそうなだけかも知れないんですが。
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGオブジェクト指向を理解していない。
0382デフォルトの名無しさん
NGNG添削お願いいたします。
理解したいとは思っているのです。
0383382
NGNGつーか、いじわるで言ってるだけだろと
心の中では思っています。
0384デフォルトの名無しさん
NGNG>つーか、いじわるで言ってるだけだろと
>心の中では思っています。
そうなふうに感じたなら ごめんなさい。
ふつうは JankenGameクラスを1つ定義するだけだと思います。
0385382
NGNGこちらこそすみませんでした。
game.play()の中で全部書くような感じになるんですか?
0386382
NGNGComputerやらManやらクラスを三つも四つも作れば
そりゃ、作為的で不自然でまだるこしくもなるわな、
という意味ですか?>>384
それとも全然勘違いしていますか?
0387382
NGNG0388デフォルトの名無しさん
NGNG>game.play()の中で全部書くような感じになるんですか?
ちがいます。play() を main関数にみたてます。
他にもメンバ関数をいくつか定義する必要があると思います。
play()の中で全部書くのは Cで main関数の中に全部書くようなものです。
0389デフォルトの名無しさん
NGNGありがとうございました。
0390デフォルトの名無しさん
NGNG全然理解してない。クラスの作り方はそれでもいいかもしれないけど、
クラスの使い方を間違ってる。
せっかくPlayerから派生させてるのに、多態を使ってない。
0391デフォルトの名無しさん
NGNGありがとうございます。
多分僕は基本的には理解してるだろうと思えてきました。
0392デフォルトの名無しさん
NGNGだから全然理解してないってのに。
ネタですかぁ?
0393デフォルトの名無しさん
NGNGそんなにメリットというかありがたみがないでしょ?>>392
0394デフォルトの名無しさん
NGNG388です。390は別の人です。
0395デフォルトの名無しさん
NGNGそりゃ、この場合オブジェクト指向使ってもメリットはあまり無いよ。
0396デフォルトの名無しさん
NGNGFoolComputerと、GeniusComputer追加したくなったときに
役立つよ。(w
0398デフォルトの名無しさん
NGNGするべきだし、hantei()やkati_cnt、make_cntがManクラスにあるのは
良くない。JankenGameに、移動すべきだ。
つまり、JankenGameはManに特有の操作やComputerに特有の操作を
してはいけない。
Playerを追加して、Playerを入れ替わり立ち代り変えてゲームしたり
するように拡張する時に、ソースコードを再利用できるようにする
ためにね。
まあ、この場合将来そんな拡張することは無いだろうけど、
オブジェクト指向とは、そういう拡張を想定してのものだからね。
0399デフォルトの名無しさん
NGNG>つまり、JankenGameはManに特有の操作やComputerに特有の操作を
>してはいけない。
>Playerを追加して、Playerを入れ替わり立ち代り変えてゲームしたり
>するように拡張する時に、ソースコードを再利用できるようにする
>ためにね。
なるほど・・・勉強になりますです。
0401デフォルトの名無しさん
NGNGハァ?
0402デフォルトの名無しさん
NGNG罠かい。どうりで日本語が変だと思った・・・
0403仕掛け人
NGNGまもなくビジネス情報系や投資情報系がLYEE賛美で埋め尽くされます。
セミナーも開きますし、成功事例もでっち上げます。
抵抗すれば理解出来ない旧世代とレッテルを貼って追い出す仕組みも
作ります。
抵抗しても無駄です。
0404デフォルトの名無しさん
NGNGLyee では、さすがに役者不足だ。売り込むなら、せめて .net にしとけ。
そしてネタは sage でやってくれ。
0405デフォルトの名無しさん
NGNG後半は「結局オブジェクト指向はその謳い文句通りにいかないじゃん」というでかい声にかき消されるが。
0406デフォルトの名無しさん
NGNGOOもそうであったのか?
0407デフォルトの名無しさん
NGNG372です。Eiffel のスレ立てる話はどうなったの?
0408デフォルトの名無しさん
NGNGせいぜい自作自演で盛り上げるこったな。
0409407の訂正
NGNG372です。Eiffel のスレ立てる話はどうなったの?
0410408の修正
NGNGせいぜい自作自演で盛り上げるこったな。
0411デフォルトの名無しさん
NGNGオブジェクト指向の時代は終わらない。
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNGスレタイトルが、「関数型言語ー詐欺師の時代の終焉。」になってただろうな
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNG実質はなにも変わってないのになんで名前変える?
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNGOOPLでは書けない。
0419デフォルトの名無しさん
NGNGただのサブルーチンコールじゃ
動的結合できないじゃないか。
0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNGOOPLのプログラムは美しい。
0422デフォルトの名無しさん
NGNGどんなものでも最終的に機械語になって実行されるからな
うまい料理もまずい料理も最終的にはクソになるって〜やつだな
0423デフォルトの名無しさん
NGNG顧客には何のメリットも無いじゃん。
あと、よく知らない人を煙に巻いて騙すためでしょ?
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGに書いたほうが、綺麗だと思ったりなんかしていました・・・
オブジェクト指向って、一体なんなんだろうね・・・
思想?コーデック(規約)?言語?
なんだか抽象的ダヨネ
0426デフォルトの名無しさん
NGNG顧客にとって、バグありありの非OOプログラムを受け取るのと
バグの少ない高品質、高機能のOOプログラムを受け取るのとでは
メリット的な違いは無いのですか?
0427デフォルトの名無しさん
NGNG早くできるのか?
安くできるのか?
バグが減るのか?
おらおらどうなんだ?糞グラマども。
0428デフォルトの名無しさん
NGNG関数ポインタがある。
どこからでも呼び出せる。
プログラムの任意の場所を可変に出来る。
そして美しい。
0429デフォルトの名無しさん
NGNGスタイルだろ。
つうか、綺麗とか汚いとかいう話は感覚論に陥るから
不毛だ。
俺はOOは結構綺麗なスタイルだと思うし。
0430デフォルトの名無しさん
NGNGっていうか、それで十分だよ
0431デフォルトの名無しさん
NGNG早く出来るぞ。
多態を考慮してる汎用的部品が使えるから、コードに余分な変更加えなくても
再利用できるからな。
0432デフォルトの名無しさん
NGNG前提がすごいね。
まあ、どこでメモリリークしてるか判らないプログラムよりはマシ。
0433デフォルトの名無しさん
NGNG早くできるし、安く出来るし、バグが減りますが何か?
0434デフォルトの名無しさん
NGNGお勧めの本とかだれかしらない?
スレ違いだけどどこの板に行けばいいのかよく分からなかったから、、、
0435デフォルトの名無しさん
NGNG再利用をOOで初めて知った人発見!
0436デフォルトの名無しさん
NGNG多態を考慮した部品と、そうでない部品では再利用は前者の方が
上。
0437デフォルトの名無しさん
NGNG純粋理性批判(カント)
0438425
NGNGそもそも論じる以前の問題よそれ(;´Д`)
ooと非ooが釣り合い取れていないのですが・・・
結局、非ooであってもooで組んでも、要は
「ちゃんと動いて、ちゃんと保守ができて、ちゃんと安定する」
物であればいいのよ。425氏はそれを言いたかったんじゃない?
プロジェクトメンバー内で理解している人が少ないooで組むより、
誰もがわかっているであろう非oo(あえて非ooって言います)で
組んだほうが、よっぽど効率的だと思うのは、漏れだけですか?(;´Д`)
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNG>バグの少ない高品質、高機能のOOプログラム
>>431
>早く出来るぞ。
>多態を考慮してる汎用的部品が使えるから、コードに余分な変更加えなくても
>再利用できるからな。
それはOOプロパガンダに洗脳された思い込み。
何ら科学的根拠の無いドグマ。
0442デフォルトの名無しさん
NGNGその名前はギャグか?
0443デフォルトの名無しさん
NGNG426はともかく、431は根拠を述べてる文だと思うが。
0444デフォルトの名無しさん
NGNG「これまでのプログラム技術では単一の目的にしか使えなかったのが
多態になって初めて他用途での使用が可能になりました」
つう、OOの解説書見てインチキだと思う奴と納得する奴と
2種類に分かれる。
0445425
NGNGスンマセンもうイッパイイッパイで頭が回ってません。
逝ってきます
0446デフォルトの名無しさん
NGNGそりゃ、理解してない馬鹿がたくさんいる職場では
無理してOO使わない方がいいに決まってる。
0447デフォルトの名無しさん
NGNG酷いな。最近のOOの布教ではそんな事まで言ってるのか?
カナーリ悪質。
0448デフォルトの名無しさん
NGNGハァ・・・
そういう極端な文持ってこられてもなあ。
ただ、一つの型ごとに関数を作らなきゃいけないのに比べれば
多態は便利よ。
0449デフォルトの名無しさん
NGNGabstract factory
0450デフォルトの名無しさん
NGNG>オブジェクト指向って要はプログラマのオナニーでしょ?
ちがう!
>あと、よく知らない人を煙に巻いて騙すためでしょ?
人を煙に巻くようなオブジェクト指向本はたまに見かける。
0451デフォルトの名無しさん
NGNGこれは何?
http://home.catv.ne.jp/dd/chiba/ken/Java/JavaStream.html
0452デフォルトの名無しさん
NGNG・OOの有効性を理解出来ないのが悔しい。
・実はOOの有効性を理解したいと思っている。
・否定派になってみることで、肯定派から意見を聞き、
参考にしようとしている。
0453デフォルトの名無しさん
NGNG言い方悪かったね。それもそれは確かに一つの型ごとに
関数作ってるけど、多態を利用してるから、使う方のソースは
型に依存しないように出来る。
だから、関数を変えても変更は一箇所で済む。
0454デフォルトの名無しさん
NGNGそんな木の車輪持ち出されて「さあ便利だから使え!」と言われてもねえ・・・。
0455デフォルトの名無しさん
NGNGそれは先進的ですなあ。
でも木の車輪はその時代には役に立ったけどね。
詐欺でなく立派に。
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNGそれとも「データ抽象化」という言葉も理解できませんか?
0458デフォルトの名無しさん
NGNG今は何を使うべきですか?
0459デフォルトの名無しさん
NGNGサブジェクト指向
0460デフォルトの名無しさん
NGNGやつらは抽象化という言葉も理解してません。
0461デフォルトの名無しさん
NGNG今使ってるテクの一部はデザパタの本に書いてあった−よ。(泣)
まあ、俺には問題発見解決能力があるらしいんで世間のテクは
見ないようにした方が良いらしい。人の見ると発想が鈍る。
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGなんでメソッドも含めてデータ抽象というのかが理解でない。
単なる構造体で十分データを抽象化してるのに。
0464デフォルトの名無しさん
NGNGどっかのスレに書いてあったけど。
0465デフォルトの名無しさん
NGNG一部だけで喜ぶなよ・・・
つうか、それならますます他のも役に立つはずだと思って
勉強した方がいい。
0466デフォルトの名無しさん
NGNG学生さんの勉強なら、自分で考えるのは大切だね。
仕事ならそんなムダはやってられないが。
(quick sortも自分で再発明するのか?)
0467デフォルトの名無しさん
NGNGネタか? それとも本当にこんなアフォばかりなのか?
0468デフォルトの名無しさん
NGNGじゃないのか?
誰も言及してないことを考えるのが普通だろ?
0469デフォルトの名無しさん
NGNGOO肯定派・否定派問わず、能無であれば参加できます。
0470デフォルトの名無しさん
NGNG俺は自分で考えたいから勉強しないんだ!
0471デフォルトの名無しさん
NGNGFILE *に対しては、操作(fopen, fclose, fread, fwrite等)
だけ定義されてて、FILE構造体の内部を直接触ることは
ないよね? それが抽象化。単に「構造体である」だけじゃ
ない。
0472デフォルトの名無しさん
NGNG発想なんて勉強しても出てきませんよ。
必要に迫られてやむなく生み出すものです。
0473デフォルトの名無しさん
NGNGFILEが構造体だなんて誰が決めた?
0474デフォルトの名無しさん
NGNGネタじゃないっす。
教えてくれたら嬉しいっす。
OO否定派じゃないですので。
構造体はデータの詳細を隠すから
データを抽象化していると思うのですが、
なぜか学術的にはそれだけではデータ抽象とは呼ばず、
データを処理する手続きを抽象化したメソッドも含めて
はじめてデータ抽象と呼ぶわけでしょう?
なんで?手続きの抽象化は別物じゃんとか思うんだけど。
0475デフォルトの名無しさん
NGNG>>333-355 を読み直しましょう。
0476デフォルトの名無しさん
NGNGだから何?勉強しない方がいいとでも?
0477デフォルトの名無しさん
NGNGそれは必要条件、十分条件ではない
オブジェクト指向への愛(または憎悪)も必要
0478474
NGNGなるほど。わかったような。操作するさいに
中身を丸出しにしてちゃ、頭かくして尻隠さずか。
ありがとうございました。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG構造体は具体的すぎるだろう。構造体の中身を直接触るようなコードは、
構造体の定義が変わったら全て使えなくなる。少なくともコンパイルし
直さないと。
>>333 のように抽象化してあれば、データの具体的表現が変わっても
リンクし直すだけですむ。モジュール間の依存性が最小限に保たれる。
さらに >>351 のようにしてあれば、複数の具体的表現の中から使う
表現を動的に選ぶこともできる。動的束縛というやつだ。
0481デフォルトの名無しさん
NGNG無能で(愛・憎悪)が必要ですか・・・。
病者の隔離スレって事ですね。
0482デフォルトの名無しさん
NGNGそうだよ。
知識を詰め込めばそれが邪魔になって発想が鈍る。
詰め込んだ後ではその知識に沿ってしか考えられなくなる。
0483474
NGNG解説ありがとうございます。
0484デフォルトの名無しさん
NGNGリンクし直さなくてすむとか動的束縛とかの利点以前に、
モジュール分割の原則としてデータ抽象化は便利。
モジュール間で互いの実装に依存しているような分割だ
と、本当の意味で「分けた」ことにならないので(他の
モジュールの中も見ないと理解できないから)大規模な
開発では使えない。保守性も劣る。
モジュールをきっちり分ける手法として、データに注目
して抽象化するというのはすでに定石だろう。
0485デフォルトの名無しさん
NGNG俺の大学の教授が同じようなこと逝ってたよ。「他人の書いたものを
読むと発想が鈍るから読むな。自分で考えろ。」
学生はうんうん唸って考えるんだが、考え付くのは当然、過去にあった
もののでき損ない。数十年の蓄積を一人で越えられるような天才がそう
いるわけはない。
0486デフォルトの名無しさん
NGNGたまには要るだろうが、それよりもいかに既存の手法を
使いこなすかの方がずっと重要だろう。
もしかしてライブラリも学ばずに一から書くのか?
0487デフォルトの名無しさん
NGNGノウハウや長所短所を心得ているせいか巧く行くのです。
というのは俺の経験だけではないらしい。
http://www.atmarkit.co.jp/fwin2k/opinion/ogawa/ogawa_200110.html
0488デフォルトの名無しさん
NGNG100人の秀才と900人の凡人を作るか、
1人の天才と999人のバカを作るかの違い。
日本では前者の方法を好む。
0489デフォルトの名無しさん
NGNGたまに世間で流布されてるソートより10倍以上速いのを発見したりする。
0490デフォルトの名無しさん
NGNG構造体は幾つかの変数を一つにパックしてはいるけれど、
それだけでは隠しているわけではないので、
その違いに注意すると良いよ。
抽象はまた別の概念。
class TV と class Light のどっちも関数 on と off とか color
なんて変数だか関数だかもあるかも知れないけど、
各々の実際というか《具体的》なことは違う。
でも、利用者にとっての「光を出す電気機器とはなんぞや」
という考えの中の《抽象的》なことは同様になるかも知れない。
0491デフォルトの名無しさん
NGNGで、あんたは天才を目指しているわけか?
プロジェクトのメンバーが求めてるのは、せめて
凡人であってくれれば良い(バカじゃなければ)と
いうことだと思うが。
0492デフォルトの名無しさん
NGNGどうせ、ビンソートとか度数ソートとか、良く調べれば本に
載ってるヤツだろ? でなければ特許取れば大儲けだよ。
0493デフォルトの名無しさん
NGNGリンク先との関連が分からない。
OOとの関連も分からない。
SISとかCRMとかいう営業マンの流行り言葉とOOの区別が
ついてないとか?
0494デフォルトの名無しさん
NGNG単なる例、喩え話。
厳密に言うと純粋なソートではないし、特定の状況下でしか使えないので
汎用性は無い。
0495デフォルトの名無しさん
NGNGどちらの方法が良いとは言わない。
日本は均一的な高水準の教育が売りだが、
新規創造的分野に弱い。
0496デフォルトの名無しさん
NGNG比較が必要なソートでは、クイックソートの比較回数が
平均的に最小と証明されてるが。
だいいちアルゴリズムの比較に「10倍」ってなんだよ(藁
0497デフォルトの名無しさん
NGNG「ああ、それはいま言われている×××のことですね」と、職業柄、反射的に3文字略
語が口から出てくることがある。それに対する現場担当者の反応は、たいてい決まって
いる。「かっこよく言えばそうなりますね」。
インタビューの冒頭から、3文字略語が大活躍することはあまりない。あくまで自分
たちが抱えている現場のニーズや問題点と日夜格闘して、結果出来上がった情報システムが
、はたから見れば3文字略語の要素を含んでいたということだ。こういう情報システムは成功する
と思う。
SISの教訓から分かるとおり、これとは逆に、3文字略語から出発した、到達目標のはっきり
しない情報システム、現場のニーズであるとか、情報化の効果に対する評価・検討が十分でないまま進めら
れてしまったプロジェクトは、まずもって失敗に終わる。
0498デフォルトの名無しさん
NGNGソフトウエア設計やプログラミングは創造性とか芸術性とか
は不要だろ。engineering とか problem solving だろ。
新たなソフトウエアを産み出すのは設計とかプログラミングの
問題ではない。
0499デフォルトの名無しさん
NGNG無断転載ヤメロ。
それにOOともOOPLとも関係ないよ。どっちも3文字じゃないから。
0500デフォルトの名無しさん
NGNGデータ抽象化と、それに基づく設計を素直に発展させたのがオブジェクト
指向ですから、データ抽象化を認めてオブジェクト指向を認めないのは
全く矛盾していると思うのですが?
0501デフォルトの名無しさん
NGNGすでに何が有るかは知っていた方がいいけれど、
それぞれの長所短所とか使い道も理解していないとね。
その為には自分で考案してみたり作ってみるのも良い勉強だと思うな。
特に初期の段階では。
0502デフォルトの名無しさん
NGNGまあね。趣味でなら何日も悩んで考案するのも楽しいね。
でも仕事ではできないね。「自分で考え付きました」と
言っても誰も誉めてくれるわけがない。
0503デフォルトの名無しさん
NGNGデータ抽象化が良ければ、オブジェクト指向の全てが良いわけではない。
0504デフォルトの名無しさん
NGNG具体的には?
0505デフォルトの名無しさん
NGNGでも、データ抽象を使うために、例えばOOPLはものすごく便利だし、
他の言語でもOOの考え方を使えば自然にデータ抽象が行えるでしょ?
0506デフォルトの名無しさん
NGNG具体的も何も、一部が良ければ全て良しというのは変。
0507デフォルトの名無しさん
NGNGOOの発展にも、創造性は必要だ。
しかし、過去の創造性に頼って生きるのも、人生の選択の1つ。
良いと思う。
0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNG後からそれ以上に楽になってくるというやつでしょ。
0510デフォルトの名無しさん
NGNGOOを正しく使った結果のがデータ抽象の方法の1つだと仮定すれば
(あくまで仮定)、データ抽象全体を肯定すれば、その部分集合で
あるOOも肯定したことになる。
そうでないとするならば、「OOを正しく使って、しかしデータ抽象
ではない」例があることになる。
それを具体的に挙げてみてくれないか?
0511デフォルトの名無しさん
NGNGそういうのは、元から頭が固いやつだよ。
現に、有名な天才学者はその分野について詳しく知ってるぜ。
例外無くな。
0512デフォルトの名無しさん
NGNGOOを発展させるかどうかなんていう大言壮語以前に、
本に書いてあることくらいちゃんと理解しようよ(w
「飛ぶことを覚える前に、人は歩くことを覚えるべきだ」
0513デフォルトの名無しさん
NGNGOO自体じゃなくて、あんたの理論。
0514デフォルトの名無しさん
NGNG極端なこと言えば「エンジニアリング」って目標なり要求を
満たすにはどうしようかが出発点にあるからね。
その中には例によって期日(納期)も入っているだろうし。
ただ、そればっかり繰り返していると「枯れ果てちゃう」から、
勉強も必要だと思ってるよ。些細なテーマでもね。
創造とか芸術とかっていうのは、むしろそういう「固定した評価関数」
を用意しない仕事だろうとも思うな。
プログラミングやソフトウェアにもそういう発想があって良いと思う。
そして、誰かがいつか、それをハッキリした目的のために使う時も
あるかもなと思ってる。
じゃ、OOPは創造性の賜物なのか?
なーんてギチギチなこと考えることもないだろけど
0515デフォルトの名無しさん
NGNG達することができると思うけど。
0516デフォルトの名無しさん
NGNG0517508
NGNG504じゃないよ。
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG良い絵画を見たり、良い音楽を聴くと芸術性が失われるのかい?
0521デフォルトの名無しさん
NGNGしかし99.9%(当社調べ)の仕事には「固定した評価関数」があるんだよ。
納期までに完成して、安定して動いて、変更に強いこと、とか。
「ちょっとここんとこ芸術的に書いてみました」ってのは評価関数では
どっちかというとマイナスになる。
0522デフォルトの名無しさん
NGNGがいしゅつだが勉強しないヤツの言いわけだってば。
0523デフォルトの名無しさん
NGNGわかるよ、そうゆう仕事の中では良く思われないね
世の中見渡せば、結構違った種類の「仕事」もある。
その中には一体全体ホントに利用されるのか分からないような
モノを作ってるところやら色々だね。
それこそUNIXやLispだってそんな立場から始まってるしね。
0525デフォルトの名無しさん
NGNGというかアプリ作るのにOOライブラリを使うのは便利だけど、
それ作りながらは・・・・
0526デフォルトの名無しさん
NGNG「芸術=不採算」のレッテル貼って終わりか。
つまらん仕事しとるな。
つうかOOの方が芸術に近いと思うが。
0527デフォルトの名無しさん
NGNGつか、プログラミングとかソフト設計とかの「技術」の世界に
「芸術」を持ち込んだらどちらにとっても不幸だろう。
評価尺度がそもそも違うんだから。
ま、いずれにせよ芸術とか創造性が不勉強の言いわけにはならん
よ。
0528510
NGNG「データ抽象化は素晴らしい。よってOOも素晴らしい。」ってことで。
---------------------------- 終了 -----------------------------
0529デフォルトの名無しさん
NGNG勉強=良い事/勉強しない=悪い事
という固定観念と
OOやデザパタは勉強と呼ぶに値するという固定観念に囚われていて
お話になりませんな。
勉強するに値するものなら労苦は問いませんが、OOは違うという考えが
理解できませんか?
0530デフォルトの名無しさん
NGNG馬鹿の一つ覚え
0531523
NGNG> つか、プログラミングとかソフト設計とかの「技術」の世界に
> 「芸術」を持ち込んだらどちらにとっても不幸だろう。
いわゆる『現場』ではそうだろう。けれど基礎技術や概念が出来るのは、
掃いて捨てるほどの技術のタネが上がってくる、広いすそ野が有るのも事実さ。
創造的(芸術とは限らないよ)と言うかどうかは、そう見いだす人の感じ方
や審美心にもよるけど。
> ま、いずれにせよ芸術とか創造性が不勉強の言いわけにはならんよ。
そりゃそうだ。
>>529
理屈っぽくなって申し訳ないが、勉強するに値するかしないかも、
何かしら深い洞察があってこそ出来る判断だろう。
それは人に言われて信じるより、もともと余程しっかりした下地があるか、
実際にやってみる以外にないだろ。
そう思えば値しないものなんてこの世にないよ。(極論だろけど)
0532デフォルトの名無しさん
NGNGデータ抽象化はいいことだと思う。だから、その言葉を知る前から、
Cで構造体を使うときは、それ専用の関数を用意していた。
なおかつ、構造体の定義と専用関数のプロトタイプは同一ヘッダファイルに
まとめ、専用関数群の実装は同一ソースファイルに収めていた。
だからそれら(構造体+関数)をオブジェクト化するのに異存は無いのだが、
プログラムのそれ以外の部分をオブジェクト化する必然性を感じない。
だからプログラム全体をオブジェクト化するOOが素晴らしいと言われても
何が素晴らしいのか理解できない。
0533デフォルトの名無しさん
NGNGでも反論はできないのね。
0534デフォルトの名無しさん
NGNG>Cで構造体を使うときは、それ専用の関数を用意していた。
なるほど。自分でデータ抽象化を再発明したのね。
ちょっと勉強してればそんな苦労はいらなかったのに。
>だからプログラム全体をオブジェクト化するOOが素晴らしいと言われても
>何が素晴らしいのか理解できない。
なるほど、理解できないと。それは勉強してから言ってる?
それとも自分で再発明するまで納得できない?
(一生再発明できないに一票。)
0535デフォルトの名無しさん
NGNGプログラムの中(例えばCのmain)で宣言している変数は
全てmainという構造(体)の中の変数として考えられないのかな。
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNGすべてのデータを抽象化しなければならないわけではない。当然どこかに
具象データ型を直接扱うコードは出てくる。
しかし、モジュール分けの原則としてデータ抽象が有効である以上、全体
を同じ原理で書けるようにして何が悪いのか分からない。
もちろん、例えばOO言語でもクラスメソッド(Javaならstatic method)にしか
しようがないコードはある。しかし、多くの場合、コードは特定の種類のデー
タだけを受け付けて動くようにできているのだから、データとコードを一体と
してモジュール分けの原則とするのは極めて合理的だと思う。
0538532
NGNGだから私の場合、オブジェクト指向しろと言われても、
プログラムの中で構造体が必要になる場所でしかできないだろう。
局所的なオブジェクト指向しかできない。
プログラムの中で構造体が登場しなければ
全くオブジェクト指向できない。
つまりOO初心者がとまどう
「何をオブジェクトにしたらいいの?」
という疑問が生じるのだ。
構造体を使う場合は戸惑わない。
必要なければ使わないまでだからだ。
ところがOOでは全ての部分で構造体を使え
と強要されるようなものなのだ。
プログラムの中で構造体絡みの部分は私の場合、
感覚的にせいぜいいって5〜10%くらいだと思う。
そのプログラムの種類にもよるが。
0539デフォルトの名無しさん
NGNGKnuthのようなヘタクソ日曜プログラマならそういう混同をするかも
しれないが、君は技術者をartistと訳すのかね?
問題があってそれをソフトウエアによって解決するときの(工学)技術
とはtechnologyでありengineeringだろう。
0540532
NGNGなるほど。ただ(広義の)構造化プログラミングを
そのようにしてOOPに「翻訳」したとして、
果たしてそれがOOPと言えるかどうか・・・
0541デフォルトの名無しさん
NGNGたくさんのグローバル変数があるとき、関連するものは
1つにまとめて扱うとモジュール化が容易だと思わない?
例え1つしか作らなくても、オブジェクトにする価値はあ
る。
たとえば、入力バッファとその中のポインタと、入力ファ
イルポインタを1つにまとめて、それを扱うコードと組に
すれば、Readerクラスのできあがり。別にReaderが1つし
か要らなくても、まとめて他と分離して悪いことはなかろう。
0542デフォルトの名無しさん
NGNGGet Putタイプのメソッドを作ってやらなければ
「使う側」が便利に使えない。
しかし、作る側は Get/Putメソッドを実装するのは逆に比べて何倍も労力を必要とする
同期型のスレッド・・・・重い上、少しのミスが命取り労力は非常に大きい
結局内部でIF文・スイッチ文テンコモリのメソッドが出来てしまう
言語機能として完全同期型=コルーチンスタイルを実装しなければこれは解決出来ないだろう
0543デフォルトの名無しさん
NGNG日本の教育は決して悪いものではないが新技術の開発には向かない
0544デフォルトの名無しさん
NGNG530 じゃないけど、電波すぎる。つっこみ所が多すぎて、つっこむ気になれない。
0545デフォルトの名無しさん
NGNG1つでいいよ。挙げてみて。
0546535
NGNGやっぱり
> (広義の)構造化プログラミング
でしょう。
でも、その考えで一貫させておけば、
処理系とかも考えやすいと言うことはあるんじゃなかろか。
Javaではmainはあるクラスの一関数であるみたいなのを見たとき、
ああなるほどって気になったなぁ。
Cプログラミングは「Cのプログラム」という多分一番大きな
クラスの定義の中で定義されたモノを使っているわけでもあるし。
それでも、その中に更に小さい単位のクラスを作って、
そこでしか見えないモノを使ったりもしているんだよ。
0547デフォルトの名無しさん
NGNG1つだけだよ(藁
データ抽象が必要だとして、それをよりよく実現する方法は、いろいろ考えられるだろう。
データ抽象を目指している方法論の全てが、正しいとは言えない。
0548デフォルトの名無しさん
NGNGそれは「データ抽象化したくない」と言ってるわけね。
抽象化が不要なオブジェクト(例えば単なる「座標」とか
「サイズ」とか)なら、別にgetter/setter作る必要ないの
では?
0549デフォルトの名無しさん
NGNGうーん、それはOOへの批判とは言えないな。
「データ抽象化とOOが相容れない具体例」を挙げてもらわないと
反論にはならないと思うが?
0550デフォルトの名無しさん
NGNGOOへの批判じゃないよ。
あんたの決めつけへの批判。
0551デフォルトの名無しさん
NGNG決めつけつか、単純な論理だが。
「OOがデータ抽象化の一種なら、
『データ抽象化が良い』→『OOが良い』」
『データ抽象化が良い』を前提にこれを否定するには
「OOがデータ抽象化の一種でない」を示す必要がある。
0552デフォルトの名無しさん
NGNG1つだけって言ったでしょ(藁
後は、自分の言ったことを信じられるか、自分に聞いてみて。
0553デフォルトの名無しさん
NGNGなんでOOにすると急に同期が必要になるの?
Cでデータ抽象化するときにも必要?
0554デフォルトの名無しさん
NGNG500は単純化しすぎているかも知れないが、
俺は、OO言語はデータ抽象化を強力に支援するし、
データ抽象化を突き詰めたひとつの形がOO設計であると
信じている。
0555デフォルトの名無しさん
NGNG信じられるかってのは、OOの事じゃなくて、551みたいな理論の事ね。
0556デフォルトの名無しさん
NGNGていうか、「芸術」の定義がゆがんだ形で変化している。
もとは技術と分け隔てできるものではなかった。
芸術について真摯に考えると、やっぱり技術と
切り離せるものではないと分かる。
0557デフォルトの名無しさん
NGNG世の中がギリシャ時代に戻ったら考え直すよ。
そのころも芸術とは無縁の労働者はいたはずだけどね。
0558デフォルトの名無しさん
NGNGデータ抽象化する時に同期が必要な場合は
呼び出す事が情報を与える=呼び出す事により状態が変化する場合。
状態が変化しなければ、もちろん不要だよね。
でもそれなら、そのデータを作っておいて参照させる場合と比べての
メリットは、そんなにないぞ
0559デフォルトの名無しさん
NGNGマルチスレッド環境を考えてるの?
抽象化しないときには同期が要らないの?
0560デフォルトの名無しさん
NGNG>データ抽象化
0561デフォルトの名無しさん
NGNG意味不明。データ抽象化の知識くらい詰め込んどいて損はなかろ。
0562デフォルトの名無しさん
NGNGイチローや中田みたいにアイデンティティ無しに個を確立
できるような強い人間でもない限りやはりどこかに帰属するしかない。
で、その日本人だがや・れ・る・!
自信を持て。まずは舶来物を批判的に見る習慣をつけろ!
批判といってもただダメだというんじゃなくて相対化することだ。
おれの見た感じでは、オブジェクト指向マンセーなやつは
何がだめかって、これがまったくできていないやつが多い。
がんばれ2chネラー、がんばれニッポンジン!!
0563デフォルトの名無しさん
NGNG人煽るくらなら
0564デフォルトの名無しさん
NGNGネタにしてもつまらん。
アイデンティティなしに個を確立っていきなり矛盾じゃん(藁
0565デフォルトの名無しさん
NGNG結果(副産物、しかもどちらと言えば、プログラミングにおける
オブジェクト指向の必要性を、一般化・合理化したいがための、
後から取って付けた理屈)だから、データ抽象の延長線上には、
オブジェクト指向は見えてこない。オブジェクト指向の真の動機
は別にあるからだ。
その真の動機とは、文字通りオブジェクトを指向すること、
現実世界の様々な「モノ」をプログラムの中に記述することである。
これはSimulaなどのシミュレーション用言語においては、
シミュレーションの対象物(モノ)をプログラムのコードとして
素直な形で記述するという意味で、自然な動機であったのだが、
シミュレーション以外の用途ではさほど必要性はないと思われる。
故に、何をオブジェクトにしていいか分からない、という困惑は
一般的プログラミングにおいては当然のことなのである。
一般的なプログラミングにおいて、オブジェクト指向しようと
すれば、プログラム中の様々な要素を「モノ」に見立てる
必要があるだろう。その必要性が無いにもかかわらず。
しかし、WindowsなどのGUIプログラミングにおいては、
様々なGUI部品(モノ)をプログラム中にオブジェクトとして
素直な形で記述できるので、オブジェクト指向の必要性は
高いと思われる。
0566デフォルトの名無しさん
NGNGやがてOOと相性の良さそうな使い道がリストアップされ、
使い所を見分けるのが常識になり、OOは単なる数ある手法の一つに落ちつくに一票。
(OOPLがどうなるかは知らんが)
OOは秀才向けかもしれんな。
0567デフォルトの名無しさん
NGNG> 何をオブジェクトにしていいか分からない、という困惑は
> 一般的プログラミングにおいては当然のことなのである。
「作りたいもの(作るべきモノ)がどんなモノなのかを
本当に分かっていないでプログラムしていも当然」
と言ってしまっている様にも読めるが…。
手続き又は手順でしか考えられない人もいるが、
それはトレーニング不足の様な気がするなあ。
(「…で考える」と言うことだよ。使う道具の事じゃないよ。)
0568デフォルトの名無しさん
NGNG565はどの立場にたって見るかでオブジェクトの切り出しかたが
ちがうっていうふうに読めたけど。
0569567
NGNG0570デフォルトの名無しさん
NGNGオブジェクト指向のスレッドを分かってない。
0571デフォルトの名無しさん
NGNG>一般的なプログラミングにおいて、オブジェクト指向しようと
>すれば、プログラム中の様々な要素を「モノ」に見立てる
>必要があるだろう。その必要性が無いにもかかわらず。
そんなこと考えてクラスをつくるやついるの?
0572デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG原理主義的には、
「プログラムが実現しなければならない機能要件を満たす何か」
だな。
コードから逆にクラスを起こすのはアレだ。
0575デフォルトの名無しさん
NGNG言ってることが分からない。
0576デフォルトの名無しさん
NGNGUMLを使った開発なら、まずユースケース書いてシナリオ書くじゃん。
シナリオの中に実現すべき機能要件が現れる。
んでクラスを抽出するじゃん。
「プログラム中の様々な要素」というのが実装レベルの話だと感じたので。
0577デフォルトの名無しさん
NGNG分かったけど、おれが言いたいのは UML 書くときでも
「こういうクラスがいるな」とか考えて書くと思うけど。
ああ、うまく説明できない、、、
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG失敗するんだったね。
設計しないでおもむろに書き始めた方が速かったり。
0580デフォルトの名無しさん
NGNGうん。コードが思い浮かぶよね。
このクラス作るには線形リスト使って、addとfindメソッドがあればいいか…とか。
RUP かなんかだと、分析/設計段階では抽象的な役割だけを表したクラス図を書いて、
実装段階でコードに落とせるクラスを書くみたいだけど、
さすがに面倒なのでやってない。
実装に引きずられたクラス作って後で後悔するんだけどね。。。
0581デフォルトの名無しさん
NGNGいま思ったんだけど、まずコードが思い浮かぶようになるのが OOP の第一段階。
実装に引きずられないクラスを作れるようになるのが第二段階。
0582581
NGNGとにかくコードが思い浮かぶようになればいいと思う。
0583言い逃げ日曜プログラマ
NGNGそれは俺が大物を作らないせい。
思うにオブジェクト指向の出元って少し大きなプログラム組むときまず
データ構造(構造体と言い切って良いかも知れない)を考えるところから
きているんだと思う。
データ構造が決まればプログラミングのメインはその構造体を
いじくるサブルーチンを考えることになるわけで、そりゃ結局メソッドのこと
なんだオブジェクト指向じゃん->ウマー
ここからさらに広がって
よーしパパ関数もオブジェクトにしちゃうぞー。なんて言すくらいなら
よかったが調子に乗って多態だの複雑な継承関係だのやり出しちゃうともう大変。
プログラムの改変性ニアリーイコールゼロ。
おまえら本当に動くプログラム書きたいんかと問いたい。小一時間問い詰めたい。
ただpureOOって言いたいだけちゃうんかと。
ぜんぜん使えない奴はもちろん論外。
まあお前らは出来合いのOOライブラリで全然OOじゃないプログラムでも
書いてろってこった。俺のことだがなあぐはははは
0584デフォルトの名無しさん
NGNGオブジェクト指向を勘違いしてる。
0585デフォルトの名無しさん
NGNGそのデータ構造を最初に固定する、
ってのが嫌(むずかしい)からOOPってのは出来たと思う。
でもその結果、構造に変更出来る部分が増えたYO!
と理論上はなっても、実際、変更がそれ程うまく行くか、
というと....
0586580
NGNGgetter/setter 含めてメソッドをがりがり実装して
よーし実行しちゃうぞー → 動かない → このアプローチじゃだめじゃん
となったときに、実装中心で考えていると
駄目なコードでも改良を続けてしまって捨てられなくなる。
インターフェイスとしてのメソッドがちゃんと決まっていれば、
定義は変えずに中身だけごっそり変更すればいいんだけど、
そうでないと泥沼的にメソッドを追加したり減らしたりが始まる。
挙句の果てにヘルパークラスを作り出すともうお手上げ。
一から書き直したほうが早かったと思っても後の祭り。
設計きちんとやればこういう惨事も回避できるのではと思うんだけど、
コードをごりごり書いてる方が楽なんだよね、泥沼に陥っててさえも。
0587デフォルトの名無しさん
NGNG不変条件を書いておけばなんとかなるような気がする。
0588デフォルトの名無しさん
NGNG初心者C++プログラマが陥りやすい罠に
まんまとひっかかっている
0589デフォルトの名無しさん
NGNGOOダメじゃんって思うだろうな。
プロパティだらけのオブジェクトでナにか作りたいなら
VBかなんかでもやってロ。
0590デフォルトの名無しさん
NGNGC++の糞なところだな。
0591デフォルトの名無しさん
NGNG多くて4、5くらいだけど、
川俣某氏のように書くのが面倒なので(w
ちなみにダメなのはOOじゃなくて自分なのは自覚してます、はい。
0592デフォルトの名無しさん
NGNG>プログラムの中(例えばCのmain)で宣言している変数は
>全てmainという構造(体)の中の変数として考えられないのかな。
いってることなんか変。
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNG例えば、
main()
{
int i;
for(i=1;i<=5;i++)
printf("HELLO WORLD\n");
}
こんなもん、OOPを強要するOOPLでどう書けばいいかって話で
↓こうすればどうかというわけです。
class Main{
int i;
public:
void execute()
{
for(i=1;i<=5;i++)
printf("HELLO WORLD\n");
}
};
でも、この場合iをメンバー変数にしてもあんまり意味が無いんで
↓これでいいと思いますが。
class Main{
public:
void execute()
{
int i;
for(i=1;i<=5;i++)
printf("HELLO WORLD\n");
}
};
0595デフォルトの名無しさん
NGNGしかし、一貫して、この方法で構造化プログラミングを
形式的にオブジェクト指向に変換しても、
それはオブジェクト指向だろうかという話です。
例えば
main()
{
int x,y;
x=input();
y=func(x);
output(y);
}
↑これを形式的に変換したもの↓はオブジェクト指向か?
(私はYESだと思うのだが、どうですか?
これを認めないとOOPを強要する言語では
小さなプログラムは組めないと思うのですが。)
class Main{
int x, y;
public:
void input();
void output();
void func();
void execute(){ input(); func(); output(); }
}
0596デフォルトの名無しさん
NGNGclass Main{
int x, y;
void input();
void output();
void func();
public:
void execute(){ input(); func(); output(); }
}
0597デフォルトの名無しさん
NGNG>class Main{
>public:
> void execute()
> {
> int i;
> for(i=1;i<=5;i++)
> printf("HELLO WORLD\n");
> }
};
こつちはいいと思う。
0598デフォルトの名無しさん
NGNGこれならオブジェクト指向ですかね?
class X{
int m_x;
public:
void input();
int func();
};
class Y{
int m_y;
public:
void set(int y);
void output();
};
class Main{
X x;
Y y;
public:
void execute()
{
x.input();
y.set(x.func());
y.output();
}
};
0599デフォルトの名無しさん
NGNGclass Main{
public:
execute(){
int x,y;
x=input();
y=func(x);
output(y);
}
int input(){ ... }
int func(int x){ ... }
void output(int y){ ... }
};
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNG書く場合はこんな感じ>>599でよろしいか?OOな方?
OO初心者はこんなことで真剣に悩むのです。
OOな方の見解を求む。
0603599
NGNG言語による。だいたいこんな感じ。
0605デフォルトの名無しさん
NGNG599さん、ありがとうございます。
これで眠れます。
0606デフォルトの名無しさん
NGNG/_ |
/. \ ̄ ̄ ̄ ̄|
/ / ― ― |
| / - - |
||| (6 > |
| | | ┏━┓| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | | ┃─┃| < 正直、もう寝なさい
|| | | | \ ┃ ┃/ \________
| || | |  ̄  ̄|
0607599
NGNGJAVAはメソッド全部に static を付けないといけない。変数にも。
0608デフォルトの名無しさん
NGNG幼児期の寂しい思いを引きずっていることに原因がある。
始めのうちは、何でもできるグルーヴに酔っていて解らないが。
やがてOOPでなくてもできるようになる。
0609599
NGNG607に書いたことは誤解を与える可能性があるので無視してください。
0610デフォルトの名無しさん
NGNGOO的にどうかの方が重要な原理主義者だと思われますよ。
ただのネタだと思うけど。
0611オブジェクト指向の真実
NGNG変数と関数の位置を、
形式的にひっくり返すだけのこと。
y = function(x);
↓
y = x.function();
printf("Hello world.\n");
↓
"Hello world.\n".printf();
0612デフォルトの名無しさん
NGNG↓
a = b.add(c);
↓
a = b + c;
0613デフォルトの名無しさん
NGNG単に形式上の問題に過ぎない。
0614デフォルトの名無しさん
NGNG非常にわかりにくいだろうなあ・・・
0615デフォルトの名無しさん
NGNGおいおい馬鹿馬鹿しくも、くだらなくも、ないぞ。
それがオブジェクト指向だ。
この場合、プログラムが小さ過ぎて、
ありがたみがわからないが、
(だからそこまでする必要はないが)
プログラムによっては、
そのようにコーディングしておくことで、
保守、改良、拡張に威力を発揮する。
0616デフォルトの名無しさん
NGNG単に形式上の問題というが、それが大問題なのだよ。
どのような形式でコーディングするか、
それによって生産性が大きく違ってくる。
なぜならプログラムは人間が書くものだからだ。
単なる形式と言うならば、それは構造化プログラミングとて同じこと。
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGCLOSのようにメッセージパッシングでないオブジェクト指向システムもある。
CLOSでは (gf obj1 obj2 ...) と書くと、すべての引数のクラスによって
gfという名のメソッドの中から当てはまるものが選ばれる。最初だけが
特別ということはない。
0620デフォルトの名無しさん
NGNGしないほうが良い。インターフェースが重要。(実装の)継承は、設計を詳細
化していく過程で行われる一種の最適化だと思った方が良い。
昔はOOの利点として継承を強調することもあったが、今ではホワイトボックス
再利用の弊害が分かっているので、継承にはむしろ慎重になるのが常識だろう。
0621デフォルトの名無しさん
NGNGOOでは継承は重要でない。
OOPでは、ステップの削減は重要だから、OOに関係無く継承は重要。
位のネットで言われてないこと書いたらどうだ?
0622デフォルトの名無しさん
NGNG仕事では使う機会がない。ただ、
ラッパークラス却下
0623デフォルトの名無しさん
NGNGOOの話ですぐ「継承で悩む」とかいう厨房ばっかりだから。
ステップってLyeeの話か?(藁
0624デフォルトの名無しさん
NGNG継承しまくって行き詰まる、という話なら聞いたことあるが。
0625デフォルトの名無しさん
NGNGOOとOOPと別けてるだろ。
ステップが減るというメリットが分からないやつは学生。
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG継承がホワイトボックスになるのは assertion を書かないから。
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNGassertion が言語に実装されていればってこと。
実装されていなくてもコメントに書いておけば継承するときの指針になる。
0633sage
NGNG0634デフォルトの名無しさん
NGNGあぁ、contractの話ね。
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNGそういえば、「ホワイトボックス再利用」ってどういう意味なんでしょ?
なんとなーく、分かるけど。
質問しようと思っていて、忘れてた。
0639デフォルトの名無しさん
NGNGインターフェースを介して(見えるものが制限された状態で)
部品を再利用しようとするブラックボックス再利用に対する
言葉で、実装のコードが丸見えの状態で、別にインターフェー
スには制約されずに再利用を行うこと。特に、子クラスが親
クラスのpublicでない変数やメソッドに直接アクセスするよ
うな再利用のやり方。
0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNGオブジェクト指向はインチキじゃない!
理解できない人がそう思ってるだけ。
0642デフォルトの名無しさん
NGNG10回くらい同じ台詞を聞いたが、みんなあんたか?
0643sage
NGNGそんなわけないだろ!
0644643
NGNG0645デフォルトの名無しさん
NGNGまあ、ある程度主旨はわかるが、
たとえあるclassがassertionでいろいろ教えてくれたとしても
継承したclassがassertionで宣言されていない性質を利用できないような仕組みがないと
結局white boxになるのでは?
0646デフォルトの名無しさん
NGNG「宣言されている性質」じゃないの?
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNGコピペ >= 関数 > クラス
0649デフォルトの名無しさん
NGNG(デフォルトでメンバーの属性がprivate)しようとするのはやりすぎ。
デフォルトでprotectedにすべき。と思うのは俺だけ?
あとメンバー変数にread-only属性が欲しい。
インスタンスを操作するだけの場合と
クラスを派生させる場合とでは、明らかに
プログラミングにおける次元が違うというか、フェーズが違うというか。
それを同列に扱ってるように感じる>デフォでprivate
0650628
NGNG>継承したclassがassertionで宣言されていない性質を利用できないような仕組みがないと
>結局white boxになるのでは?
そういう仕組みがある言語もある。
0651628
NGNGprivate の代わりに assertion があればもっといい。
0652645
NGNG例えば、ある配列型のインスタンス変数arrayについて
assertionでは a[i] <= a[i+1]としか表明していないけど
実装ではa[i+1] = a[i] + 1になっている場合を想定して、
subclassで実装したメソッドがa[i+1]=a[i]+1を前提にしている
というような場合も検出できるってこと?
0653デフォルトの名無しさん
NGNGassertionは良く知らんが、C++などでデフォルトprivateなのは
正しいと思う。よほどの決心をしない限り、子クラスであっても
インスタンスを組み合わせる場合と同じく「他人」として扱う
べきだ。
protectedはfriendと同じく、最適化のためにインターフェースを
緩める(そのぶん変更には弱くなる)仕組みと考えるべきだ。
0654デフォルトの名無しさん
NGNGネタスレなんだよね?
0655628
NGNGコード希望。きいてることが よくわからない。
0656628
NGNG参考にしてください。
http://www.eiffel.com/doc/online/eiffel50/intro/language/invitation-00.html
http://www.eiffel.com/doc/online/eiffel50/intro/language/tutorial-10.html
オブジェクト指向言語のはなし ピアソン・エデュケーション
0657デフォルトの名無しさん
NGNG本気です。
0658デフォルトの名無しさん
NGNGJavaでアプレットも作った。
だが未だにオブジェクト指向がわからん。
色んな奴が色んなことを言う。
俺のソース見てもOOじゃないと言われる。
でもちゃんと動くぞ。
0659デフォルトの名無しさん
NGNGUMLを使ってみれば、自分が本当にOOを理解してるのかわかると思いますよ
OOPを実践してる人なら、UMLはすぐにつかえますよね
この前仕事で、VC++のコードを読んだのですが
virtualが一個もありませんでした(笑)
そして、if/eles/if/else/・・・めまいがします
OOがわかってないけど、C++なんて例は結構ありますよ
関数が、処理のモジュール化なら
OOは設計のモジュール化でしょうか?
OOを簡単に短期間でマスターするのにうってつけの方法は、
JavaのライブラリーをC++に移植する事です。
そうすれば、JAVAの理解がかなり深まりますし、
C++でOOPもできるようになるのでは?
がんばってください
0660デフォルトの名無しさん
NGNGアホなこと抜かすな
0661デフォルトの名無しさん
NGNGJavaのライブラリってOO的には駄目なのか?
つうか、現存するOO的に良いライブラリってなんだろ。
0662デフォルトの名無しさん
NGNGJavaのライブラリが駄目か良いかじゃなくて 660は
Javaのライブラリーを C++に移植をしても OOPできるように
ならないっていいたいんじゃないの?
0663デフォルトの名無しさん
NGNG659に一票。Javaのソース読むだけでも随分理解は深まると思う。
0664デフォルトの名無しさん
NGNG同意。
ただ、C++に直すには、GCライブラリを併用しなきゃ無理だね。
0665デフォルトの名無しさん
NGNGJava的に良いライブラリと
C++的に良いライブラリってのは別だし
Smalltalk的に良いライブラリってのもまた別だろ。
0666デフォルトの名無しさん
NGNGんな細かいこと言ってたら、
初心者は一歩も前に進めないよ。
OO初心者にはとりあえずOOどんなものか、
百聞は一見に如かずで、
Java(メジャーなC/C++に近いJavaがいい)
のソースを読んだ方がいい。
大体、俺もそうだったけど、具体的なコードも無しに
抽象的な理屈ばかり聞かされても、それじゃあ
"Hello world"はどうすりゃいいのか、それすらわからなかったよ。
(見てみりゃ「なんだこりゃ。こんなんでいいのか?」だった)
その方が、小うるさい偏屈どもの見解バラバラの議論を
聞かされるより、初心者には混乱が無い分ずっといい。
細かいことはそれからだよ。
0668デフォルトの名無しさん
NGNGそれならオブジェクト思考を否定しなくてもいいんじゃないかな。
0669659
NGNGえ、そうですか?
具体的にクラスを挙げてもらえるとわかりやすいのですが
もちろんdeleteは自分で書かなきゃいけないですけど
私はJAVAをやってからC++やったので
virtualの意味もわかりましたが、
C++から始めた人が、オブジェクト指向をどうやって理解してるのかが
かなり疑問です。
とりあえず、C++は世の中から早く消えるべきですね(笑)
0670デフォルトの名無しさん
NGNGていうかオブジェクト指向はC++の用意してる道具のひとつ
に過ぎないんだが... 標準C++知らないんだろ。
generic programmingは知ってるかい?
STLはJavaのライブラリが作られたのと同時期に別の方針で
作られたんだが。
0671670
NGNGプラットフォーム依存の部分が標準化されなかったのは問題ではある
0672デフォルトの名無しさん
NGNGならなくなるだろ。
静的型付けの言語ならSTLのアプローチが正解。
0673デフォルトの名無しさん
NGNGparameterized classをつかった genericが正解。
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG別に、インスタンス化したときに型チェックが出来れば、それでいいんでは?
0676デフォルトの名無しさん
NGNGそれではinstanceが型的に正しい事がわかるだけで、
template自体が型的に正しいかどうかはわからない。
libraryで使うにはダメダメでしょう。
0677デフォルトの名無しさん
NGNG小難しい用語を振り回せば気分はスペシャリスト?
アンチはアンチで、OO自体糞といっているのか、今あるOOPLが不満
なのか、単に信者がうざいのか不明。
どーにかしてくれ。
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG>template自体が型的に正しいかどうかはわからない。
>libraryで使うにはダメダメでしょう。
「型的に正しい」とはどういう意味? どんな型でも「正しい」
のがテンプレートですが何か? 適切な演算子/インターフェイス
さえ存在する限り適用できる。
0680デフォルトの名無しさん
NGNG0681673
NGNG673の主張を取り下げます。
お騒がせしてすみません。
0682デフォルトの名無しさん
NGNG>OO信者に限って全然OOを使いこなしていない説に一票。
>小難しい用語を振り回せば気分はスペシャリスト?
激しく同意。
あ〜もう信者がウザイ、マジでしね。
おかげでおれはもうすっかりアンチ Lisp でもやるかな、もう。
OO は本質じゃないところで効率が落ちる。
0683横槍くん
NGNG0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNGLispにはCLOSという名前のOO機能がある。
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNGだからテンプレートとかオブジェクト指向と関係ないんだって。
オブジェクト指向「だけ」サポートすればいい言語とそうでない
言語の違いだよ
0688デフォルトの名無しさん
NGNG混ぜて書けるC++が正解。
0689デフォルトの名無しさん
NGNGCLOS以外にもLOOPSとかFlavorとかのOO拡張があるよね。
で、それらはオブジェクト指向の歴史にもかなり影響を与えているわけで。
0690デフォルトの名無しさん
NGNGアホ発見。
0691デフォルトの名無しさん
NGNGダサダサにもほどがあるよ。
0692デフォルトの名無しさん
NGNGいや、それも重要な評価要素ではあるんじゃない?
オブジェクト指向使わない人にはあまり関係ないけど。
0693デフォルトの名無しさん
NGNGオブジェクト指向ー詐欺師の時代の終焉。
あまりにもC++に特化して話してない?
0694デフォルトの名無しさん
NGNG0695691
NGNGっていうか、プログラミング言語ってのは
いろんな概念を組み合わせて一つのモデルと表現を提示するわけで、
どんな概念を実装しているかみたいなカタログスペックよりは、
全体として、それぞれの概念がうまく継がって組織化されているかが
言語が実装している概念に関して評価するためのポイントになると思う。
っていうか、オブジェクト指向という構造だけを捉えて
良い悪いも何もないと思うのだが。
0696デフォルトの名無しさん
NGNG>良い悪いも何もないと思うのだが。
これは言語中心の視点でのこと?
オブジェクト指向というモデルが有用かそうでないかはいえると思うが。
0697デフォルトの名無しさん
NGNGOOあるいはクラスを使わない部分を組む時はマイナスでしかない。
0698デフォルトの名無しさん
NGNG全部クラスで組めないのはオブジェクト指向を分かってない証拠。
0699デフォルトの名無しさん
NGNG>templateはインスタンス化するまで型チェックできない
というのは違ってるけど
取り下げなくてもいいんじゃないかな。
templateはインスタンス化するまでコンパイルエラーを検出できないし。
0700デフォルトの名無しさん
NGNG>ならなくなるだろ。
これは問題ですよね?
Javaでは委譲させる方針なのではないでしょうか?
例えばStackなら
class NewStack{
private stack;
void push(NewObject obj){stack.push(obj)}
NewObject pop(){return (NewObject)stack.pop();}
}
ってな感じで・・・
私は、ダウンキャストが必要なほどの汎用的なコンテナはあまり使わないので
よくわかりませんが・・・
0701デフォルトの名無しさん
NGNGOO原理主義者発見!
0702デフォルトの名無しさん
NGNG反OO原理主義者発見!
0703デフォルトの名無しさん
NGNG>しかし、一貫して、この方法で構造化プログラミングを
>形式的にオブジェクト指向に変換しても、
>それはオブジェクト指向だろうかという話です。
>例えば
>
>main()
>{
> int x,y;
> x=input();
> y=func(x);
> output(y);
>}
>↑これを形式的に変換したもの↓はオブジェクト指向か?
>(私はYESだと思うのだが、どうですか?
>これを認めないとOOPを強要する言語では
>小さなプログラムは組めないと思うのですが。)
>class Main{
> int x, y;
>public:
> void input();
> void output();
> void func();
> void execute(){ input(); func(); output(); }
>}
ってゆーかinput func outputとか機能を関数的に分解して思考してる所が
すでに駄目なんだな。うちにもそういうボケたオヤジがいるんだけど、
おまえらマジどっか行けって感じだな。
0704デフォルトの名無しさん
NGNGネタにマジレス
0705595
NGNGんじゃどーゆーふうにするの?教えて?
ネタじゃ無いです。
0706595
NGNGどう違うのか示さないんじゃ
OOに不信感を抱く。(ネタじゃありません)
0707デフォルトの名無しさん
NGNGお前が本当にOOを理解してるならな。
0708デフォルトの名無しさん
NGNG0709595
NGNGお前ならどう書くんだよ。マジで知りたい。
短いプログラムなんだからよ、書くのに時間はかかんねえだろが。
いらいらすんだよ。さっさと書けよ。ネタじゃねえぞ。
0710704
NGNG構造化プログラミングにおけるモジュール強度の議論は知ってる?
e.g. http://hata.cc/docs/software-guide/2-1.html
595 のやり方だとせいぜい時間的・手順的強度しか持たない。
もちろんサンプルのコードがごく短いため、
それ以上の強度が必要とされないということもある。
オブジェクト指向のメソッドは、
この指標では情報的・機能的強度を持っているモジュールといえる。
0711595
NGNGいやだから本当のところどうなのさ?
あの短いプログラムをOOで書いてたらどーなるの??
0712デフォルトの名無しさん
NGNGするんだろw
0713704
NGNG前提となっているプログラムの
input() func() output()
といった関数がオブジェクト指向プログラムのメソッド程度の
モジュール強度を有していないので、
変換するという行為自体無意味。
input/output は入出力を司るクラスに任せるだろうし、
func なんて何するか分からんメソッドはそもそも作らない。
0714デフォルトの名無しさん
NGNG俺ならそうする。(マジ)
0715デフォルトの名無しさん
NGNG書いていて恥ずかしくないか?
0716704
NGNGオブジェクト指向以前の用語を使おうと思って。
ソフトウェア工学方面でしか使われない用語だけど、
モジュール強度の考え自体はおかしくないと思うが。
0717595
NGNG>func なんて何するか分からんメソッドはそもそも作らない
言ってる事が無茶苦茶だ。
OOPLではどんな処理でもメソッドに書くしかないだろうが。
あんな簡単な小さなプログラムが
あんたには書けないということになるぞ?
0718595
NGNG抽象的なことばかり言って煙に巻こうとするだけ。
ネタでもあおりでもないよ。
0719704
NGNG名前が悪いってことだよ。
メソッドの処理・機能に適した名前を付けなきゃしょうがない。
これは OO 以前の話か。
OO 的にするなら、func() の代わりに func() が成す
機能を表したクラスを作って、そいつのメソッドを呼び出す。
0720704
NGNG前提とする概念が存在するのだからしょうがないじゃん。
プログラミングするときに、漠然として無意識的に考えていること(暗黙知)を
形式知に変えてやるのが構造化プログラミングやOOP(などの手法)の仕事の一つなんだよ。
例えばデザインパターンはその代表例。
ある程度の経験をもった人なら同じようなことを考えついているし使ってもいるが、
それをみなが共通して使える概念として形式知化したのが大きな功績。
0722595
NGNGつうか全然一連の文脈の中で読んでないだろ>>704
0723デフォルトの名無しさん
NGNGそして木の車輪を押し付けてくる。と。
0724704
NGNGOOPL の形式的には両方正しいよ。
コードの抽象度が高いから何ともいえない。
C++ で例を挙げれば、
input が scanf を呼んで得た値をメンバ変数にセットするなら
余り行儀がいいとは思わない。
俺ならデータ入出力用のクラスを作るという程度なので、
(テキストから読むか、DB から読むか、あるいはデータの形式が変わるかも知れないので)
それが悪いとはいえないが。
0725595
NGNG0727デフォルトの名無しさん
NGNG木の車輪を押し付けてきて、
使わないと「ロートル、頭が固い」とレッテル貼りする。
07281/3
NGNG// mainbase.h
///////////////////////////////////////
#ifndef MAINBASE_H_INCLUDE
#define MAINBASE_H_INCLUDE
class IInput
{
public:
virtual int Get() = 0;
};
class IOutput
{
public:
virtual void Put(int x) = 0;
};
class MainBase
{
protected:
IInput* m_Input;
IOutput* m_Output;
protected:
void SetIO(IInput* in, IOutput* out){m_Input=in;m_Output=out;}
int Input(){return m_Input->Get();}
void Output(int x){m_Output->Put(x);}
public:
virtual int Execute() = 0;
};
#endif// MAINBASE_H_INCLUDE
07292/3
NGNG// ui.h
///////////////////////////////////////
#ifndef UI_H_INCLUDE
#define UI_H_INCLUDE
#include <iostream>
#include "mainbase.h"
using namespace std;
class IInputStandardStream : public IInput
{
public:
int Get()
{
int i;
cin >> i;
return i;
}
};
class IOutputStandardStream : public IOutput
{
public:
void Put(int x){cout << x <<endl;};
};
#endif// UI_H_INCLUDE
07303/3
NGNG// main.cpp
///////////////////////////////////////
#include "mainbase.h"
#include "ui.h"
class MainSample : public MainBase
{
public:
int Execute();
private:
void Initialize();
int Func(int x){return x++;}
};
void MainSample::Initialize()
{
IInputStandardStream *in = new IInputStandardStream();
IOutputStandardStream *out = new IOutputStandardStream();
SetIO(in,out);
}
int MainSample::Execute()
{
Initialize();
Output(Func(Input()));
return 0;
}
/////////////////////////////
int main()
{
MainSample sample;
return sample.Execute();
}
0731728-730
NGNG0732728-730
NGNG0733先生
NGNG0734728-730
NGNGデモOOスキヨ
0735デフォルトの名無しさん
NGNG本人は「理解して批判してるつもり」なのに、まわりから見ると
ただの「ついていけない人間のアガキ」。
0736デフォルトの名無しさん
NGNGOOは役立たずの糞。猿プログラマのオナニー。
0737デフォルトの名無しさん
NGNGあー、はいはい。努力したのに理解できなかったのね。
可哀想に。
消えろ。
0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNGうざすぎ。黙ってオナニーしてろ。
オナニーの仕方を押し付けるな。
0740デフォルトの名無しさん
NGNG10人とも違うことを言うじゃねえか。
いい加減それがオブジェクト指向の
正体だと悟りやがれ。間抜け。
0741デフォルトの名無しさん
NGNG一番理解してなかったりするんだよね。
大体バグだしてトラブル起こして、ついでに人間関係にまでトラブル起こす。
もう最悪
0742デフォルトの名無しさん
NGNGられなくてスレを読み返してみたんだが、反OO派は結局「データ抽象」を持ち
出されるたびに黙り込んで答えず、しばらくしてまた中身のない批判を繰り返
しているだけに見える。
・反OO派はデータ抽象の利点を認めないのか?
・認めるなら、>>351 みたいなコードを自分で毎回書くのか?
・それくらいならC++やJavaを使った方が良いということがわからないのか?
0743デフォルトの名無しさん
NGNG妄想君。
OO原理主義は生産性下がるから駄目だという簡単な話。
0744デフォルトの名無しさん
NGNG結局、今自分がいる環境によりけりな気がする。
OO を取り入れている職場かそうでないか。
使ってなくても仕事ができているなら
わざわざ勉強してまで使う気がしないのかも。
特に自分ひとり頑張っても職場全体で使われなきゃだめなことだし。
0745デフォルトの名無しさん
NGNGそうやって話をはぐらかしてばかりいると「分かっていない」と思われても仕
方がない。
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNGはぐらかすって何が?
抽象データ型がどうしたって?
0748デフォルトの名無しさん
NGNG分かってるわかってないとかじゃなくて、OOは精神病患者を呼び寄せる何かがあるから厄介なんだよ。
黙って使ってりゃいいんだ。
0749デフォルトの名無しさん
NGNG妄想だと言ってるだろ。VOKE!
0750デフォルトの名無しさん
NGNGそれが判らないキティーが集まるのがOO。
0751デフォルトの名無しさん
NGNGその生産性って一体何?
コードを書く速さ?
設計から保守までを含めたもの?
0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNGただ「OOはダメだ」と繰り返していればOOが自分の前から消えてくれると信じ
て「ダチョウ的対応」をしているのにすぎないのか…
>>742 の3つの質問に答えることさえ出来ないのか?
0754デフォルトの名無しさん
NGNG全部
0755デフォルトの名無しさん
NGNGクラスとOOを混同してるし、メソッドをゲッターとセッターしか
思いつかないらしいな。
0756デフォルトの名無しさん
NGNGムダだよ。やつら反OO派は「妄想」「信者」と繰り返すばかりで
中身の議論なんかしようとしない。まあ仕様と思ってもできないん
だろうけどな。
0757デフォルトの名無しさん
NGNG人の迷惑、考えたことある?
0758デフォルトの名無しさん
NGNGはぐらかすのはもう良いからさっさと質問に答えてくれないかな?
0759デフォルトの名無しさん
NGNGむやみに継承するほうが迷惑。
0760デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGみとめるよ、よく使う
>・認めるなら、>>351 みたいなコードを自分で毎回書くのか?
かかない。
>・それくらいならC++やJavaを使った方が良いということがわからないのか?
意味不明
0764デフォルトの名無しさん
NGNG禿動
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGみんなオブジェクト指向なんて普通に使ってるんだよ。
ここは当たり前のことをわざわざ力説するやつを馬鹿にするスレなんだよ。
1+1 は 2 なんだよって幼稚園生以外に力説してたら馬鹿だしね。
0769デフォルトの名無しさん
NGNGなんだ、「OO使う人間が嫌い」な側から見ればあんたも
嫌われるんじゃん。
0770デフォルトの名無しさん
NGNGつまりあなたも(気が付かないうちに)OO使ってました、と。
0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNGその挙句、
OO使うかどうかでその人が嫌いかどうかを決めてしまうぐらい
OOに頼りっきりの人間になっていました、と。
0773デフォルトの名無しさん
NGNG情けない話だね。
自分が罵っていたのが自分自身だったことにやっと気づいた768(藁
0774デフォルトの名無しさん
NGNGで、君は他人がシッタカかどうかを判断できるほど
ちゃんとした知識と技術があると思ってるんだね、シッタカ君?
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG>OOに頼りっきりの人間になっていました、と。
そんなこたぁねえよ、世の中は広い、関数型言語とか論理型言語とかやってみな。
OOは万能じゃねぇ。
0777デフォルトの名無しさん
NGNGプププププ‥ 何、涙目になってんだYO!
0778デフォルトの名無しさん
NGNG手続き型・関数型・論理型というパラダイムとOOかどうかは直行する。
オブジェクト指向関数型言語(Ocaml)やオブジェクト指向論理型言語
(ESP)もあるよ。
0779デフォルトの名無しさん
NGNG>OOは万能じゃねぇよ。
の間違い
0780デフォルトの名無しさん
NGNGハア?
関数型言語も論理型言語もOOを取り入れてる言語は色々あるが、
それが何か?
0781778
NGNG0782デフォルトの名無しさん
NGNGしってるだけで使ったことねぇだろ(藁
0783デフォルトの名無しさん
NGNG・データ抽象化が便利な時は当然そうする。
・Cと共存させるなら>>351みたいなコードを書くことはある。
・全部objectiveに書くプログラムならC++なり何なりで書く。
逆に質問。
・OO原理主義者はデータ抽象化が無用の長物になる場面があると認めないのか?
・Hello worldをいちいちクラス作って書くのか?
・それくらいならCで非OO的に書いた方が良いということがわからないのか?
0785デフォルトの名無しさん
NGNG>・OO原理主義者はデータ抽象化が無用の長物になる場面があると認めないのか?
認めるとも。抽象データ型もどこかで具体的なデータ表現に落すんだから。
>・Hello worldをいちいちクラス作って書くのか?
それは言語による。「プログラムはクラス(とメソッド)。関数や手続きなん
てものはない」と割りきった言語(メソッドと関数を両方持つよりはまし)な
らクラス作る。C++ならmainだけで書くね。
>・それくらいならCで非OO的に書いた方が良いということがわからないのか?
「データ抽象化(やOO)を使わない局面がある」のと「OOを否定する」のは全
く別の話。「OOを全否定する」のは「OOが有用な局面など存在しない」と言っ
ているのと同じなのだから。
0786785
NGNGも知れん。
0787デフォルトの名無しさん
NGNGflex bison で、
そういうのエラソーに自慢するからバカにされるんよ。
0788デフォルトの名無しさん
NGNG君はHello worldを書く時の生産性や実行効率で
言語を評価するのか(藁
それは横に置いといて、まあマジレスしてみるよ。
・データ抽象化が無用の長物になる事は、あるな。
ただ、どんな形で再利用されるかわからないような状況では
できるだけ抽象しておいたほうがいい、とは思うが。
・Hello worldぐらい、どっちでも構わんな。
それにクラスを使わないOOもあるでよぉー。
・Cで非OO的なアプローチのほうが向いてる分野ってのは、確実にあるよ。
俺、現状ではSmalltalkでデバイスドライバ書きたくないもん(藁
っていうか、ちゃんとしたプログラマなら、
どんな状況でどんな言語を使うか、それぞれの言語が
取り入れている概念を理解した上で判断するもんだろ。
俺が哂ってるのは、OOだから糞だとか、そういう主張ね。
0789デフォルトの名無しさん
NGNGflex bisonでねぇー。
そういうのエラソーに自慢するからバカにされるんよ。
0790デフォルトの名無しさん
NGNG「全部抽象化しろ」というのは不可能だし「OOは全部ダメ」というやつは本当
に分かってないのが明らかだ。つまり、まともなヤツはみんな「適切なところ
だけ抽象化して書く」という点で一致してる。
だいいち、必要なところだけ抽象化して書けば、ある意味それで立派なOOPに
なってるわけだからな。その道具として便利なら当然OOPLを使うだろう。
OO全否定派は論外として、OO否定派が「会社にOO原理主義者がいてウザイ」と
いうのは、「どこまで抽象化するか」で意見が食い違ってウザイ、ということ
じゃないの?
(少なくとも「いたるところ全て抽象化して書け」というようなOO原理主義者
はこのスレで見たことがない。)
0791デフォルトの名無しさん
NGNGまとめようとするなよ(藁
せっかく煽ってるのに。
「OO全部ダメ」とか「すべてメソッドで」とかの両極端が糞なのは
最初から分かりきってるだろーが。それを承知で遊ぶのがこのスレ
だろう?
0792デフォルトの名無しさん
NGNGOOPするときはクラスしか思い浮かばないけど
クラスを使わない部分があるってどういうこと?
UMLはどんなふうに書くの?
デザパタはどんなふうに使うの?
Smalltalk, JAVA, C# のような言語をどう思ってるの?
0793デフォルトの名無しさん
NGNG俺はOOマンセーな人間だがUMLによるOODには正直疑問を抱いている。
インターフェースを用いた抽象化を十分支援していないように思えるから。
UMLでクラスの属性を書いてしまうと、かなり具体的な表現を与えてしまう
ことになる。設計の初期段階でクラスの内部表現を具体的に決めてしまうの
は害があるように思える。
デザパタについては、インターフェースを用いたオブジェクトコンポジショ
ンを強調しているところが良い。インスタンス変数を直接触るようなコード
は出てこない。そういう具体的な表現は、デザパタで扱うより下位のレベル。
Smalltalk: 「何でもクラスとメッセージ」でやってみようという気概は買
うが、数式や関数の表し方が不自然になった。
Java: いろいろ細かい不満はあるが、今のところもっとも良いOO言語。
C#: Javaの焼き直し。後出しだけに優れたところもあるが、MSらしい汚らし
いところも多々ある。デフォルトnon-virtualなのは何とかしろ。
0795デフォルトの名無しさん
NGNGおれもかなりOO原理主義っつーかSmalltalk原理主義はいってるが...
OOPするときにはクラスよりもまずインスタンスを思い浮べるよ。
クラスはあくまでインスタンスを実装する手段って感じ。
Smalltalk: マンセーだけど、四則演算ぐらい特別扱いしてやっても...
Java: interfaceは買い。checked exceptionもイイね。
静的型OO言語としては、かなりよい言語だと思う。
ただ整数がオブジェクトじゃないのは萎え。
C#: boxingは買い。あと、使った事ないけどstructもいいかも。
あとはJavaと同様。
0796デフォルトの名無しさん
NGNG>ことになる。設計の初期段階でクラスの内部表現を具体的に決めてしまうの
>は害があるように思える。
俺は初期の段階ではクラス名だけのクラス図を書いて、
後で実装しつつクラス図を詳細化(またはその逆)してる。
最初に書くクラス図とその後に作るクラス図は必ずしも対応してない。
大抵は分割したりデザパタのためにクラスを追加したりだな。
箱書いた紙だらけになるけど、
クラス図眺めておかしいところを発見することがままあるので良しとしてる。
0797デフォルトの名無しさん
NGNGデフォルトnon-virtualは、間違いをコンパイラで拾えるから
むしろ、良い傾向だと思うが…
どちらかというと、C++でいうところのテンプレートを
サポートしなっかったのは、どうでるでしょうか?
Javaでももうすぐサポートしそうな感じ(?)なんだけど…
0798デフォルトの名無しさん
NGNG実装がハッシュか木か等は実行時に決まる、という重要な
特性がnon-virtualだと失われる。コンパイル時に実装も
一意に決まってしまう。
0799デフォルトの名無しさん
NGNGデザインパターンの多くのパターンはnonvirtualだと使えないよ。
0800792
NGNGDesign by Contract がお気に入り。
メソッドはデフォルトnon-virtualだがオーバライドすると
コンパイラが virtualにしてくれる。
0801デフォルトの名無しさん
NGNG確か、Eiffel って演算子オーバーロードできたよね。
どういう仕組み使ってるの?coerce?
0803デフォルトの名無しさん
NGNG気づかなかった間抜けな厨房だけでした。
---------------------------終了---------------------------------
0804デフォルトの名無しさん
NGNGおいおい、決めつけるなよ。
本当にOOも抽象化も使ってないバカもきっといるって(藁
0805デフォルトの名無しさん
NGNGサンクス。が、不勉強で悪いけど読めない…
前者が単項の + で後者が加算の + なのはわかるけど、
ANY というのは文字通り何の型でも受け付けるという意味?
それとも対応したい型の数だけ定義が必要?
あるいは同じ型に対しての演算に閉じた演算子を定義可能なのかな。
静的型だと3番目か。
入門ページ見つけたけど特徴だとか総称だとか漢字が溢れててダメだ…
0807デフォルトの名無しさん
NGNG逆に言うと、デザパタの多くのパターンの多くはoverride"しなければならない"。
または、TemplateMethodのようにoverride"すべきでない"こともある。
それをPGがはっきり意識するように、virtual/overrideキーワードがある。
とはいうものの、C#のvirtual/overrideは、Javaのfinalの裏返しみたいなものだから
どちらの方が良いというものではないかもしれない。
むしろ、virtualにする場面の方が、はるかに多いと思われるので、
上の方のclassはvirtualだらけになってしまうだろう。
しかし、この「いつも意識しなければいけない」というのが狙い。
ただまあ、気構えとかコードの見栄えとか好みの問題なので
どちらの方が良いかは、かなり賛否両論だろう。
0808デフォルトの名無しさん
NGNGvirtualにしないでvirtual的な使い方をしようとしたとき、
ちゃんとエラーになるなら良いけど、C#だと、気づかずに
nonvirtualになっちゃうことはないの?
0809デフォルトの名無しさん
NGNGC#には sealedってキーワードがあったような . . .
0810807
NGNGしんどくなってきたよ(TДT)
実は、>>807を返答するにも、必死でwebをあさっていたのさ
ttp://www.asahi-net.or.jp/~AN4J-UEHR/homepage.en/jp/.NETplaf/bench.htm
ttp://www.users.gr.jp/ml/archive/CS/66.asp
よく知ってる人、あとは任せた
0811デフォルトの名無しさん
NGNGC#で新たなインスタンスメソッドを宣言するときには、
C++と同じようにvirtualかnon-virtualかを選ぶことができる。
その派生クラスで同じシグネチャのメソッドを宣言するときは、
overrideするか、同じシグネチャの別のメソッドを新しく作るか
の2通りがある。後者の場合、基底ではvirtualだったメソッドと
同じ名前のnon-virtualなメソッドを新たに作るなんてこともできる。
(逆に、non-virtualだったのをvirtualにすることもできる。)
例えば、クラスComponentにresize(int x, int y)というvirtual
メソッドがあって、その派生クラスFrameのインスタンスに対して
resize(x, y)を呼び出すとき、Componentの定義を見ただけでは
これがvirtualメソッドかどうか分からない。Frame、その親、その
また親、...と定義を見ていって、resize(int, int)を定義している
場所を見つけなければならない。
その他、新たなメソッドを宣言するときにはabstractメソッドに
することができる(暗黙のうちにvirtualになる)。新たなメソッド
宣言やoverride宣言でsealed修飾を加えてoverrideを禁止できる。
(でも、同じ名前の新しいメソッドを派生クラスで宣言することは
できる。)
0812デフォルトの名無しさん
NGNGそのメチャクチャな論法で行くと、どのソースも構造化使ってるからOOPなど
存在しないことになるぞ?
0813デフォルトの名無しさん
NGNG意味不明。構造化構文とOOは独立だがデータ抽象化とOOは密接な関連がある。
0814デフォルトの名無しさん
NGNGメチャクチャってどこがどう?
0815sage
NGNG812は荒しだよ。放置しろ。
0816デフォルトの名無しさん
NGNG{
new 812;
return 0;
}
0817デフォルトの名無しさん
NGNGじゃあファイル操作やってるプログラムは全部オブジェクト指向ね。
あいつの論法だけど。
IO操作も大体抽象化してるから全部オブジェクト指向ね。
0818デフォルトの名無しさん
NGNGリークしてるよ、それTT
0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG別にリークしてないが?(藁
0821デフォルトの名無しさん
NGNGそれだと「データ抽象化はOOの一種」になっちゃうだろう。
逆だよ逆(藁
0822デフォルトの名無しさん
NGNG俺なんか全てOOで書くし。
UMLはもちろんXMLだって使いこなしてるのさ。
0823さすらいプログラマ、旅情編
NGNG【ソフトウエアの開発は「すっきりと単純に」行うことが大切です。とくに規模
の大きいソフトウエアであるほど、単純なアーキテクチャのほうが、お互いに
設計を理解でき、共同作業するのが楽になります。
『データベースチューニング256の法則』(C.ルースリー、F,ダグラス
著 間宮あきら訳 日経BP社 1999)によると、『「ソフトウエアが何も
しなくても単純になる」ということはまずあり得ません。むしろ、その逆が正しい
でしょう。単純性は、開発プロセスを通じて大切に育て守っていかなければならな
いものなのです。単純性を明確な目標としない限り、大きなソフトウエアシステム
は開発の段階が進むに連れてより複雑になる傾向があります』と記述されています。
この「単純性を守っていく」という考えは、筆者自身の経験からも大いにうなずけ
るものです。ソフトウエアの世界では、よく職人芸的なプログラミングに意義を見出
して、凝りに凝った設計、プログラミングをひそかに自慢がいますが、それでは大切
に育てるべき単純性に逆行しています。
すっきりと単純な設計こそ、美しく、効果的なすばらしいソフトウエアなのです。】
TE試験のシステム管理を春季に受けるために勉強してて、こんな文節があったので
ここに紹介。
この文を見てまず思ったことは、「自分はオブジェクト指向の概念を知らない人に、
わかりやすくはっきりとその概念を伝えることができるだろうか?」っつー疑問ダターヨ
本当にオブジェクト指向が理解できているのなら、オブジェクト指向のさわりもわから
ないプログラマに、その概念を伝えることができるはずだ。
っていうか、俺本当にoo系が理解できてるのか?って感じた(藁
オブジェクト指向ってさ、理解するのに結構時間かかると思います。少なくとも俺は
1年はかかりました。いや、わかっちまえば楽チンなんだけどね。まー、概念が難しい
つーことは、それを具現化した「プログラミング」は同様に難しいわけで。追っかけ
ねばわからんような継承など、ある意味スパゲッティProgだよな。
本当に効率よく開発したいのであれば、多分プロでの言語習得人口が最も多いと思われる
Cが一番いいのかもな。「CはできますがC++はできません」てのは結構多いけど、
「C++はできますがCはできません」て人は見たことが無いっていうのが正直な感想。
プログラムの理想は、「誰でも理解でき、誰でも保守ができ、誰でも拡張ができるソース」
と俺は思っている。上記の理想を遂行する為には、オブジェクト指向の概念(継承、隠蔽、
ポリモルフィズム)を切ってでも設計していくしかないのかなーと一人妄想。
長い長文呼んでくれてthxxx
0824さすらいプログラマ、旅情編
NGNG>俺なんか全てOOで書くし。
一体何を書くんだか。マスでもカクのか?
寝不足で頭イってるかな・・・氏んできます。
0825デフォルトの名無しさん
NGNG>・反OO派はデータ抽象の利点を認めないのか?
認める。
>・認めるなら、>>351 みたいなコードを自分で毎回書くのか?
書かない。例えば、構造体とそれを操作する関数を別個に用意するだけ。
わざわざ関数のポインタを構造体のメンバーにするのは、
見かけをC++っぽくするだけで無意味に複雑。
>・それくらいならC++やJavaを使った方が良いということがわからないのか?
わかる。だから、そんな馬鹿なことはしない。
逆にOO派に問いたい。
構造体とそれを操作する関数をクラスにまとめただけで、
それをOOPと認めるか?
俺はネット上で散々、「それはOOPではない」と言われ続けてきたぞ。
俺は今でもOOPのつもりだが。
0826デフォルトの名無しさん
NGNGオブジェクトを考えて設計/実装すればOOで、
それらのオブジェクトがソースに表現されていればOOPだ、
なぜなら書く人だけでなく読む人も関係することだから、
ってのが俺的な定義。
だから、コメントその他の付帯的条件にもよるが、
825が言ってるのはOOではあるがOOPではないと思う。
ただし、825のコードがただ単に構造体と操作関数だけでなく
コメントでもいいからそれらがオブジェクトである事が
表現されていれば、それはOOPだと思う。
0827
NGNGすべてOOで。
現在主流な言語に純OOは存在しないので不可能。
smalltalkはそうだったかな?
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNGんじゃ、>>333 みたいなプログラムは書く?
0830さすらいプログラマ、旅情編
NGNGただ、どちらの方言が万人に伝わりやすいか、それが問題だ。
0831新米プログラマ
NGNG本当に理解しているのならわかるはず・・。
楽したいんですよ。
HELL
って表示したいなら
誰かに作らせたいい。
そしてワシはMAINのところに書くだけ
らくらく。
一番必要なのは人間オブジェクト指向だよ。
・・・意味わかりませんか???
ならすべて一人でするんですね。
がんばってください。
わたしは楽したいので・・・
中で何をしているかわからないのは怖いが・・・
それは通常でもソースを読まないとわからないのといっしょですよね?
動きで判断するなら・・・
ただはやりのものはつかわなくても知らないと
はずかしわな・・。
ほらね無理に取り入れると時間がかかる。
頭のいいやつにクラスをつくらせ・・
わしは組み立てるほうがいい・・・・。
メニューからプログラムを呼ぶのもある意味
いっしょのことではないかな・・?
またきますので・・・
反論をまってます。「新米なのでやさしくしてください」
0832デフォルトの名無しさん
NGNG文章が微妙に変です。
0833さすらいプログラマ、旅情編
NGNGこの文章の本質が汲み取れない漏れは、まだまだ2ch初心者デスカ?
831の文章を見て俺が感じた事っていえば、「みんなが楽をしたらどうなるんだろう」
つーことかな。10人中10人が「俺も俺も」って言って楽したいなんて言ったら、
多分そのプロジェクトは崩壊する。の下に来る奴でそんな性根の腐った方がいらっ
しゃったら、多分放置シマス。あ、いや、831がサンデープログラマだったら別に関係
ないな。所詮趣味だし。
「楽をするため、地道に努力する」のは認めるが、「楽をするため、人に代替してもらう」
のは、お粗末スギマス。プロジェクトっていう協力プレイの意味ないじゃん(藁
「プロジェクト」と「協力」の意味をもう一度考え直してみましょう。
って、オブジェクト指向と全然関係ないな。sageだsage
0834デフォルトの名無しさん
NGNGWarning : 既に言葉遊びの域に達しています。
0835デフォルトの名無しさん
NGNG別に人を雇うのもありだと思うが。
0836デフォルトの名無しさん
NGNGひょっとして部品化とか再利用とかいうOO信者のキーワードを引き出す
戦術? それともこれらのキーワードを知らない厨房?
0837デフォルトの名無しさん
NGNGdeleteし忘れるなよ
0838デフォルトの名無しさん
NGNG>それをOOPと認めるか?
認めないですよ
ポリモーフィズムや
コード管理を含めてOOPです
0839デフォルトの名無しさん
NGNGC++知らないのかな?
C++ができる->Cができる
なんだから当たり前でしょ
0840デフォルトの名無しさん
NGNGなんで?
オブジェクト指向の考え方を使った(利用した)プログラミングを
すればOOPじゃないかな
付随したすべての技術をなめる必要はなし
0841デフォルトの名無しさん
NGNGそれは、小さいプログラム限定での話でしょうか?
プログラムが小規模な程OOPの効果は薄れる
プログラムが大規模な程OOPの効果は大きくなる
プログラムが大規模な場合ポリモーフィズムを使うのは
当然ですよね?
もちろんif/elseが3つくらいなら
そっちの方が開発効率がいいとは思いますよ
まあ、if/elseが20個続く時は
当然ポリモーフィズム使いますよね
でもif/elseは通常増える方向で設計しますので
最初からこの部分をポリモーフィズムで書くのは当たり前だと思います
という事で、ポリモーフィズムができないとOOPじゃないですよね?
0843デフォルトの名無しさん
NGNG拡張できるインターフェース
をもつことだと思っている。
だから、インターフェースを持っているのが当たり前な立場から言えば、
拡張できないインターフェースはオブジェクト指向ではないし、
インターフェースが当たり前でない立場から言えば、
インターフェースの導入でオブジェクト指向と言える。
ということで OK ?
late binding を普通に書けないで O-O というのはねー。という抵抗はあるね。
0844デフォルトの名無しさん
NGNGつか、どう多態を誤解しているのか読み解こうとしたけど
それも不可能なほど謎な文章
よって逝ってよし認定
0845デフォルトの名無しさん
NGNGやっぱりデータ抽象がOOの根幹であり第一歩だろう。
0846デフォルトの名無しさん
NGNGpolymorphism原理主義者ハケン。
激しく便利な機能だが、使わなければOOPとヨバンというのはどうか。
OOPLが備えるべき機能としては必須としても良いかとは思うが。
ところで >>351 のCコードはpolymorphismと認めるかね?
0847さすらいプログラマ、旅情編
NGNG>C++ができる->Cができる
sorry839,CとC++は似てて非なるもの。C == C++ では無い。
0848840
NGNGインターフェースとはJavaのinterfaceのことか?
late bindingが多態のすべてじゃないだろ
OOを概念と見るか技術と見るかの違いで、もう議論の接点はない
はぁ、教科書バカとは議論するだけ無駄かな
0849デフォルトの名無しさん
NGNGOOは規模が大き過ぎると使えない。中規模に向いていると別の
信者が言ってたが。
0850デフォルトの名無しさん
NGNGみんなはいつね?
0851さすらいプログラマ、旅情編
NGNG漏れの足りない頭で考えると、ooの概念と技術って
ooA, ooD > 概念
ooP > 技術
ooPL > 別物
かな・・・間違ってるかも。すいませんでした、やっぱ俺ヴァカだ
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNGじじいでスマソ
サザンの Smalltalk on PC98 だった
なんでもオブジェクトにできたし、
コードをトレースしていって、衝撃感じたね。
0856デフォルトの名無しさん
NGNGOOは○○だからダメ。
OOの神髄はつまりコレ。
○○するのがOOなんだな。
こんな事書いてる様ではまだ、部分的にしか理解しきってない。
とりあえず、効果の上がる場面で、適切に使っていればよい。
0857デフォルトの名無しさん
NGNG0858841
NGNG他にあるの?
OOのすべて・・の書き間違いかな?
まあOOの全てじゃないけど、一部だからできないとダメだよね
>>846
関数ポインタ使ってあれこれやるのは実行時ポリモーフィズム
だと思うよ
ただ、コードの書き方が
Java>C++>C
の順で書きやすいって事では?
ちなみにMFCでもJAVAのライブラリーでも
動的バインド使ってないのは、ないよね
そういうわけで、少なくてもOOなライブラリを作るには
ポリモーフィズムが必須ですね
ポリモーフィズムしないのに継承使ってるのもバカっぽいと思いませんか?
virtualが一個もないc++のコード書いてる人は一度Javaをどうぞ
大規模開発にOOが向かないんだ
じゃあ、どうするの?cobolですか?
0859デフォルトの名無しさん
NGNG>ポリモーフィズムしないのに継承使ってるのもバカっぽいと思いませんか?
>virtualが一個もないc++のコード書いてる人は一度Javaをどうぞ
そういう奴はjavaやっても結果は同じだと思うが?(藁
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNG多重継承のこと?それなら違うぞ。
もう一度多重継承を勉強されたし。
0862デフォルトの名無しさん
NGNG>他にあるの?
そこだけ抜かれてもねぇ・・・
言いたいことはその後の行の方だったのに。
つまり、技術的にはそうかもしれんが、概念的にみたら
多態はis-aの関係を表すのに、より適しているだろ
多態は抽象化を考える上で自然なことだったの
late bindingは後付の副産物だよ
>ポリモーフィズムしないのに継承使ってるのもバカっぽいと思いませんか?
>virtualが一個もないc++のコード書いてる人は一度Javaをどうぞ
結局ただのJava信者でしたか。
JavaをマスターしたぐらいでOOを語らないでね(はぁと
>大規模開発にOOが向かないんだ
>じゃあ、どうするの?cobolですか
世の真実は、システムが複雑になると大規模なんじゃなくて
動くお金が大きいと大規模なんだなぁこれが。
その意味ではCOBOL正解。ABAPなんてのもあるぞ(藁
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGこんなやつでもOOできる気になれるJavaはたしかにC++よりすごいかモナ(藁
0865デフォルトの名無しさん
NGNG使う必要が無い場面で無理やり使わんでもいいだろう。
小さいプログラムなら使わないことが多い。
逆もまた然り。
0866841
NGNG多態を何と比べてるの?
俺はif/elseと比べたんだけど・・・
if/elseと比べるのは技術面の話なのかな?
かなり意味わかんないけど、技術面ってなに?
普通比較するのは、現実とじゃない?
>多態は抽象化を考える上で自然なことだったの
プログラミングの話をしてるのかな?
それとも、知識の定式化とかの話をしてるの?
JavaとC++の違いも,オブジェクト指向という点では特に違いないと思うけど
どこか違う?
まさか,多重継承って言わないよね(w
UML知ってればアグリゲーションも理解できるよね
多重継承クラスを多重継承したら、どう転んでも痛いだけ
>JavaをマスターしたぐらいでOOを語らないでね(はぁと
一応C++とschemeくらいは・・・
あと何をマスターしましょうか?
>動くお金が大きいと大規模なんだなぁこれが
間違った解釈ですよ(はぁと
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG・多態は静的な型チェックと動的なlate bindingを両立させる。
・late bindingによって実装を隠蔽したままオブジェクト間の組合わせを変え
る自由度が得られる。
・late bindingによって「インターフェースのみを決めた」プログラミング、
たとえばさまざまなデザインパターンが可能となる。
…のは確かなんだが、肝心なのは抽象化であって多態やlate bindingはその
手段じゃないかなあ。
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGなるほど
インターフェースが抽象化()
で,実装がlate binding...なわけね
でも、他に選択肢ってあるの?
866説では当然の結果みたいに書いてあるけど
ところで抽象化==プログラミング
っていう意味でいいのかな?
アカデミックな本にはそう書いてあると思うけど・・・
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNGごちゃごちゃと、もーいいから、おまえは早く客の要望と実装をbindingしてみろよ
机上の理論を受け売りしていた自分が若かったと気づくからさ
0874
NGNG比較演算子?
現在イテレータにメロメロっす。
0875デフォルトの名無しさん
NGNG惜しい!せめて、あとSmalltalkはやってみたほうが良い。
>>869自身が、結構、よく分かってる人みたいなので、
わざわざ、こちらが指摘することでもないが、
これらの意見は、一見、OOの利点に聞こえるが(実際、利点だが…)
この中にある『「インターフェースのみを決めた」プログラミング』が問題。
OOの利点を生かすためには、<インターフェースのみを先に設計する>という
前提が必要になるのだが、実際にはこの部分の実践が難しい。
0876デフォルトの名無しさん
NGNG神?
0877デフォルトの名無しさん
NGNG0878新米プログラマ
NGNGいっぱいかいてある・・・。
なにからはなして良いかわからん・・。
オブジェクト指向の恩恵は大きいプロジェクトで
をしてみないと実感できませんよ・・。
たぶん・・
今わしはCBLをつかっているので・・。
つかえません。
でもオブジェクト指向の問題点を一つ・・・。
なんでもできるようになるので・・・。
収集がつかなくなるぞ・・。
システムを組むなら・・・
最小限にしましょう。
ってここにいる人らはわかってますから
いらぬおせわか・・(すんまへん)
始めの設計がよかったらそれだけでOKですよ。
あと・・・
注意:ぷろぐらま=おぶじぇくと
おぶじぇくとにぷろぐらむをたのむのはいいが
とちゅうでの変更はやめてください・・。
ぜんぜんちがうめっそどは発行できません。
ことなるおぶじぇくとにたのんでください。
ところで・・・オブジェクト指向の本当の意味を理解している人
おねがいです。
「ぞうりむしでもわかる説明」をしてくれませんか?
・・・クラス
・・・カプセル化
・・・継承(多重)
・・・・
0879デフォルトの名無しさん
NGNGここから、理解しなおした方が良いZO!
昔は、コボルという言語でユーザの仕様に沿ってシステム開発したのさ。
それで、ユーザが違っても、処理は一緒なので、
ルーチンに処理を全て入れようとなった。肥大化で×。
次にコードジェネレータ。仕様書ツールで設定すると、ガバットコボルコードを吐き出す。
ジェネレートコードは小さくはないし、読み難くて手直し大変。
だけど、このころは、1Kステップいくらの時代だったからこれでOKだった。
0880デフォルトの名無しさん
NGNG小さい関数の組み合わせによって、処理を変えようという時代になった。
これは、コボルよりは良かったが、長くは続かなかった。
このころに、ウィンドウシステムが主流になり、
ウィンドウシステムがやたらと多くのAPI(C言語関数みたいなもん)を持ってて、
それ専用のエンジニアが必要になった。
0881デフォルトの名無しさん
NGNG画面はVB、内部処理はC言語によるDLL関数時代になった。
しかし、GUIツールの能力を超えて処理するには大変、
関数が一杯あったら管理が大変、というところに、Delphiが現れた。
Delphiだと、GUIの処理変更も差分だけ定義、
内部処理も1クラスに閉じ込めて散り散りにならない、
1言語でGUIと内部処理を記述し、混ぜることも出来るようになった。(で第一章完了)
0882デフォルトの名無しさん
NGNG・Delphiは、クラスライブラリ系GUIツールね。
差分プログラミングでコードが最小であり、関数と違い振る舞いを変更できる
・第二章続きは他の人書いてNE!反論もNE!
0883デフォルトの名無しさん
NGNGそれにアフガンの何の罪もない人々の命と生活を守ろうという
気持ちがみじんも感じられない。
よって
------------終了-------------------------------
0884新米プログラマ
NGNGしくしく・・。
意味がわからないよ。
VBでいったら
ぺたぺたはるだけで
その機能を実現できるから・・。
なんでもかんでも一つのプログラムでしないほうがいい
って意味なんだけど・・・・。
説明不足でごめんなさい・・。
勘違いしてたらもっとごめなんなさい・・
勉強してきます。では
0885デフォルトの名無しさん
NGNGあんたが一番面白い(w
終了せずにあんたが続けてくれ。ぜひ
0886デフォルトの名無しさん
NGNG怪文書?
0887デフォルトの名無しさん
NGNGつーことじゃねーの?
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNGでも、そろそろ新しいパズルが欲しい
0891デフォルトの名無しさん
NGNGこうやってコーディングするのだなあって思った。抽象化された
コアを作り込んで、具象化はなるべく後にする。そうすることで
問題の本質が見えてくるし、コードの再利用も進む。
頭いい人の手法を「再利用」できるようになったことは、OOによ
る恩恵だなあ。構造化プログラミングの時代には、データ構造+
アルゴリズム=プログラムだったから、ついついすべてのコード
がそのプログラムで解決したい具体的な問題に「べったり」なも
のになりがちだった。似たような、しかし、ちょっとずつ違うコー
ドを大量に書いた。いつもデバッグばかりしていた。それがOOに
なって、デバッグの済んだコードを再利用するケースが増えてき
た。デザインパターンまで来て、ようやく得られた恩恵だけど。
デザインパターンを知らないでいると、OOなんてちょっと気の利
いた(しかし、けっこう面倒な)モジュール化技術にしか見えな
いだろうな。
0892デフォルトの名無しさん
NGNGはあ・・・・。
0893デフォルトの名無しさん
NGNGあのなー、今みたいにソフトウエア技術の本が一杯出まわる前は
どうやってたか想像してみろや。
それぐらいの事は自分で考え出すの。
最近の若いもんは駄目だな。
本なんかに教えてもらうような権威主義のヘタレばっか。
0894デフォルトの名無しさん
NGNGゴミレスでageるな。
0895デフォルトの名無しさん
NGNG本に教えてもらうことが権威主義なのか。知らんかったな。
0896デフォルトの名無しさん
NGNGふぅぅぅぅぅぅぅぅ
0897デフォルトの名無しさん
NGNG想像したくないんすけど。
究極的には、プログラミングなんてしなくてすめば
それに越したことはない。
0898デフォルトの名無しさん
NGNGアセンブリに帰るぞ
0899デフォルトの名無しさん
NGNGユークリッドやピタゴラスから自分で考え出してたら、
楕円暗号や量子計算機まで辿り付くまでに一生終わりそうだね(w
0900デフォルトの名無しさん
NGNG同意。つーか、そんな無駄なことブッコいてるヤツはさっさと首にしろ。
「昔は何でも自分で考えた」だ? そういう不勉強なアホを雇っとく余裕
があったってことだろ。
0901デフォルトの名無しさん
NGNG今この瞬間も考え出さないといけないの、判ってる?
0902デフォルトの名無しさん
NGNGそんなもんモノになると思ってんのか?
0903デフォルトの名無しさん
NGNG俺は田舎に帰って煎餅屋継ぐ事にする。。。。
0904デフォルトの名無しさん
NGNG浦島太郎ハケーン!
0905昔の人
NGNG0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG新たな詐欺師時代の夜明けだ
0911デフォルトの名無しさん
NGNG使ってるソース読んだよ。
Cとの違いは関数呼ぶのにnewするってことだけ(ワラ
OOPでCのように書くとGOTO使うより悲惨なことになるな。
これを普通のOOの感覚で読むと違和感んじまくったが、
Cの関数=クラスのコンスラクタ、メンバ関数はコンストラクタで使う関数と
して読んだらすんなり読めたYO(ワラ 戻り値はpublicなメンバ変数に格納(ワラ
どうでもいい話だな。ただちょっと悲しかったので、、、sage
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGでもまあ、それでもGCあるだけCよりデバッグ楽じゃん。
0914デフォルトの名無しさん
NGNGユーザープログラムから呼ばないだけ。
別に新発明ではない。
0915デフォルトの名無しさん
NGNGBASICのGCって文字列のやつね。オッソロシク効率悪かったよね。
ちょっとはLispの技術でも学べば良かったのにね.
ところでBASICにはポインタもなけりゃヒープに割り当てるデータも
文字列以外になかったんだから、GC使う方がデバッグしやすいという
話とはあんまり関係ないよ。
0916デフォルトの名無しさん
NGNG0917逝って良しの1
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNGめちゃくちゃ邪魔、つーかゴミ以外の何物でもないんだけど。〈みなさ
んはちゃんとわかってて、こういう人たちと違うと思うけど〉
0920デフォルトの名無しさん
NGNG「私はOO解ってます」
なんて、恥ずかしくて言えないと思われ。
0921デフォルトの名無しさん
NGNGどういう時に使えないのかも分かってるもんだよな。
0922デフォルトの名無しさん
NGNGオーバーロードコンストラクタによって全く違った振る舞いをする関数作ってる
コードみたことあるか?氏ぬぞ。
同じ名前の関数が渡される仮引数によって全く違った振る舞いをする。
もう恐怖としかいいようがなかった。アレは。
0923デフォルトの名無しさん
NGNG同意。
で、「デザインパターンと同等の方法論なんて、前から自分で考えてたよ」というやつに、それなら
「現在は世間に広まっていない、自分の持っている素晴らしい方法論はないのか?」と聞くと何も
でてこない。
0924デフォルトの名無しさん
NGNG世の中広いからなー
0925デフォルトの名無しさん
NGNGJava で static メソッドしかないソース読んだことあるぞ。
new すらない(w
0926デフォルトの名無しさん
NGNGプログラマーってのはレベルの差が激しいですよね
私より10年以上長くやってるのに・・・・この差はいったいなんでしょうか?
0927デフォルトの名無しさん
NGNG自分が極めたと思った瞬間、そいつの成長は止まってしまう。
つまり、彼の成長は10年前に既に停止してるんだよ(藁
0928デフォルトの名無しさん
NGNGこのスレでOOを擁護してそうだな。
おっと、OOを否定しているわけじゃないよ。
0929デフォルトの名無しさん
NGNGそう思ったら、具体的に番号示さないと盛り上がらんよ。
0930デフォルトの名無しさん
NGNGOOはクラスライブラリ無いとだめですか?
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNGまったく無かったらどうですか?
0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNGそれじゃあ、C言語は無意味だね(w
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGそれとOOは多分関係無いとおもう。
0937デフォルトの名無しさん
NGNGそういうことは暇なやつか、それを商売にしてるやつにまかせるべきだ。
0938デフォルトの名無しさん
NGNG仕事ならなおさら。
0939デフォルトの名無しさん
NGNG既に有るライブラリしか連想できないとは、発想の貧しい奴。
0940デフォルトの名無しさん
NGNGI/Oもいらないと・・・
0941デフォルトの名無しさん
NGNGCってライブラリ無しでなにができる?printf?
0942仕様書無しさん
NGNGちょっと待った、stdio もライブラリだろ。
0943デフォルトの名無しさん
NGNG少なくとも >935 にはその技術は無い。
0944デフォルトの名無しさん
NGNGだからさ、いままでにないライブラリ作るときも、文字列処理みたいな
基本的な部分はガイシュツのライブラリ使うだろ?
そうすれば「いままでにないライブラリ」という問題領域に集中できるじゃん。
そういう基本的なライブラリがそろってるJavaは幸せだつう話だよ。
0945デフォルトの名無しさん
NGNGタケノコのようにでてきたJava厨ということでよろしいな?
0946デフォルトの名無しさん
NGNG引数減らす為だけの構造体作るのは素人。
0947デフォルトの名無しさん
NGNGだが引数 20 個渡すようなルーチンを組むのも、素人。
0948デフォルトの名無しさん
NGNG馬鹿ですか?
0949デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/997074601/
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNGどうでもいいが、MFC なら
CWin::CreateEx()
ですね。これもウィンドウのサイズを x, y, nWidth, nHeight ではなく const CRect で渡すバージョンが定義
してあり、そちらでは必須の引数は 7、加えてデフォルト引数が 1。
引数の数が 7 程度ならまだ覚えられる範囲だけど、それを超えると俺はダメだ。過去のコードを Copy &
Paste しないと、やってられん。
0953デフォルトの名無しさん
NGNG引数の数だけで能力計っている>>926を甘やかしてはいけません。
0954デフォルトの名無しさん
NGNG俺は作ったら忘れる。
覚えてなきゃ使えないようなルーチンは組まない。
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNGWin32 API だと、たとえば CreateWindowEx() は引数 12 個で、しかも hMenu は場合によってメニューの
ハンドルや子ウィンドウの識別子など、まったく異なる型のデータを受け渡す。お世辞にも、優れた設計と
は言いがたいね。
しかし引数 10 個越える API って、使用頻度が高い API には、さすがにそれほど多くない気がする。
RegisterClassEx() なんかは、ウィンドウクラスの情報を引数で個別に渡さず WNDCLASSEX 使ってるし。
>>953
そうだね。必要なら 20 個引数ある関数も書かざるを得ないし。ただ、そんな関数が大量にあったら設計が
腐ってるとは思うけど。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG> 引数いちいち覚えるのか?
さすがに覚えていられん。ただ引数が 20 個ある場合でも、引数が全部プリミティブ型だと
nWidht, nHeight を入れ替えてしまった
みたいなバグがコンパイル時に検出できないから、嫌だなぁ。
ぜんぜんオブジェクト指向と関係ないね。ごめん。
0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNGinterfaceマンセー!!
ポリモルフィズムマンセー!!
Beanマンセー!!
0961デフォルトの名無しさん
NGNGだって80年代末だよ? >Win32API デザインパターンもさすがに
なかったし。MFCも90年代初頭からあるし。
ところでMFCやWTL以外の、サードパーティ製の、ウィンドウ操作を
カプセル化したクラスライブラリってあるの?
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNGどういう意味で言ってるのかわからん。
引数が多くなるって事は
関数の引数に,構造体へのポインタを渡す意味が全くわかってない厨房ですな。
許容範囲は、4つくらいまでだな。
20個ってのはもう、プログラミング以外の範囲も含めてセンスがないんだろうな。
APIが引数多くなるのは仕方の無い事
なぜなら一番低レベルな関数なわけだから
0965デフォルトの名無しさん
NGNG>許容範囲は、4つくらいまでだな。
減ったと思うのは局部しか見てない厨房。
構造体に値を渡すために全体は増える。
可読性が落ち、煩雑さが増える。
まあ、>>964は構造体でスパゲティでも作ってなさいってこった。
0966デフォルトの名無しさん
NGNG引数の群れをオブジェクトとしてまとめて扱うことによって
また別の側面が見えてくることがある。
やってみるのもひとつの手。
0967デフォルトの名無しさん
NGNGリレーショナルデータベース完全否定派ですか?(笑
例えば,占い関数があったとして、引数に名前、年齢,住所、星座、体重,血液型・・・
が必要だったとした時
Humanってクラスを作った方がよくない?
もちろんHumanってクラスには占い関数には関係ない変数も持ってるだろうね
でも
占う(Human)
って書けたら読みやすいでしょ?
>構造体に値を渡すために全体は増える。
間違った知識だ・・・
もしかして4バイト区切りだから、byte,short使うと無駄が出る
みたいな意味でいってるのかな?(コンパイラのオプションで消せます)
とりあえず、関数に渡す時は左から順番にスタックに積んでいくわけだから・・・
ポインタ4つ積むのと、変数20個積むのは結構違うよね
20個の独立した変数を処理するなら
20個関数作った方がいいんじゃない?
でも,引数20個って
デフォルト引数とかあったら,使うのが脅威的な難しさだね
0968デフォルトの名無しさん
NGNGと異なる場合を言われてもねえ・・・・。
0969デフォルトの名無しさん
NGNGET++とかダメ?
0970961
NGNGhttp://www.gup.uni-linz.ac.at:8001/research/debugging/distribution/et++.html
これ? Gammaがかんでいるみたいだけどさすがに古いね...というか
Win32版は無いみたいなんだけどひょっとしてネタ?
0971961
NGNG上に実装された物、しかもWin32APIの煩雑な操作をオブジェクト指向化
した物という意味でのウィンドウライブラリはないのか、って話。
だからJavaのAWTのようなものを期待した話じゃありません。
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG自分で書いてしまうのがいいと思いますよ
汎用的なライブラリーは使いにくいですからね
ファイルを扱うのであれば
File file=new File(filename)
であとは
file.read()
file.write(byte)
だけで、シーケンシャルアクセス限定みたいな
クラスを作っておけば、たいていそれですみます
file.write()の引数にインターフェースを付けて
バイト列を生成するのが便利ですね
0975デフォルトの名無しさん
NGNG0976ソフト屋に恨みを持つハード屋
NGNG数十年前の手法(?)でまだ議論してんのかよ。
バグ減らす努力でもしてろ。ヴォケ
おめーらバグ出しすぎ。
0977
NGNG0978
NGNG従来の蓄積を無視してヴァカが言語転換やるからだ。
Java等の言語転換ブームが無ければ今の半分以下になってたはず。
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGわっはっはっは
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNGちゃんと読め。おまえJavaってとこしか見てないだろ。
0983デフォルトの名無しさん
NGNGFortranとかのほうがCよりも多いとおもうが。
レス数が950を超えています。1000を超えると書き込みができなくなります。