トップページ⇒tech
983コメント315KB

オブジェクト指向ー詐欺師の時代の終焉。

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001逝って良しの1NGNG
ついに統計が出てしまいましたね。

2CHでも、大分前からOOの有用性については現場レベルから疑問視
する声が上がっていました。

かような擬似技術が今までまかり通っていた原因は供給側、つまり
日経提灯やセミナー屋にももちろんあるでしょうが、需要側にも
擬似技術を受け入れる下地があったと思われます。

何時の時代にも仕事の出来ない、自分の能力の限界に気付いてしまった
若いPGがいます。
今のままでは決してベテラン技術者に追い付けない事を仕事で
実感している連中です。
彼らの逆転のチャンスはなんでしょうか?
社会の混乱を醸成し、混乱に乗じた革命。これしかありません。

OOの出現はそんな彼らの需要にぴったりのモノでした。
従来からある用語を言い換えただけのインチキ性。
既存の技術者のスタイルを否定する構造。
反対者や疑問を抱く者には「新技術について行けない人」というレッテル
を貼るだけで追い出せるのですから、詐欺師にとってはこんなオイシイ
仕掛けはありません。

しかし、もう結果は出始めています。
革命ごっこはもう終わり。
まだ詐欺師に占拠されていない会社においては、一刻も早くこうした
擬似技術者の駆逐による経営の健全化を強く望むものです。
0002デフォルトの名無しさんNGNG
ガイシュツ。
0003デフォルトの名無しさんNGNG
オブジェクト指向プログラミング言語を今現在開発中の
ワタクシめはソフトウェア業界における逆賊ですか。
0004デフォルトの名無しさんNGNG
ネタだろ
0005デフォルトの名無しさんNGNG
>>1
まぁ。。。いつかは終焉を迎えるだろ<オブジェクト指向
そして10年もすれば新しいパラダイムが生まれることだろう。

>従来からある用語を言い換えただけのインチキ性。
制御文の構造化アプローチがgotoの悪用を防ぐために
導入されたのと同様、データー中心アプローチが進化
しただけで「優秀な」技術者にとっては何の新規性も
無いはずだ。

>既存の技術者のスタイルを否定する構造。
オブジェクト指向は、お前の従来のスタイルを否定するの
か?ということは、もともとデータ中心アプローチなんて
意識してこなかったんだろ?ゴミプログラマーめ。

>反対者や疑問を抱く者には「新技術について行けない人」というレッテル
>を貼るだけで追い出せるのですから、詐欺師にとってはこんなオイシイ
>仕掛けはありません。
別に「新技術について行けない人」というレッテルを貼っ
てるわけではない。
従来から存在する堅牢なプログラムを開発する手法に疎い、
それを判ってないあんたと一緒に仕事したくないと言ってる
だけ?判るか言ってることが?え?
0006デフォルトの名無しさんNGNG
たとえオブジェクト指向言語の使用を禁止されたとしても、
C言語だけには戻りたくないもんだ。

2chでやるより会社で反革命運動したほうがええんのちゃう?>1のジジイ
0007名無しさんNGNG
オブジェクト指向が理解できない人って本当にいるの?
なんか信じられないんだけど。
つーかそんなやつが構造化プログラミングをちゃんとできるとは思えん。
00086NGNG
一般社会では、齢を重ねるほど自分の力量を知り、無茶をしなくなる
ものだが、プログラマーの世界では全く逆なのがおもしろいな。
ジジイほど己の力を過信し、学校の窓ガラスならぬメモリを破壊しま
くる(わら

というわけで、1のタイプの人間を珍と呼んでいいですか?
0009デフォルトの名無しさんNGNG
マ板からの輸出品ハッケソ
0010デフォルトの名無しさんNGNG
俺は構造化アプローチでプログラミングしてるからgotoは絶対
使わん!とわめきながら、if-elseを多重ネストした下手糞な
例外処理書いてそうで怖いです。>オブジェクト指向わからん馬鹿ども
0011デフォルトの名無しさんNGNG
>>1
の○○ってのは、オーオーではなくて、なにか2文字当てはめてください
ってことなんじゃないの?ワザワザ全角にしてるんだし。
あてはめてあげようよ。

まぁ>>1は盗んだバイクで走り出してなさいってこった。
0012デフォルトの名無しさんNGNG
もう生まれて30年近いのに新技術か。。。

>>1
>従来からある用語を言い換えただけのインチキ性。
暗黙知の形式知化って知ってる?
0013デフォルトの名無しさんNGNG
> ついに統計が出てしまいましたね。

いつ出たのだ?
0014デフォルトの名無しさんNGNG
少なくともこのスレと重複してるな。

やっぱりオブジェクト指向は幻想でした。
http://piza2.2ch.net/test/read.cgi/tech/1003815855/
001513NGNG
>>14
統計ってそのスレにでてるやつ?
0016デフォルトの名無しさんNGNG
>>12
吉牛だって80年前からあったなんて誰もしらなかったぞ?

もう無意味な「言葉遊び」は止めようね。>ALL
0017デフォルトの名無しさんNGNG
会社のジジイにSTLとEJBを教える小さな親切運動からはじめます。
アメリカのようにジジイ爆撃してばかりだとテロされるからな。
0018デフォルトの名無しさんNGNG
> 社会の混乱を醸成し、混乱に乗じた革命。これしかありません。

warata
0019デフォルトの名無しさんNGNG
ここからヘタレのボヤキが始まります。

=============== 開 始 ===============
0020デフォルトの名無しさんNGNG
>>16
まあ、1が「新技術」などとのたまう背景もあるわけで。
OOの周辺技術が盛んに研究されてるからね。

オブジェクト指向に関する新技術は今もたくさん出現していて、
その多くは使い物にならないが、
オブジェクト指向という基本概念自体の有用性は
オブジェクト指向をサポートした言語(C++/Javaなど)が主流になっている事実からも否定できない。
と言っておこう。
0021デフォルトの名無しさんNGNG
データー構造に着目して分析を行う事は別にOOではないよ。
データーフロー分析は構造化アプローチと親和性あるし。
要するに極度に抽象化された仕様を実装するためには高度な具体化が必要で、
そこまでやるのにOOの持つボトルネックが却って仇になるケースが現場では
起こりがちということなんだろうな。

ようは、手法なんてツールなんだから必要な物を使えばよし。
0022デフォルトの名無しさんNGNG
データーってゆーな、ジジイ!
0023デフォルトの名無しさんNGNG
22が良い事言った。
0024デフォルトの名無しさんNGNG
エヌ・ティ・ティ・データー
0025デフォルトの名無しさんNGNG
オブジェクト指向ー
ってなんですか?なんで語尾を延ばす必要があるんですか?
0026デフォルトの名無しさんNGNG
オブジェクト指向を使えないなんて、もったいないね。
かなり有用なのに。
0027親切な人NGNG
まあ、1は「憂鬱なプログラマのためのオブジェクト指向開発講座」でも
読んでおきなさいってこった。
0028デフォルトの名無しさんNGNG
1は自然科学の理念を勉強すれ!!
相対性理論はニュートン力学(過去の実績)を否定しない。
適用限界(あらたな需要)が生んだまで。
今日日へたすりゃ小学生でもわかる理屈です。
0029デフォルトの名無しさんNGNG
12と27が結論ってことで。
================== ド終了 ====================
0030逝って良しの1NGNG
俺の時代が来る予感あげ。
0031デフォルトの名無しさんNGNG
ものごとを論理的に考える能力の無い奴、仕事に対する情熱のカケラもない
奴、などを積極的に採用していうことにより君の時代がくるかもしれん。
クズ連中と一緒に地獄の行進を。アーメン。
0032お胸おっぱいNGNG
また落ちこぼれスレですか。
0033無理やり七資産NGNG
無理矢理合わないフレームワークに嵌めたソフトって
見たことない?
GUIと切り離せないクラスライブラリのせいで
デスクトップ開かないと動作しないサーバーとかあった気が。
0034デフォルトの名無しさんNGNG
連帯あげ
0035デフォルトの名無しさんNGNG
>>31
「OOができない人間は、情熱がない、根性がない」
OOが普及しない理由は、体育会系のプログラマにはそう写るんだね。
0036デフォルトの名無しさんNGNG
>>33

それはそのフレームワークのアーキテクチャが悪いのであって、
アーキテクチャのアーキテクチャ(メタアーキテクチャとでもいうか)、
フレームワークのフレームワーク(メタフレームワークとでもいうか)、であるOOには
あんまり責任はないと思うが。

>>35
どんなアーキテクチャやメタアーキテクチャでも、
「それを理解する"能力"が無い」か、
アーキテクチャのほうに「理解される"能力"が無い」
つまりアーキテクチャのほうがドキュだ(w)ってのか、
どっちかに属すると思われ。
0037_NGNG
まずクラスの設計で躓くんだけど。
ソースを書く段階にに至れない。
プロの方々は違うのですか?
0038デフォルトの名無しさんNGNG
>>36
そう、OOが良い悪いっていうよりも、
既存のフレームワークが肌に合わない。
TCP/IPで通信したいだけなのに、
ウインドウイベントを処理しないと動作しない
通信ライブラリとか、依存関係に納得できない。
そこら辺だな。OO自体を否定する気はないね。
0039デフォルトの名無しさんNGNG
>>37
プログラミングとその前の設計(とその前の解析)は別。
ユースケースから勉強城屋。
0040デフォルトの名無しさんNGNG
>>1
すばらしい煽りだ。
0041デフォルトの名無しさんNGNG
方々のMLやBBSで、二言目には「オブジェクト指向では」と言う奴等がいて、
お決まりのパターンとして、そこのメインテーマを無視し
「おぶじぇくと指向とはなんぞや」を議論し出すから、なんとなく
イメージ悪い(藁

ま、今は普通に仕事で使うから、別段の思い入れは無いけど。
0042デフォルトの名無しさんNGNG
1がこのスレで
http://piza2.2ch.net/test/read.cgi/tech/1003924678/1-5
>なにそれ?
>必要な時に覚えればいいじゃん?
と仰っています。じゃぁOO言語なにかひとつ覚えろよゴラー!!と
思ったんは俺だけじゃあるまいsage。
0043デフォルトの名無しさんNGNG
>>42
覚えられないからダメといってませーん。
役に立たないからダメといってまーす。
sage
0044デフォルトの名無しさんNGNG
ははは
0045デフォルトの名無しさんNGNG
>>43
覚えられないから役に立たないんだよ・・
0046デフォルトの名無しさんNGNG
OOを覚えられるか否か・・・・・
そんなレベルの低い話をしてるのでは無いだろ ふぅ・・・・
0047デフォルトの名無しさんNGNG
道具の使い方がわからない(覚えられない)から
使い所もわからないんだろ?
巷で箸が流行り出したから箸でスープを食べてみたら
全然効率的じゃなかった。そういってるように見える。
0048デフォルトの名無しさんNGNG
俺からは47も漏らさず厨房に見える。
0049デフォルトの名無しさんNGNG
厨房合戦が始まりました。
0050デフォルトの名無しさんNGNG
   \\  厨房ワッショイ!! //
 + + \\ 厨房合戦ワッショイ!!/+
                            +
.   +  /■\  /■\   /■\   +
     (´∀`∩ (´∀`∩) (´∀`)
 +  (((つ  ノ (つ  丿  (つ  つ ))  +
      ヽ ( ノ ( ヽノ   ) ))
     (_)し'  し(_)  (_)_)
0051デフォルトの名無しさんNGNG
こっちに移動よろしく

やっぱりオブジェクト指向は幻想でした。
http://piza2.2ch.net/test/read.cgi/tech/1003815855/
0052デフォルトの名無しさんNGNG
今日もあげあげ今日もあげ。

>>49
生活がかかってんの!
0053デフォルトの名無しさんNGNG
いい気なもんだよ。
そのうちOO採用会社でリストラ始まるぞ。
それでもOOマンセーしてるつもりかねー。
0054デフォルトの名無しさんNGNG
で、1がこの板に出現してから何ヵ月も立ったけれど、
1はオブジェクト指向技術を何か一つでも体得できたのかね?
いや、マジで。oo云々以前に、そもそも進歩の無い奴はダメだと思うんだが。

ひょっとして、このスレで一番能力が低いのって・・・

1よ、君の血の滲むようなスレ立て・煽りカキコの努力の跡を、
私達は決して忘れはしない。私達は前へ進む。さようなら、1よ
0055デフォルトの名無しさんNGNG
それは進歩ではない幻想だ!
砂漠で見ているオアシスの蜃気楼と同じだ。
そっちへ行ってはいけない。
0056デフォルトの名無しさんNGNG
と、煽りだけになってるから。
生産性の低下は進歩ではなく退化だ。と付け加えておこう。
0057逝って良しの1NGNG
ハンドルも忘れたんで押しておこう。
0058デフォルトの名無しさんNGNG
いや、だから生産性低下してないし。
はやく蜃気楼見てるのは自分の方だって気づけよ・・・
0059デフォルトの名無しさんNGNG
統計は嘘をつかない。
0060デフォルトの名無しさんNGNG
>>59
統計でウソをつく方法
http://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/books/4061177206/250-3156298-7668241
この本でも読んでしっかり勉強しろよ(w
006154NGNG
どうやら図星だったようです。プログラマー>>1に合掌。
0062デフォルトの名無しさんNGNG
>>60
死体画像。
0063デフォルトの名無しさんNGNG
>>62
アマゾンが死体なわけないだろ。
0064デフォルトの名無しさんNGNG
>>63
いや、アマゾン川のドザえもんだよ。≠ドラえもん
0065デフォルトの名無しさんNGNG
誰だよ,速報板に転載したのわw
0066デフォルトの名無しさんNGNG
おもしろいネタだった!感動した!>>1
でももう九尾吊って氏んでね。
0067デフォルトの名無しさんNGNG
>>63
アマゾンにはピラニアがいるだろうが。死体画像の可能性大だぞ。
0068速報板同一名スレッドからのこぴぺNGNG
50 :にょ :01/10/26 23:43 ID:cekAAgue
オブジェクト指向って上級者のテクニックを何も知らない初心者・未経験者におしえるようなものだと思う。

何年か開発を経験した後にオブジェクト指向の本を読み直すと、非常に参考になることが多い。

とくにパターンの本は参考になる。


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
>>56
たしかにデバドラとかUnixのVFSとかはオブジェクト指向っぽいと
言えなくもないが、ただのシステムコールをメッセージパッシング
と呼ぶのは牽強付会というものだろう。
0070デフォルトの名無しさんNGNG
ニュー速スレの方がそれなりのレベルに達しているのには笑った。
0071デフォルトの名無しさんNGNG
ニュー速の>>56みたいな意見を何度か目にするけど、
オブジェクト指向的?な設計がCでもできるということと、
継承や多態などのオブジェクト指向の強力な概念をOOPL
を使って駆使することの間には相当な開きがあると思われ。
0072デフォルトの名無しさんNGNG
>>71
#includeがあります。
0073デフォルトの名無しさんNGNG
>>71
ハァ?
007473NGNG
チガターヨ。
>>72
にハァァ?


……ハァハァ………。
0075デフォルトの名無しさんNGNG
> 継承や多態などのオブジェクト指向の強力な概念をOOPL
> を使って駆使することの間には相当な開きがあると思われ。

おまえにとってのオブジェクト指向とは、
継承や多態の事らしいな。
技術を駆使してると勘違いしたプログラムほど、
はた迷惑な物はない。
1人で趣味でやってくれ。
0076デフォルトの名無しさんNGNG
>>75
オッサンでてきたね。最近どうやって召還したらいいかわかってきたよ。(w
ちなみにOOPLつかえば継承も多態も言語機能の一つに過ぎず、
『技術を駆使』してるつもりがなくても便利に使えるよな。
で、オッサンはCで関数ポインタや『ハンドル』駆使した再利用可能なライブラリを
日頃作り続けてるンですのん?
0077デフォルトの名無しさん NGNG
ニュー速で言ってる事一部理解できませんが何か?
がはははははは  ハァ...詩嚢...
0078デフォルトの名無しさんNGNG
煽られると、すぐムキになる・・・・
00791NGNG
>>75は俺じゃないぞ。民の声を聞け。
0080デフォルトの名無しさんNGNG
オブジェクト指向信者には共通した思考(指向?)パターンがある。妄想
で相手の人物像を作り上げ、自分で作った妄想に対して批判する。その
パラノイア的思考パターンを、自分では論理的だと信じている。どこか
のデザパタに、狂った思考パターンが存在するのか?
00811NGNG
>>76
ちなみに俺はJava用のサブルーチンライブラリを構築中だ。藁
0082デフォルトの名無しさんNGNG
>>81
> サブルーチンライブラリ

ださっ!
00831NGNG
>>82
笑うだろww
0084デフォルトの名無しさんNGNG
ウインドウハンドル(API)とウインドウクラス(MFC)なら、
前者の方が少なくともカプセル化の度合いは強いと思うけど・・
0085デフォルトの名無しさんNGNG
カプセル化だけがOOじゃないでしょ。
多態と継承はどうすんのさ。
0086名無しさんNGNG
結局>>1はオブジェクトとは何かすらわかっていないと思う。

どうでもいいけど、ここ(2chプロ�c板)ってレベル低すぎ。
考え方も古いし視野も狭い。得るもの無し。
0087デフォルトの名無しさんNGNG
>>86
オマエモナー
0088名無しさんNGNG
スレによってあからさまにレベルが違うのがこの板のいいところ。
0089名無しさんNGNG
このスレってマルチユーザーアプリケーション作れない人たくさんいそう。
こわいこわい。
0090デフォルトの名無しさんNGNG
マルチユーザーマルチタスクのことですか?
0091ナナシNGNG
「オブジェクト指向」が頭につく言葉っていろいろあるのだが、
どれの話をしているのだろう?
0092  NGNG
>>86
ニュー速版のほうがレベル高いぞ(w
0093デフォルトの名無しさんNGNG
アンチOOって視点で捕らえなおすと発見があるかもしれん。
上流工程でのOOAも批判を見たいところ。
OOAの本を買ってみたんだけど、具体的なハナシに入る前に
終わっていて、セミナーの紹介があった。商売気がありすぎ。
0094デフォルトの名無しさんNGNG
>>86
新思想においては生産性など無視して良いのですね。
0095デフォルトの名無しさんNGNG
速報の内容にレスするのもなんだけど >>68-52
俺も Tao of object は迷著(!名著)だと思う。
話が抽象的すぎて何を言いたいのか具体的でないし
OOやデザインパターンを理解した現時点で読めば
内容が浅薄すぎる。混乱ばかり招いて何の役にも立たなかったな。
0096デフォルトの名無しさんNGNG
ま、「OOは役に立たない」なんて2chでしか言えないことは
確かだ・・・実世界で言ったら正気を疑われる。
0097デフォルトの名無しさんNGNG
というか OO が役に立たないといっている連中は何の言語を使ってるんだ?
組み込み系でアセンブラや C を駆使しているというならまだ分かるが。
0098ドキュソNGNG
C++でのOOPってプログラムの挙動をソース内の2箇所を変更して違う実装で
同じことをするために導入したんだろ。全部templateLibraryに置き換わった
理由じゃないか。たいていのC++OOPにゅーもんしょは宅建技能の通信講座みたいな
もんだよ。○洋せんせーマンセー。
0099デフォルトの名無しさんNGNG
関連スレ

http://news.2ch.net/test/read.cgi/news/1004087790/
0100デフォルトの名無しさんNGNG
>>98
OOとは関係ないけど、テンプレートはすごく便利だと思う・・・。
ばんばん使いまくっている。
0101デフォルトの名無しさんNGNG
>テンプレートはすごく便利だと思う・・・。
つーか使ってない奴はアフォ
0102デフォルトの名無しさんNGNG
何故、俺はこれができるを顕示したがる人が多いのだろう?
それが何の役に立つのだろう?さらっと何事もなかったように
いろいろな技術を使っていくことのかっこよさに何故気づかないの
だろう?
0103デフォルトの名無しさんNGNG
普通、作り始めてしばらくすれば、いじるのは上位層だけになる。
ライブラリを使うような層は滅多に触らない。
テンプレート使う奴は素人。
0104デフォルトの名無しさんNGNG
>>103
HA?
0105   NGNG
つーか、どこがオブジェクト指向だったんだ?
0106イソダNGNG
ビットノ ワタシノ キジヲ ヨミタマヘ
0107デフォルトの名無しさんNGNG
むかし、カメラができたころ、「写真を撮ると魂抜かれる」とか言ったんだって。
で、そういうの言い出したのは、カメラを受け入れられなかった人たち。
オブジェクト指向なんて、カメラやラジオのような当たり前の技術のひとつでしょ。
まだ、それを詐欺とか言ってるのは、まあ、あれだな、「俺は電話なんか使わんっ」
て言ってるGさんと同じだな。もう、今時、そんなのいないけどな。

ちなみに、カメラがあっても、使わなきゃいかんというもんでもない。
0108デフォルトの名無しさんNGNG
>>105
だから、「OOとは関係ないけど」って但し書きしている。

>>103
上位層でもテンプレート使うけどね・・・。
0109デフォルトの名無しさんNGNG
>>108
俺もコンテナ程度ならバリバリ使うよ
0110 NGNG
>>108
なら、
テンプレートとか、継承とか、
そういう長所ごとにすすめてほしいもんだ。
0111デフォルトの名無しさんNGNG
103はSTL知らない素人
0112デフォルトの名無しさんNGNG
>>103
上位層にてvector,map,set,listを使わない理由を述べよ
0113デフォルトの名無しさんNGNG
>>112
>>103は template を書かないと言ってるような…。
0114デフォルトの名無しさんNGNG
>>113 普通は template も書くだろ。
class も書かないような使い方なら別だが。
VC++ などのコンパイラが力不足なので、言語仕様的に正しい
template メソッドがコンパイルできなかったりして鬱なことは
多々あるが
0115デフォルトの名無しさんNGNG
テンプレート(機能)とSTLをごっちゃにしないでくれよん。
テンプレートはC++の高度なマクロにすぎない、とか言ってみる。
0116デフォルトの名無しさんNGNG
>>112
iteratorを使わずにかってに実装依存の領域にまで踏み込んで、
vectorの内部配列をいじったりしてるんだろ
0117デフォルトの名無しさんNGNG
>>115
言うのは自由だが、C のマクロと同等だと思ってるようなら出直したほうがいい。
0118デフォルトの名無しさんNGNG
template ちゃんとサポートしてる処理系ってあるの?
現状ではまだ汎用性が疑問なんだけど。
0119デフォルトの名無しさんNGNG
>>118
Code Warriorはほぼ完璧だが
0120デフォルトの名無しさんNGNG
テンプレート=つゆだく
言って見たかっただけと思われ。
0121デフォルトの名無しさんNGNG
>>118
まだ、処理系によって不完全な部分がある。特に partial specialization や member template,
namespace がからむと厳しい。

とはいえ、問題部分を抽出して #ifdef で切り分ければ、そこそこ使えるレベルには達してる
処理系が多いと思われ。
0122デフォルトの名無しさんNGNG
デザパタ=ねぎだく
0123デフォルトの名無しさんNGNG
C言語=つゆなし
0124デフォルトの名無しさんNGNG
COBOL=ごぼうサラダ
0125jokeNGNG
http://hp.vector.co.jp/authors/VA000092/jokes/strup.html
0126デフォルトの名無しさんNGNG
Cを批判する人に質問

なぜきみ達はVBを批判するのですか?
0127デフォルトの名無しさんNGNG
>>126
デムパ?
0128デフォルトの名無しさんNGNG
http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
「ほげ言語」のパラドックス

を読みましょう。

>誰であれ、プログラムについて考える時には自分が使うことになった言語に思考が支配されているから、その言語に満足してしまうんだ。
0129デフォルトの名無しさんNGNG
>>128
激しく同意。だから、プログラムしかしない技術者はプログラマとしての視野が狭いことが多いように思える。
0130デフォルトの名無しさんNGNG
>129
それはまた別の話。
0131デフォルトの名無しさんNGNG
コーラン読んでる人間に、
回教は良いかと聞けば、
すばらしいと言うに決まっている。
批判なんかしたら、大変だよ。

聖書を読んでる人間でも同じ。
キリスト教のために、
過去に何万人死んでようが、
批判する人間は馬鹿にしか見えない。

コーランを読めば読むほど、
聖書を読めば読むほど、
教義の問題点が見えなくなっていく。

最後には、現実の生活のための教義ではなく、
教義そのもののために命までかける。
0132デフォルトの名無しさんNGNG
そのうち相対性理論は嘘だったとか、
おなじみのトンデモネタに移行しそうですね
>>1
0133デフォルトの名無しさんNGNG
>>132
批判はトンデモに移行してからにしたら?
0134デフォルトの名無しさんNGNG
コーラン読めない奴が居るとは・・・。
このスレのレベル低すぎ。
0135デフォルトの名無しさんNGNG
>>134
読めなくても、レベル低くても食っていけるからなぁ(藁
0136デフォルトの名無しさんNGNG
>>134
>>128-131の意味がわかってないほどレベル低い奴は
君以外にいないだろうな。
0137デフォルトの名無しさんNGNG
>>128
各言語での個人的蓄積と学習コストを無視したlisp信者の戯言である。
マシン語を低レベル低レベルと連呼してるのにはむかつく。
0138デフォルトの名無しさんNGNG
>>136
ジョークの判らない奴発見!
あれは

「XXを指向理解できない奴が居るとは・・・。
このスレのレベル低すぎ。」

のパロディー
0139デフォルトの名無しさんNGNG
>>137
lisp知らないとそう思うんだよね・・。
0140デフォルトの名無しさんNGNG
信者の方が教義に詳しいのは当然。一般人は教義なんて知りたくもな
い。しかし教義がもたらす現実なら、一般人の方が冷静に判断できる
0141訂正NGNG
>>136
ジョークの判らない奴発見!
あれは
「XXを理解できない奴が居るとは・・・。
このスレのレベル低すぎ。」
のパロディー
0142デフォルトの名無しさんNGNG
実際はマシン語でもスタートアップ時の差があるだけで
蓄積が増えて行けば生産性は高級言語と変わらなくなるんだよね。
実は言語の差などではなく、ライブラリの差だというのが
正解だと思う。
0143デフォルトの名無しさんNGNG
というわけで、白い言語でも黒い言語でも
ライブラリの豊富な言語が良い言語。
0144デフォルトの名無しさんNGNG
Lispの話はひとまずおいておいて
自分の知る言語が「ほげ」であるとして周りをみろ。
「ほげ」でばかりで思考するな、上も見ろってことだろう。

非OO言語だけの奴がOOが理解できるわけがない。
0145デフォルトの名無しさんNGNG
ただし、どんな言語のライブラリでも個人の蓄積を超えるライブラリ
は提供していない。
よって言語移動やってコスト的に見合うのは蓄積のない新米PGか
蓄積できないアホPGだけということになる。
0146デフォルトの名無しさんNGNG
>>144
OOが非OOより上だと言ってるところが信者。
んでもって「向上心が無い」っつうんですか?
0147デフォルトの名無しさんNGNG
>>142
いや、
マシン語がアセンブリ言語より生産性が上がることは
絶対にない!

16進数でコーディング、命令増やすたびに分岐アドレス再計算
などやってられん。
0148デフォルトの名無しさんNGNG
>>144
言語なんかなんでもいいけど、糞Javaはライブラリ作るのに邪魔。
まあOOPLではC++が一番まともだな。Cでも書けるから 藁
0149デフォルトの名無しさんNGNG
>>146
理解できないオヤジっていう、妄想パターンもある。
0150デフォルトの名無しさんNGNG
>>147
丁度良い比較対象として
ゲームボーイ(アセンブラ)と
ゲームボーイアドバンス(C言語)
を揚げておこう。
カセットのハード原価なんか同じっぽいし。
市場価格の差が無ければ、生産性の差が無い証拠。
0151デフォルトの名無しさんNGNG
>>147
そんな奴はいない。せいぜいハンドアゼンブル止まり。
0152デフォルトの名無しさんNGNG
まあ、アセンブリ言語のことをマシン語と呼ぶ場合もあるということで。
だってマシン語は言語じゃないし。
0153デフォルトの名無しさんNGNG
「オブジェクトほげ」使いから「非オブジェクトほげ」使いを見ていると
滑稽ですね。
0154デフォルトの名無しさんNGNG
>>151
いや、ハンドアセンブル無しでいきなり16進で入力してマシン語
組む奴も居なくは無い。
0155OO使い3年生NGNG
プログラミング方法論の一つとしては結構面白いと思うんだけどなぁ。
0156デフォルトの名無しさんNGNG
>>153
だからお前だけが「オブジェクトほげ」使ってるんじゃないんだよ。
0157デフォルトの名無しさんNGNG
馬鹿は優越感を与えてくれる思想を信じるものです。
0158デフォルトの名無しさんNGNG
どんな言語にも、長所と短所がある。
長所が生きて、短所が障害にならない場所で、使えばよい。
アセンブラよりLispが優れているから、アセンブラはいらないとでもいうのか?
0159デフォルトの名無しさんNGNG
プログラマは自分の好みの言語を深く愛する質だし、私は誰も傷つけたくないので、
ここで仮想的なプログラミング言語「ほげ」を使って私のポイントを説明しよう。
「ほげ」は抽象度のスペクトルのちょうど真中に位置するものとする。
最もパワフルな言語ではないけれど、Cobolや機械語よりはパワフルだ。

そして、仮想的な「ほげ」プログラマ氏は、Cobolも機械語も使わない。
もちろん機械語なんて使わない。あれはコンパイラのためのもんだ。
それにCobolだって、あれで何かをきちんと動かしたことがあるって人を知らないよ。
結局のところ、「ほげ」にある機能xが無いもんな。

このプログラマ氏がパワーのスペクトルを見下ろしている時、
彼にはそうしているという自覚がある。
「ほげ」よりも力の弱い言語は、明らかに力が弱い。
彼が慣れ親しんだ機能が無いからだ。しかし、このプログラマ氏が反対の方向に目を転じた時、
彼は自分が見上げているのだということに気付かないのだ。
彼が目にするのは、変てこりんな言語ばかり。
多分、それらは「ほげ」と同じくらいパワフルなんだろうけど、
どういうわけかふわふわしたおまけがいろいろついているんだ、
と思うだろう。彼にとっては「ほげ」で十分なのだ。
何故なら彼は「ほげ」で考えているから。
0160デフォルトの名無しさんNGNG
OOは、分析・設計にまでは役に立つが、プログラミングそのものに対しては言語仕様に
依存するところが多すぎて、スマートさが失われることが多いぞ。
0161デフォルトの名無しさんNGNG
>>159
失礼とは思うが、あえていわせてもらおう。間抜けすぎる。
君がキャッシュカードを使うとき、汎用機のコボルプログラムが動いている。
汎用機のない全国システムとか、作れると思うのか?
日経バイトでも読んで、そんな幻想を抱いたか?
適材適所という言葉を、君に捧げよう。
0162デフォルトの名無しさんNGNG
>>159
だからその文章は各言語PGの蓄積を無視してるんだって。
おまへは自分のライブラリを持ってなくて、プログラム組むたびに
1から全部コーディングするのか?
0163デフォルトの名無しさんNGNG
用途が尋常じゃなく多種多様にある計算機を、
ただ一つの概念で斬ろうとするから毎回こういった論争が起きるのでは・・・
0164デフォルトの名無しさんNGNG
>>161>>162

>>128のリンク先を読めよバカ
情報も集められないマヌケとは話にならんね
0165デフォルトの名無しさんNGNG
汎用機なんて2〜3年すりゃ無くなるでしょ…
同じ性能のWS10個買う方が安いし…
信頼性っても、WSが同時に10個ぜんぶ壊れるよりは、壊れる確率高いし…
コボルで書いた過去の遺物プログラムはwrapしてそっと安楽死
させるんだろうけど、今から書くのにコボルつかっちゃ終りでしょ。
0166デフォルトの名無しさんNGNG
>>164
はたから見てると、只の負け犬の遠吠えにしか聞こえんのだが。
0167デフォルトの名無しさんNGNG
>>159
どの言語でもベテランなら「今の言語のままの方が速い」と言う。
当然だ。そして事実速い。
その言語での蓄積があるからね。
蓄積の問題を「嗜好」にすりかえた酷い煽りだ。
0168デフォルトの名無しさんNGNG
>>165
スパコンもなくなると思うのか?
金出しても、高性能と安定性を求める場所があるのだよ。
0169デフォルトの名無しさんNGNG
>>164
とっくに読んだよボケ!
お前はその後の反論が理解出来ないのか?
自分の共感を感じるだけで論理的に説明できないのか?
0170デフォルトの名無しさんNGNG
>>167
アセンブリ言語無しで動く電化製品を上げてみろ。
0171デフォルトの名無しさんNGNG
>>165
今あるコボルの資産を他の言語で書き直すことなどありえない。
だれもそんな費用を負担できない。
汎用機はクラスターマシンとして残るだろ。
0172デフォルトの名無しさんNGNG
>>165
日経コンピュータとかで、ずいぶん昔に同じ事いってたよ。
まあ、想像(希望?)と現実のギャップってやつかな。
0173デフォルトの名無しさんNGNG
いや、汎用機は只単に Linuxの入れ物と化すだろうよ。
まとまってた方が課金の管理とか楽だしね。
0174デフォルトの名無しさんNGNG
>>166
自作自演、必死だな。

>>167
では上をみることなく、「ほげ」にへばり付いて生きてください。
仕事は減っていくばかりで、後輩からは疎まれるだけでしょうけど。

>>165
IBMでも新規プロジェクトでCOBOLはもうありえないって。
ぜえんぶJavaですって。
残るけど保守だね。

>>169
じゃあコピペにまじれすしてないで
個人の蓄積が言語の進化を上回るという
納得できる資料を持ってきてもらいたいものだ。

>>160
まともな意見だね。その通り。スマート差を求めた結果がOOではないもの。
0175デフォルトの名無しさんNGNG
137は低レベルの意味わかってんのか??
0176デフォルトの名無しさんNGNG
>>171
どこかで「保守コスト」が「書き直すコスト」を上回ると思うが…

それはともかく、汎用機じゃなくてもCOBOLが動きゃいいんだろ?
0177デフォルトの名無しさんNGNG
>>174
また、根拠のない批判と、妄想による仮想人物像の生成・・・・・
あんた、OO信者だね。
0178デフォルトの名無しさんNGNG
>>176
想像の話と、現実の話は、区別してください。
0179デフォルトの名無しさんNGNG
>>176
書きなおした言語での保守コストも勘定に入れよう。
ひょっとして仕掛け人か?
0180デフォルトの名無しさんNGNG
実の無い論争・・
0181169NGNG
>>174
とっくに反論の中にはいっとる。
読んでから反論しろ ぼけ!
0182デフォルトの名無しさんNGNG
OO を否定する気はないが アホな OO 信奉者にはウンザリ (-_-)
0183デフォルトの名無しさんNGNG
>>174
馬鹿が!自分だけがOOPL使ってるとおもってやがる。
とさっきも書いた。
周りが見えなくなるくらいなら有害。
0184デフォルトの名無しさんNGNG
>>182
一生懸命にOOを否定してるやつにもうんざり
0185デフォルトの名無しさんNGNG
化石ソフトのお守りはともかく、
今から新たに書くならCOBOLは誰もつかわんだろ。
0186デフォルトの名無しさんNGNG
つーかさ。
java使ってるやつってほんとにOOわかってんの?

そんなんだからこういうスレたつんだよ。
0187デフォルトの名無しさんNGNG
>>184
私は OO 否定なんてしてないよ
0188デフォルトの名無しさんNGNG
>>185
汎用機はコスト高になるから案件が少ないしな
0189デフォルトの名無しさんNGNG
>>184
ハイハイ。せいぜいOO目一杯導入してデスマーチで死んでくださいね。
0190デフォルトの名無しさんNGNG
>>187
ageてるのおまえだけだし。(藁
0191デフォルトの名無しさんNGNG
OOがここまで叩かれるのは、OO派の一部に、現実離れした空想家がいるせいだろう。もしかして、反OO派の自作自演か?
0192デフォルトの名無しさんNGNG
>>186
判ってる奴は欠点も見えてくるものなのです。

判ってない奴は日経なんかのプロパガンダが頭の中を駆け巡るだけで
自分見て自分の頭で考える事が出来ない人なのです。
0193デフォルトの名無しさんNGNG
俺も上げてるけど?藁
0194訂正NGNG
自分の目で見て自分の頭で考える事が出来ない人なのです。
0195デフォルトの名無しさんNGNG
>>185
たしかにイー・ウイング証券はPCサーバだし、
スター・フューチャーズはUnix、
富士サイバーバンクはUnixクラスタだね。

海外の銀行や証券は5〜6年前からUnixに移行してるよ。
0196デフォルトの名無しさんNGNG
いや、OOをよく分かってない段階で導入して痛い目にあったのが
山ほどいるからだろう。

ツールや言語がOOベースだからといって、それで生産性や品質が
常によくなるわけではない。

OOで何かをはじめるには、従来のソフトウェア開発の手法とは
違うベクトルでものを考えなければいけないのに、
それに気付かず、いざはじめて見て挫折するんだろう。
0197デフォルトの名無しさんNGNG
つーか、馬鹿には理解するのが困難だったり非常に時間がかかるが、学習後は飛躍的に生産性があがる
という言語があったとするわな。あくまで仮定な。
そして、君の下に何人か馬鹿な部下がいるとする。(あるいは君が馬鹿なプログラマだと仮定してもよい)
君なら開発言語に何を選ぶ?

馬鹿だらけの今の業界の状況では学習が容易な言語を選んだほうが生産性が結局は高いことはざらなのよ。
グローバル変数使いまくったほうがいいって言うぐらい馬鹿なやつしか集まらない惨状もあるのだよ。
そして、君は個人的に志を高くして効率のいい方法を学べばよい。
大きいところにいちゃだめだ。大勢の凡人がいるところでは凡人にあわせる必要があるからね。
128はベンチャーの話題だろ?
0198デフォルトの名無しさんNGNG
>>190
183も185も189も 私じゃないよ
自作自演だっておもってるの
だとしたら ちょっとノイローゼ気味かも
0199デフォルトの名無しさんNGNG
>>195
意味不明。
COBOLってのはいつからOSになったんだよ 藁
0200デフォルトの名無しさんNGNG
                       ∧_∧  / ̄ ̄ ̄
                     ∧( ^∀^)< 終了
                   ∧(  ( つ ⊂ )  \___
                 ∧( ( つ.)  ) )
               ∧( ( つ  (__)_)
             ∧( ( つ (__)_)
           ∧( ( つ (__)_)
         ∧( ( つ (__)_)
       ∧( ( つ (__)_)
     ∧( ( つ (__)_)
   ∧( ( つ (__)_)
 ∧( ( つ (__)_)
( ( つ (__)_)
( つ (__)_)
| (__)_)
(__)_)
0201デフォルトの名無しさんNGNG
>>199
汎用機の意味わかっていない人発見
0202デフォルトの名無しさんNGNG
>>197
妄想大爆発非論理的思考回路要転職
0203デフォルトの名無しさんNGNG
>馬鹿だらけの今の業界の状況では学習が容易な言語を選んだほうが生産性が結局は高いことはざらなのよ。
>グローバル変数使いまくったほうがいいって言うぐらい馬鹿なやつしか集まらない惨状もあるのだよ。
はい、デスマーチ決定。
馬鹿を何人も自殺させ、退職に追い込んで、その上プロジェクトの顧客満足度は限りなく低いまま
プロジェクトは崩壊しましたとさ。
0204デフォルトの名無しさんNGNG
>>201
なんでUNIXに移行するとCOBOLが使えなくなるのか
小一時間問い詰めたい。
0205デフォルトの名無しさんNGNG
PCサーバやUnixサーバで*わざわざ*COBOLで書くのか?
ヴォケか?
0206デフォルトの名無しさんNGNG
>>197
典型的な信者の反論だな。
想定問答集でもあるのか?
いままでちゃんと商売が成り立っていたのにOO導入で大赤字
っつう現実をそうやって他人のせいにするとは。
0207デフォルトの名無しさんNGNG
>>202
面白意
藁汰
0208デフォルトの名無しさんNGNG
>>205
COBOLは大抵UNIXベースだろ?
ああ、サーバーね。
ガイシュツだけどわざわざ最新のプラットホーム用のCOBOLも
後を絶たないらしいんだな。
0209デフォルトの名無しさんNGNG
>>206
OO導入していない企業が
OO導入した企業を駆逐したという事例を紹介してください。

OO導入に失敗したという企業はわんさかありそうだが。
0210デフォルトの名無しさんNGNG
OO導入した企業が
OO導入してない企業を駆逐したという事例を紹介してください。

OO導入に成功したのに赤字という企業はわんさかありそうだが。
0211デフォルトの名無しさんNGNG
マ板へ逝け
0212デフォルトの名無しさんNGNG
>>210
情報関係なら、OOについていけない窓際族はいても、
企業ごとOOを導入してない企業なんて無い。
0213デフォルトの名無しさんNGNG
OOが30年前からあるそうなのに、OOが未だに広く普及してないのは、
OOを導入した企業がパタパタ潰れて行くからなのです。
0214デフォルトの名無しさんNGNG
で、OO を使わないとしたら開発手法は何使うわけ?
ひたすら「気合」「根性」「徹夜」「できるやつ頼み」?
0215デフォルトの名無しさんNGNG
>>212
そりゃOOPL。
0216デフォルトの名無しさんNGNG
>>214
自分で蓄積したライブラリ。
0217デフォルトの名無しさんNGNG
>>216
転職(転社)したらどうするの?
0218デフォルトの名無しさんNGNG
>>217
言語変わっても同じようなライブラリを組んでしまう。
だから言語関係無し。
0219デフォルトの名無しさんNGNG
>>214
ソフトウェア工学って知ってる?
0220デフォルトの名無しさんNGNG
214 名前:デフォルトの名無しさん 投稿日:01/10/28 02:39
で、OO を使わないとしたら開発手法は何使うわけ?
ひたすら「気合」「根性」「徹夜」「できるやつ頼み」?

216 名前:デフォルトの名無しさん 投稿日:01/10/28 02:40
>>214
自分で蓄積したライブラリ。


馬鹿はいいねえ。気楽で。
あなたこのように思われてます

なんでこんな奴と給料が一緒なんだと思う瞬間
http://pc.2ch.net/test/read.cgi?bbs=prog&key=1000730743
0221デフォルトの名無しさんNGNG
>>217
そういった同じ様な開発手法を集めたんがデザパタじゃないの?
あまりレス読んでないんだが
0222214NGNG
>>220
なんじゃそりゃ。
指示ファイルに記述された複数のファイルにある複数の単語
(または文法規則)を一気に変換する個人ツール持ってますが何か?
0223デフォルトの名無しさんNGNG
>>219
もちろん in house な開発手法でやってるのだろうけど、
ほとんどは明文化されずに「いつもやっているようにやる」だけではと思ったので。
文書があっても読むと頭痛がするようなのだったりするが。。。
0224デフォルトの名無しさんNGNG
追記
アセンブラソースをC言語のソースに変換したりできる強力な奴ね。
0225220NGNG
>>>222
216のことを馬鹿にしてみたのですが、
0226デフォルトの名無しさんNGNG
まさか、自作自演ですか?
0227214じゃなくて216NGNG
間違いね。
0228デフォルトの名無しさんNGNG
>>218
そんな簡単に作り直せる量なら蓄積にこだわる必要もないね。
0229デフォルトの名無しさんNGNG
>>224
アセンブラからJavaにもできる?
だったら欲しい。
0230デフォルトの名無しさんNGNG
そうか、お得意の自作自演、しかも失敗か。毎度ごくろうさま。
0231デフォルトの名無しさんNGNG
218=216ね。
簡単ね。
つうか言語は邪魔ね。
変換規則ファイルいちいち書かなきゃいけないし。
0232デフォルトの名無しさんNGNG
>>229
あげない。
つうか個人ツールだから目的のファイルが得られたらそこで作るの
止める。
Javaだと文法規則の解釈ルーチンを拡張しなきゃならんなあ。
0233デフォルトの名無しさんNGNG
OO使ってるけど、生産性は酷い。これは確実な実感。
再利用性は既存手法と変わらない。というより、既存手法でもOOでも無理。
でもOOを使い続ける。時代の流れなんだからしょうがない。
0234デフォルトの名無しさんNGNG
コードの再利用性を上げる唯一の方法は、コネで取れる常連客以外の仕事を
全部断る事だろ?
0235デフォルトの名無しさんNGNG
個人のコード蓄積うんぬんをいってるけれど、結局それは
プログラマそれぞれが車輪の再発明をやっている、という
世界観だよね?その世界観だと『コードの再利用』って奴は
せいぜい個人のレベル止まり。
そんな事をいつまでもやっていれば、
・他人のコードを修正する。
・新しい言語に移行する。
といった行為がコスト高になってしまうのは当たり前だと思うが。
0236デフォルトの名無しさんNGNG
OOのお題目の再利用は非常に高貴なものだが
多種多様なリアル社会においては実践不可能
理論上可能なので試してみたら不可能だったのだ
0237デフォルトの名無しさんNGNG
>>235
あほか。
ライブラリレベルの細かいものじゃないわい。
どこにもないから自分で作るしかないの。

お前最先端の仕事した事ないだろ?
最先端の技術ってのは他社には秘密だし、名前なんかついてないんだよ。
世間でも認知されてないものなの。
0238デフォルトの名無しさんNGNG
> お前最先端の仕事した事ないだろ?

こいつ馬鹿?
0239デフォルトの名無しさんNGNG
>>237
厨房決定
0240デフォルトの名無しさんNGNG
>>238-239放置でおねがいします。

>>236、それはある意味正しい。
再利用性を考慮してOOを使いこなすのは非常に難しい
単なる構造化の方が再利用性は高い。

再利用性で生産性を高めるためにOOが生まれたわけじゃないです。

現実の事象にそってプログラミングできる利便性
それにより設計段階のプログラミングが非常にやりやすくなるし
仕様変更にもより柔軟に対応できるようになる。
加えてマルチタスクプログラミングがやりやすくなっている。
デザパタのStateパターンがイメージとして近い。
そういう目的があってOOが導入されてきたわけ。

OOが生産性が低いといっている人は
設計を行わずにいきなりコードを書き始めていないか?
決まりきった定型処理ばかりなら
それで生産性の高いことが出来るだろうが
複雑な仕様になると設計は必須だし
その設計を反映させるためのOOも重要になるのだが。
0241デフォルトの名無しさんNGNG
>>238-240
君ら、望み無し。
救いがたい。
0242デフォルトの名無しさんNGNG
>237=241だよね?
面白い人ですね。コテハンを名乗られては如何でしょうか
0243デフォルトの名無しさんNGNG
237=241=あいつ、ほらちょっとまえこの板を荒らしていた、アイツ。

厨房に救われても迷惑だろう。
0244デフォルトの名無しさんNGNG
オブジェクト指向といえばRubyだよな。
0245デフォルトの名無しさんNGNG
継承による再利用は、うまくいかないことが多い。
委譲による再利用は、うまくいきやすい。
0246デフォルトの名無しさんNGNG
厨房は委譲という言葉の意味がわからないから絡んでこないらしい。

委譲はOOの中でもより構造化プログラミングに近い。
その方が再利用がうまくいくということ。
OOが再利用性が高いと思うのが間違い。
0247デフォルトの名無しさんNGNG
OOは構造化プログラミングじゃないんですか?
0248デフォルトの名無しさんNGNG
ここに居るような奴等にはRubyなんて勿体ない。死ねよ。
0249デフォルトの名無しさんNGNG
>>245
委譲ってレイヤリングみたいなもん?
0250デフォルトの名無しさんNGNG
>>246
  委譲はOOの中でもより構造化プログラミングに近い。
  その方が再利用がうまくいくということ。
  OOが再利用性が高いと思うのが間違い。

ワラタ
delegation (black-box再利用)の方を多用すべきなのは
OOを勉強した人間なら常識だろ。デザパタもそう。
0251デフォルトの名無しさんNGNG
継承しないでクラス変数のインスタンス置いて使うのが委譲。
0252デフォルトの名無しさんNGNG
クラス変数のインスタンス??
つゆだく認定。
0253デフォルトの名無しさんNGNG
変数のインスタンスって…
0254デフォルトの名無しさんNGNG
クラス変数のインスタンスはクラスです
0255デフォルトの名無しさんNGNG
>>251
なるほど。
レイヤリングもクラスのメンバにオブジェクトのインスタンスを
置いて使うものと自分は理解しているんだけど、委譲とは
何か違いがあるのかな?初心者でスマソ
0256デフォルトの名無しさんNGNG
他のオブジェクトをフィールド/メンバ変数/インスタンス変数として保持し、
そのインターフェイス(publicなメソッドね)の一部(または全部)をラッピングして
自分のインターフェイスとして外部に提供する。
0257デフォルトの名無しさんNGNG
頭痛が痛い。
0258デフォルトの名無しさんNGNG
>>255
いいから251じゃなく256を信じとけ。
0259255NGNG
>>256
他のクラスを、インタフェイスも含めて内包したものが(継承は行わずに)
委譲ってことですね。わかりました。
ありがとうございます。
0260デフォルトの名無しさんNGNG
どっちか一つのスレに統一したら?
0261デフォルトの名無しさんNGNG
両方終了でいいよ。くだらねえ。
0262デフォルトの名無しさんNGNG
こちらのスレはオブジェクト指向相談室になりました。
0263デフォルトの名無しさんNGNG
>>259
何故委譲が推奨されるか(つまり安易な継承が推奨されないか)は
この文書の「実装の継承に関する問題」を読んでくれ。
http://www.microsoft.com/japan/developer/library/jptech/TechArt/VTools/vb/vb6/ifacebased.htm
0264デフォルトの名無しさんNGNG
>>263
ブラクラチュウイ
0265デフォルトの名無しさんNGNG
>>264URLみろよ。

不毛な議論の
マ板での受け入れ先がきまりました。
各位よろしくおねがいいたします。

今思ふ  今の時代言語は何でも言いと・・・
http://pc.2ch.net/test/read.cgi?bbs=prog&key=1003835137
0266デフォルトの名無しさんNGNG
不毛だ不毛だなんて言ってごまかしてる。
そんな手しか思いつかないのか?

1)OO推進者は実は生産性なんかどうでも良いと思ってる詐欺師。
2)OO推進者はプロジェクトが失敗しても何かを生産したと思ってる馬鹿

これは問題だぞ。
0267デフォルトの名無しさんNGNG
>>266
馬鹿呼ばわりされて悔しい日常なのには同情するがもう飽きた。
0268デフォルトの名無しさんNGNG
>>266
憐れみすら感じさせる発言だねぇ。
ageてるし。
よっぽどかまって欲しいらしい。
0269デフォルトの名無しさんNGNG
3)旧世代を倒せ!未来は君達若者の手に掛かっている。
  と煽って紅衛兵を生産した。
0270デフォルトの名無しさんNGNG
すいません。コンポジションも教えていただけるとうれしいです。。
私は委譲は>>251さんの意見と同一の理解で、コンポジションは
委譲と同様のインプリで意味は他のオブジェクトとのつながりが非常に密なもの(切り離せない)という理解です。
委譲の方の意味は実現したい昨日を他にお任せするという理解です。
・・・どうでしょうか?
0271デフォルトの名無しさんNGNG
コンポジションは多態とのつながりが密接だからなあ。

他とのつながりが密なわけではなくて、
他との切り口が同じになっていることを言うんだよ。
0272デフォルトの名無しさんNGNG
>>271
もっと分かりやすくきぼん。
0273デフォルトの名無しさんNGNG
>>272
わかりやすく言うからよーく聞け。

スレ違いだ。
0274デフォルトの名無しさんNGNG
>>273
本来ここは技術板なのだから、1の方が板違い。
0275デフォルトの名無しさんNGNG
>>274
オブジェクト指向の効能書きを読み返すべし。
生産性を問題にしないオブジェクト指向なんて合って良いはずが無い。
0276デフォルトの名無しさんNGNG
派生クラスでオーバーロードした関数の返り値などは、基本クラスで約束されたものの範囲でなければいけない。
0277デフォルトの名無しさんNGNG
>>276
どうしたいきなり?
まあ、静的型言語ならそうだな。
0278デフォルトの名無しさんNGNG
>>277
covariantかcontravariantかっていう話じゃないの?
0279デフォルトの名無しさんNGNG
>>278
その問題は typing があるから生じるんでないの?
まあ、確かに型付けがある言語が一般的だし、
コンパイルをすり抜けるようなエラーが生じるややこしい問題だってのは分かるが。
0280デフォルトの名無しさんNGNG
再利用あげ
0281デフォルトの名無しさんNGNG
>>276
VC++でcovariant return typeの扱いにバグがあるのは有名な話だが、
それが何か?
0282デフォルトの名無しさんNGNG
>>280
これ↓の次スレとして使おうという目論見? それなら、賛成一票入れとく。

やっぱりオブジェクト指向は幻想でした。
http://pc.2ch.net/test/read.cgi/tech/1003815855/
0283OO初心者NGNG
こういうOO批判(罵倒?)スレを見かけると、物理板で定期的に
上がってくる「相対性理論は間違っていた!」みたいなスレをつい
連想してしまう。
ただしそちらでは相対論擁護派の勢いが強くて(まあ当然だけどね)、
やがてスレ立ての1はスゴスゴと退散というのがいつものパターン。
しかしこちらではOO擁護派の意見に今ひとつ迫力が感じられないのは
どういうわけだろう? やっぱり胡散臭いところがあるということか。
擁護派の皆さん、何か後ろめたい気持ちがあるんじゃないの?(w
0284デフォルトの名無しさんNGNG
なんつーの、OO批判って的外れな批判なんでなあ。
ソフトウェアの品質をどう評価するかって部分で噛み合わないし、
ウォーターフォール開発に凝り固まっている組織にOOを導入するコストは
OOを導入したことによるメリットを軽く上回るだろうしなあ。

# まったく新規にソフト会社を作るとして、OOを採用しない理由はないと
# 思うがな(関数型言語を採用するなんて剛毅な会社があってもいいけど)。

まあ、とりあえずOOを批判するならMeyerの著作の主張に反論してみて
ほしいね。あと、どうしてIBMがRGBとかを捨ててJavaに移行してるか
とかな。
0285デフォルトの名無しさんNGNG
OOがウオーターフォールと対立すると思ってる馬鹿発見。
0286デフォルトの名無しさんNGNG
>>283
OOが原理だと思ってる基地外発見。
0287デフォルトの名無しさんNGNG
>>284
学生さんですか?
反論とか理論とかは私には意味無いです。
現実に使えるかどうか、それしか興味ありません。
生産性が上がるなら理論でなくても、たとえ矛盾してても使いますし、
下がるならどんな立派な理論でも使いません。
それだけ。
0288284NGNG
俺はOOで飯食ってるよ。
生産性ってのもプログラマーしかやっていない奴のレベル
(生産性=仕様書通りのコードを早く書けること)
と、クライアントと交渉する奴のレベル
(生産性=クライアントの要求を低コストで実現すること)
とでは、まったく観点が違うからね。仕様書も書くし、
コードも書くという奴なら、なおさらOOを選択するでしょ。

要求が五月雨式に出てくるようなプロジェクトで、
OOしないなんて、少なくとも俺にはできない。
0289デフォルトの名無しさんNGNG
>>287

生産性っていう言葉の定義が問題だな。
誰が何を使うとどう生産性に影響がでるか。
学習に多大なコストがかかるのは、学習内容のレベルが高い場合と
学習者のレベルが低い場合がある。

反論とか理論とか、と並記するあなたの国語のレベルはどうかと思うが。
0290デフォルトの名無しさんNGNG
プログラマから見ると

 OO的に継承を使う処理は、インスタンスが複数作られ、かつオブジェクトの機能が固定され
 る事を前提にする場合非常に巧くゆく
  その代表はGUI的処理

一つのプロセスでインスタンスが1つあればよい場合は ユニット・モジュール分割で十分

オブジェクトの機能が固定されない場合、OO的に継承を使って書くのは馬鹿げている
 その代表は、社員や商品ををクラスで表現なんて事
0291デフォルトの名無しさんNGNG
詐欺師も必死だよ。
誰だって死にたくないからな。
0292デフォルトの名無しさんNGNG
>>283
ホントだね。トンデモな人達がこんなに多いとは。

>>290
OOで継承が重要だと思ってるバカ発見。
0293デフォルトの名無しさんNGNG
こういう継承の使い方を勘違いしたバカがいるために、
OOに関する間違った印象を与えているとしたら
とてーも残念なことですねー。
0294デフォルトの名無しさんNGNG
>OOで継承が重要だと思ってるバカ発見。
↑
こういう言い方が一番根拠が無い、知ったか学生だYO!
自分の立場も明らかにしてないし、自分の意見も無い。
継承を否定するのが大学のトレンド(古い言葉だけど厨房にピッタリ)なだけだろ?

OOで継承が重要じゃないと仮定しても、
プログラミング(OOP)では、時間が有限であるため、差分コーディングは重要。
0295デフォルトの名無しさんNGNG
>>294
でも誰が見ても290はバカ。
0296294NGNG
そう言われればそうだ、290の文章って見た目階層があるのに中身に階層無くて、羅列だ。
0297デフォルトの名無しさんNGNG
何このスレ? OOについて行けない>>1のバカぶりをみんなに
知ってもらうためのスレ?
0298290NGNG
おバカな290 です

 じゃ、継承を使わないオブジェクト指向によるコードの例あげてみてよ >>ALL

 既存の言語で継承使わないで書いたら、 普通はモジュールとかユニットって呼ぶぞ
 そしてそれは FILE *fp の頃からやってたやり方だ
0299デフォルトの名無しさんNGNG
>>298
FILE* をモジュールとかユニットとか言う人は少ない
0300デフォルトの名無しさんNGNG
>>298
そもそもクラスベースではないオブジェクト指向言語もある。Smalltalk とか JavaScript とかね。
勉強して出直しましょう。
0301デフォルトの名無しさんNGNG
http://www.atmarkit.co.jp/fwin2k/opinion/ogawa/ogawa_200110.html

この手のブームはMISで耐性がついています。
0302290NGNG
>>300  おいおい
 おバカな290でも Smalltalk にも JavaScript にも継承がある事くらいは判るぞ
0303290NGNG
おバカな290だから Smalltalkなんて高尚なものは触った事もないが
http://www.ogis-ri.co.jp/otc/hiroba/technical/Squeak4/index.html
 ここを見た感じでは クラスという概念はあるようじゃないか
0304デフォルトの名無しさんNGNG
>>300書いた奴はイタイ。。。
0305デフォルトの名無しさんNGNG
>>304
ネタであることを祈ろう。
0306デフォルトの名無しさんNGNG
>>300 の定義はおそらく↓

オブジェクトベース→実行時に継承→インタープリタ実行時に継承
→インタープリタ=Smalltalk or JavaScript
0307デフォルトの名無しさんNGNG
JavaScriptがクラスベースでないのは確かだが継承はあるよね。
>>290よ、OOはダメだそうだが抽象データ型はどうなんだ?
0308デフォルトの名無しさんNGNG
>>1
OOで失敗を経験した奴がOOに私怨を抱いているだけと思われ
0309290NGNG
>>307 抽象データ型って C++でいう テンプレートじゃなくて interfaceの方でやんすね?
 いわゆる似た操作には同じ名前を使いましょうって事を発展させた奴でやんすね?

 あれば便利って事なら異存はございやせんぜダンナ。

 単に同じ名前にしとけば interface被せて便利に使えるんだから、こりゃ便利でやんすね
0310デフォルトの名無しさんNGNG
別スレで抽象データ型、という言葉を出したら誤解
してた人もいたようなので便乗で書いておくと、
抽象データ型(Abstract Data Type)、とはそれの
内部表現にまつわる関数群等をデータと一体にし
て定義したデータ型の事だ。そのデータ型を用い
る事により内部の実装を隠す事をデータ抽象と言う。
オブジェクト指向の一つ前の段階。

もちろんオブジェクト指向はデータ抽象を支援する。
0311290NGNG
290で書いた事と重複するけど、
 抽象データ型も、
 オブジェクトの機能がが静的な場合 つまり属性、所属が静的な場合非常に巧くゆく。
 GUI以外に、数学ライブラリ(行列ベクトル、多倍長)とかね
 だからあれば便利だと思うよ

しかし、 時間変化とともに状態=所属が変化するようなものを扱う場合=
 interfaceを動的に切り替えなければならない場合困った事になる
  JavaScriptなら動的にメソッドチェンジ出来るし、Delphiならイベントにしと
 けば動的にメソッドチェンジ可能だけど、
  これって判り易いか?

 歩と成歩くらいの事なら、どっちでも、そりゃ問題ないけどさ
0312デフォルトの名無しさんNGNG
>関数群等をデータと一体にして定義したデータ型の事だ。
↑
誤解してるZE!
だって、データ型の事だ、だと、データが隠蔽されてないじゃん!
0313デフォルトの名無しさんNGNG
>>312
日本語変だぞ

> だって、データ型の事だ、だと、データが隠蔽されてないじゃん!
言語と、やりかたによる。
0314312NGNG
だせーいいわけ!>>313

どっちにしても、日本語変だとしても、
「データ型」ってのは、データ丸見えであって、データ隠蔽してないの!
従って、データ抽象にはならん。
0315デフォルトの名無しさんNGNG
ふう・・・
>>314 みたいなのがプロジェクトで頑張ると OO導入は大失敗に終る事間違いなし
0316デフォルトの名無しさんNGNG
なんか、言い訳が情けないYO>>315

だって、文書の間違いを指摘されたら、修正版の文書を出すのが先でしょ!
0317デフォルトの名無しさんNGNG
>>314
つーか、黙れ。
0318デフォルトの名無しさんNGNG
>>316
話が出来ないなら、書き込みするな。
うざ。
0319デフォルトの名無しさんNGNG
間違いを指摘した相手に黙れとはダメだろ。
話が出来ないって「314」に論理的に書いてるじゃない。
出きるもんなら、314に反論してみろYO!
0320デフォルトの名無しさんNGNG
反論も何も、言ってる事判んないよ >>319 あんたダメダメ
0321デフォルトの名無しさんNGNG
では、先ず、「データ型ではデータ丸見え」って分かりますか?
0322デフォルトの名無しさんNGNG
じゃまあ 相手しますか・・・・ 判りませんよ >>321
0323デフォルトの名無しさんNGNG
データ型で変数宣言しますよね。
そのとき、その変数に値を入れることが出来ますよね。
また、その値を他に移すことできますよね。
これを値丸見えと言います。

で、どうだ?>>322
0324310NGNG
うわ、なんかすごい事になってる。
どういうレベルの話をしたいのかわからないが、
データ型、がデータ丸見えってのはどっから出てるんだ?
俺はただ、Data Typeの事をデータ型、と書いただけなんで、
もしデータ型、という特別な意味の専門用語が既にあるなら、
適当に直してくれ。
修正した文のせたいなら勝手にやってくれ。
別に俺の文の正しさを強固に主張する気も無い。
0325323NGNG
じゃ、僕もヤメ。
0326デフォルトの名無しさんNGNG
>>319
自分以外の全ての書き込みは、一人の対話相手のものだと勘違いしてるみたいだな。
2ch初心者か、デムパってとこか。
0327310NGNG
>>326

俺がオブジェクト指向が詐欺かどうか、というスレ
の主旨と関係無い書き込みしたのが悪かった、という
事でおさめてくれんか?
この喧嘩続けてもつまらんだろ。
0328322NGNG
 では 関数の帰り値はどうだ? これは型をもってるけど
 関数に代入は出来ないだろ?

  property はどうだ? これは 型を持ってるけど書き込みだけ、読み出しだけしか出来ないように設定出来るぞ


それから C++ の テンプレート関数のテンプレート引数は?
0329322NGNG
おっと・・書いてる間におさまってたか・・・
0330デフォルトの名無しさんNGNG
>>323
もしかして、「データ型」って、プリミティブな型のことを言ってるのか?
だとしたら痛すぎる。つかバカ。
0331310NGNG
ごめん、俺が全部悪かった。
この手の喧嘩はいつも知るべき人を遠ざけるから避けたい。

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
>>312
例えば、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デフォルトの名無しさんNGNG
スーパーハカー登場の予感age
0335デフォルトの名無しさんNGNG
そこはかとなくjava臭漂う今日このごろ。
0336デフォルトの名無しさんNGNG
>>333
昔そういうことやってたよ。C++コンパイラが入ってなくて、
入れさせてもらえなかった環境で苦肉の策として。
C++使えるって幸せだよな。
0337515NGNG
>>333
データ抽象の意味が分かりかけてきたので、教えてください。

Cでのデータの抽象化とは、メンバ変数を直接触らなくても、
そのデータ型を使用するのに十分な関数群が定義されていて、
そのデータ型を使うユーザの間で、データ型に直接触らない
(必要なら新しく関数を作る)ようにルールを決めて運用すること
を指している

という理解でいいんですよね?

#2ch初心者です。
0338   NGNG
優良スレの予感
0339デフォルトの名無しさんNGNG
>>336
つーか、構造化以後オブジェクト指向以前の書き方だよ。
Modula-2とかAdaとか。

C++だとBridgeパターン使うんだろうな。
0340デフォルトの名無しさんNGNG
だいたいOK。

抽象データ型ってのは、具体的なデータ表現が隠されていて、
データに対する操作のみが定義されているデータ型。

実際には完全に隠されてなくても良い。「紳士協定」で、抽象
データ型「だと思って」使うっていうのでもかなり役に立つ。
0341515NGNG
>>340
なるほど。ありがとうございました。

#オブジェクト指向の抽象化と理解がごっちゃになってました。
0342デフォルトの名無しさんNGNG
>>341
オブジェクト指向の抽象化も、元々の意味合いとしては同じだよ。
Javaのinterfaceなんてまさに抽象データ型(+継承)だし。
0343デフォルトの名無しさんNGNG
レベル低〜
0344デフォルトの名無しさんNGNG
>>343
オマエモナー
0345515NGNG
>>342
オブジェクト指向の抽象化は、「車をcarクラスにする」みたいな
話ですよね?
オブジェクトの機能を抽象化するのとデータの抽象化は
ちょっと違うような気がするのですが。。。
0346デフォルトの名無しさんNGNG
オブジェクト指向の抽象化は、「車をcarクラスにする」みたいな
話ですよね?

なんじゃそりゃ(w)
0347デフォルトの名無しさんNGNG
じゃあ、残りの車はcdrクラスか?
とか思ってみたり。
・・・逝ってくるよ
0348デフォルトの名無しさんNGNG
じゃあ俺はcaddr、、、、
ごめん、俺も逝ってくる
0349デフォルトの名無しさんNGNG
>>345
始まりはともかくとして、
プログラミングにおけるオブジェクト指向は、抽象データ型の
「データと、それに対する操作の組」という考えを素直に発展
させたものだと思うよ。極論すれば「すべてのコードは、デー
タに対する操作としてデータに付随するものである」とか。

言い過ぎかな。
0350310NGNG
345みたいな人に読んでもらえるように310を書いた
んだが、読むべき人に読まれてよかった。
Data Abstractionという言葉を知らなくてもOOPは
出来るし、結果としてその恩恵を得る事も出来るが、
意識して組むといろいろわかりやすい事も多いと思う。
JavaやC++の入門書にはゲッタやセッタ作れ、みたい
な事がちょろっとした例と共に書いてある事が多い
と思うが、結局Abstract Dataという考え、というか
その心を知らないと納得出来ない様な内容が多いだろう。
CにおけるData Abstraction、とかOOPLにおけるData Abstraction、
という視点だけではなくて、Data Abstraction、という
視点から両者を見る、という事も出来ると良い、と思う。
上で挙げたSICPの該当個所は、英語だけど入門とし
て読むにはいいと思う。Schemeなのがちょっとあれだが。
0351339=349NGNG
>>350
禿しく概出だったね。申し訳ない。

>>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
>>349
言い過ぎ。
0353デフォルトの名無しさんNGNG
>>351 すげ。ここまでやるならなぜC++を使わない?といったレベルだ
反OOな人たちへの最高のサンプルコードですね。
すぐ思いつくメリットだけでも

1.使用者は処理の実装を意識する必要はなく、結果のみを得られる
2.使用者が非正則な手段を使わない限り勝手にデータを操作することは
不可能なので実装者はデータの一貫性を保証される
3.動的に処理を切り替えられる柔軟性がある

反OOな人にとってこれは「悪い」コードなのか?
0354デフォルトの名無しさんNGNG
>>351
>これはC++コンパイラがやることを自分でやってるようなもんだが、
>Cのコードでも同じような書き方を目にすることは多いはず。
別に反論じゃないけど、この方式だとC++のVtblと違ってすべてのオブジェクトがすべての
メソッドへのポインタを持つことになる。
だから実行時にメソッドを付け替えるのも簡単だ。
強力なオブジェクトはこの機能を必要としていることが多い。だからStateパターンだの
Templateメソッドパターンだのが作られるのだと思う。
0355デフォルトの名無しさんNGNG
>>351
struct 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デフォルトの名無しさんNGNG
オブジェクト指向は必要ということで。
0357デフォルトの名無しさんNGNG
必要な所だけに使うのなら良し。
0358デフォルトの名無しさんNGNG
常識的な議論になってつまんない。

>>312 みたいな基地害が出てきてくれないと面白くない。
それとも312はOO派のネタだったのか?
0359デフォルトの名無しさんNGNG
C++,JAVA,Delphi,Smalltalk 以外のオブジェクト指向派っているの?
0360デフォルトの名無しさんNGNG
>>1
自殺するなよ・・・
0361デフォルトの名無しさんNGNG
>>359
Ruby、C#、Dylan、Eiffel、OCaml、Lisp・・・
0362デフォルトの名無しさんNGNG
>>359
ruby.Python
(perl5,phpはムリヤリっぽい)
0363デフォルトの名無しさんNGNG
>>361
そうじゃなくて「私は Ruby派」と書いてほしいのです。
0364デフォルトの名無しさんNGNG
私は自作言語派。
0365デフォルトの名無しさんNGNG
最近 Ruby派の人多いなあ。
Eiffel派だからうらやましい。いい言語なんだけどなあ。
0366デフォルトの名無しさんNGNG
CLU派。
0367365NGNG
>>366
CLUに興味あるのでどんな言語か説明してほしい。
0368デフォルトの名無しさんNGNG
http://www.pmg.lcs.mit.edu/CLU.html
0369デフォルトの名無しさん NGNG
>>365
Eiffel派ですか?いっしょにスレ立てませんか?
っていってもド素人なんてですが、、、
0370デフォルトの名無しさんNGNG
Dylan派とO'Caml派は居ないかー。
0371デフォルトの名無しさん NGNG
>>370
http://www.gotdotnet.com/resourcecenter/resource_center.aspx?classification=Language%20Vendors
いまなら誰も実装していないからチャンスありますよ!
0372デフォルトの名無しさんNGNG
>>368
Windowsで psファイルって何で見るんですか?
>>369
立てましょう。でも、あまりこれないかもしれません。
0373369NGNG
>>372
たとえ、地味―なスレになったとしても
地道にがんばりますのでよろしくお願いします(^^;

ここの板もスレの傾向が
1.業務スレ
2.ねた、煽りスレ
3.個別言語スレ
4.個別テーマスレ(ex.ゲーム、ネットワーク)
と大体棲み分けが出来てきたような感じなので
続くと思います!
0374デフォルトの名無しさんNGNG
>>373
こちらこそよろしくお願いします。
0375デフォルトの名無しさんNGNG
>>372
ghostscriptで見れるんじゃねーの?
0376デフォルトの名無しさんNGNG
>>375
ありがと。
0377デフォルトの名無しさんNGNG
#include <iostream.h>
enum 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;
}
0378377NGNG
>>377
コンソールで動く簡単なじゃんけんゲームを作ってみました。
(実装一部略)(ももともと大学の課題なんですが)
僕がオブジェクト指向を理解しているか勘違いしているか
判定してやって下さい。
(いまいち自信がない。周りにOOな人もいない。)
0379デフォルトの名無しさんNGNG
ついでに怒られるのを承知で書くと
OOにいまいちメリットを感じない。
(このじゃんけんゲームはもともとCでの課題です)
やたらと作為的で、不自然で、まだるっこしい。
自分のコーディングがそうなだけかも知れないんですが。
0380デフォルトの名無しさんNGNG
379=377です
0381デフォルトの名無しさんNGNG
>>377
オブジェクト指向を理解していない。
0382デフォルトの名無しさんNGNG
>>381
添削お願いいたします。
理解したいとは思っているのです。
0383382NGNG
>>381
つーか、いじわるで言ってるだけだろと
心の中では思っています。
0384デフォルトの名無しさんNGNG
>>382
>つーか、いじわるで言ってるだけだろと
>心の中では思っています。
そうなふうに感じたなら ごめんなさい。
ふつうは JankenGameクラスを1つ定義するだけだと思います。
0385382NGNG
>>384
こちらこそすみませんでした。
game.play()の中で全部書くような感じになるんですか?
0386382NGNG
こんな短い小さなプログラムで
ComputerやらManやらクラスを三つも四つも作れば
そりゃ、作為的で不自然でまだるこしくもなるわな、
という意味ですか?>>384
それとも全然勘違いしていますか?
0387382NGNG
そうのようですね。(勝手に納得)
0388デフォルトの名無しさんNGNG
>>382
>game.play()の中で全部書くような感じになるんですか?
ちがいます。play() を main関数にみたてます。
他にもメンバ関数をいくつか定義する必要があると思います。
play()の中で全部書くのは Cで main関数の中に全部書くようなものです。
0389デフォルトの名無しさんNGNG
>>388
ありがとうございました。
0390デフォルトの名無しさんNGNG
>>382
全然理解してない。クラスの作り方はそれでもいいかもしれないけど、
クラスの使い方を間違ってる。
せっかくPlayerから派生させてるのに、多態を使ってない。
0391デフォルトの名無しさんNGNG
>>390
ありがとうございます。
多分僕は基本的には理解してるだろうと思えてきました。
0392デフォルトの名無しさんNGNG
>>391
だから全然理解してないってのに。
ネタですかぁ?
0393デフォルトの名無しさんNGNG
いやだって、この場合、多態を使っても
そんなにメリットというかありがたみがないでしょ?>>392
0394デフォルトの名無しさんNGNG
>>391
388です。390は別の人です。
0395デフォルトの名無しさんNGNG
>>393
そりゃ、この場合オブジェクト指向使ってもメリットはあまり無いよ。
0396デフォルトの名無しさんNGNG
>>393
FoolComputerと、GeniusComputer追加したくなったときに
役立つよ。(w
0397393NGNG
>>395
もうわかりましたんで。終了ってことで。お騒がせしました。
0398デフォルトの名無しさんNGNG
JankenGameクラスにある、Computer型やMan型はPlayer型にして多態に
するべきだし、hantei()やkati_cnt、make_cntがManクラスにあるのは
良くない。JankenGameに、移動すべきだ。
つまり、JankenGameはManに特有の操作やComputerに特有の操作を
してはいけない。
Playerを追加して、Playerを入れ替わり立ち代り変えてゲームしたり
するように拡張する時に、ソースコードを再利用できるようにする
ためにね。
まあ、この場合将来そんな拡張することは無いだろうけど、
オブジェクト指向とは、そういう拡張を想定してのものだからね。
0399デフォルトの名無しさんNGNG
>>398
>つまり、JankenGameはManに特有の操作やComputerに特有の操作を
>してはいけない。
>Playerを追加して、Playerを入れ替わり立ち代り変えてゲームしたり
>するように拡張する時に、ソースコードを再利用できるようにする
>ためにね。

なるほど・・・勉強になりますです。
0400デフォルトの名無しさんNGNG
>>399
ワナにマジレス。ww

>>398は、OOは使い所を間違うと死ぬという例だよ。
0401デフォルトの名無しさんNGNG
>オブジェクト指向とは、そういう拡張を想定してのものだからね。
ハァ?
0402デフォルトの名無しさんNGNG
>>400
罠かい。どうりで日本語が変だと思った・・・
0403仕掛け人NGNG
OOの次はLYEEでやります。
まもなくビジネス情報系や投資情報系がLYEE賛美で埋め尽くされます。
セミナーも開きますし、成功事例もでっち上げます。
抵抗すれば理解出来ない旧世代とレッテルを貼って追い出す仕組みも
作ります。
抵抗しても無駄です。
0404デフォルトの名無しさんNGNG
>>403
Lyee では、さすがに役者不足だ。売り込むなら、せめて .net にしとけ。

そしてネタは sage でやってくれ。
0405デフォルトの名無しさんNGNG
398 の前半は間違ってないと思うけど。
後半は「結局オブジェクト指向はその謳い文句通りにいかないじゃん」というでかい声にかき消されるが。
0406デフォルトの名無しさんNGNG
>403

OOもそうであったのか?
0407デフォルトの名無しさんNGNG
>>363
372です。Eiffel のスレ立てる話はどうなったの?
0408デフォルトの名無しさんNGNG
自分で立てれば?>407
せいぜい自作自演で盛り上げるこったな。
0409407の訂正NGNG
>>373
372です。Eiffel のスレ立てる話はどうなったの?
0410408の修正NGNG
自分で立てれば?>409
せいぜい自作自演で盛り上げるこったな。
0411デフォルトの名無しさんNGNG
>>1
オブジェクト指向の時代は終わらない。
0412デフォルトの名無しさんNGNG
マルチメディアとかAIの時代はどうなったんですか?
0413デフォルトの名無しさんNGNG
っていうか、もしも関数型言語の方が流行ってたら
スレタイトルが、「関数型言語ー詐欺師の時代の終焉。」になってただろうな
0414デフォルトの名無しさんNGNG
関数型言語とオブジェクト指向は両立するよ。
0415デフォルトの名無しさんNGNG
サブルーチンコ−ル>関数呼び出し>メソッド呼び出し>メッセージを送る

実質はなにも変わってないのになんで名前変える?
0416デフォルトの名無しさんNGNG
手続き至高、逝ってよし!
0417デフォルトの名無しさんNGNG
おバカなOOPLも、早く独立関数型メソッドになれ。
0418デフォルトの名無しさんNGNG
Cは美しいプログラムが書ける。
OOPLでは書けない。
0419デフォルトの名無しさんNGNG
>>415
ただのサブルーチンコールじゃ
動的結合できないじゃないか。
0420デフォルトの名無しさんNGNG
>>418 おまえだけ
0421デフォルトの名無しさんNGNG
>>418
OOPLのプログラムは美しい。
0422デフォルトの名無しさんNGNG
>>415それを言っちゃあ、お終いよ
どんなものでも最終的に機械語になって実行されるからな

うまい料理もまずい料理も最終的にはクソになるって〜やつだな
0423デフォルトの名無しさんNGNG
オブジェクト指向って要はプログラマのオナニーでしょ?
顧客には何のメリットも無いじゃん。
あと、よく知らない人を煙に巻いて騙すためでしょ?
0424デフォルトの名無しさんNGNG
まだ1がいたよ・・・
0425デフォルトの名無しさんNGNG
いや、漏れもオブジェクト指向というコーデック(?)にとらわれず
に書いたほうが、綺麗だと思ったりなんかしていました・・・

オブジェクト指向って、一体なんなんだろうね・・・
思想?コーデック(規約)?言語?
なんだか抽象的ダヨネ
0426デフォルトの名無しさんNGNG
>>423
顧客にとって、バグありありの非OOプログラムを受け取るのと
バグの少ない高品質、高機能のOOプログラムを受け取るのとでは
メリット的な違いは無いのですか?
0427デフォルトの名無しさんNGNG
>>424
早くできるのか?
安くできるのか?
バグが減るのか?
おらおらどうなんだ?糞グラマども。
0428デフォルトの名無しさんNGNG
>>419
関数ポインタがある。
どこからでも呼び出せる。
プログラムの任意の場所を可変に出来る。
そして美しい。
0429デフォルトの名無しさんNGNG
>>425
スタイルだろ。
つうか、綺麗とか汚いとかいう話は感覚論に陥るから
不毛だ。
俺はOOは結構綺麗なスタイルだと思うし。
0430デフォルトの名無しさんNGNG
>>423>オブジェクト指向って要はプログラマのオナニー
っていうか、それで十分だよ
0431デフォルトの名無しさんNGNG
>>427
早く出来るぞ。
多態を考慮してる汎用的部品が使えるから、コードに余分な変更加えなくても
再利用できるからな。
0432デフォルトの名無しさんNGNG
>>426
前提がすごいね。
まあ、どこでメモリリークしてるか判らないプログラムよりはマシ。
0433デフォルトの名無しさんNGNG
>>427
早くできるし、安く出来るし、バグが減りますが何か?
0434デフォルトの名無しさんNGNG
オブジェクト指向から認知科学に興味を持ったけど、
お勧めの本とかだれかしらない?
スレ違いだけどどこの板に行けばいいのかよく分からなかったから、、、
0435デフォルトの名無しさんNGNG
>>431
再利用をOOで初めて知った人発見!
0436デフォルトの名無しさんNGNG
>>435
多態を考慮した部品と、そうでない部品では再利用は前者の方が
上。
0437デフォルトの名無しさんNGNG
>>434
純粋理性批判(カント)
0438425NGNG
>426
そもそも論じる以前の問題よそれ(;´Д`)
ooと非ooが釣り合い取れていないのですが・・・

結局、非ooであってもooで組んでも、要は

「ちゃんと動いて、ちゃんと保守ができて、ちゃんと安定する」

物であればいいのよ。425氏はそれを言いたかったんじゃない?

プロジェクトメンバー内で理解している人が少ないooで組むより、
誰もがわかっているであろう非oo(あえて非ooって言います)で
組んだほうが、よっぽど効率的だと思うのは、漏れだけですか?(;´Д`)
0439デフォルトの名無しさんNGNG
OOを否定する白痴の人々はデータ抽象化も否定するのですか?
0440デフォルトの名無しさんNGNG
OOは環境依存の部分を局所化できるから、移植も簡単だよね。
0441デフォルトの名無しさんNGNG
>>426
>バグの少ない高品質、高機能のOOプログラム

>>431
>早く出来るぞ。
>多態を考慮してる汎用的部品が使えるから、コードに余分な変更加えなくても
>再利用できるからな。

それはOOプロパガンダに洗脳された思い込み。
何ら科学的根拠の無いドグマ。
0442デフォルトの名無しさんNGNG
>>438
その名前はギャグか?
0443デフォルトの名無しさんNGNG
>>441
426はともかく、431は根拠を述べてる文だと思うが。
0444デフォルトの名無しさんNGNG
>>436
「これまでのプログラム技術では単一の目的にしか使えなかったのが
多態になって初めて他用途での使用が可能になりました」
つう、OOの解説書見てインチキだと思う奴と納得する奴と
2種類に分かれる。
0445425NGNG
うげ、425>423 に訂正・・・
スンマセンもうイッパイイッパイで頭が回ってません。
逝ってきます
0446デフォルトの名無しさんNGNG
>>438
そりゃ、理解してない馬鹿がたくさんいる職場では
無理してOO使わない方がいいに決まってる。
0447デフォルトの名無しさんNGNG
>>440
酷いな。最近のOOの布教ではそんな事まで言ってるのか?
カナーリ悪質。
0448デフォルトの名無しさんNGNG
>>444
ハァ・・・
そういう極端な文持ってこられてもなあ。
ただ、一つの型ごとに関数を作らなきゃいけないのに比べれば
多態は便利よ。
0449デフォルトの名無しさんNGNG
>>447
abstract factory
0450デフォルトの名無しさんNGNG
>>423
>オブジェクト指向って要はプログラマのオナニーでしょ?
ちがう!
>あと、よく知らない人を煙に巻いて騙すためでしょ?
人を煙に巻くようなオブジェクト指向本はたまに見かける。
0451デフォルトの名無しさんNGNG
>一つの型ごとに関数

これは何?
http://home.catv.ne.jp/dd/chiba/ken/Java/JavaStream.html
0452デフォルトの名無しさんNGNG
OO否定派の正体
・OOの有効性を理解出来ないのが悔しい。
・実はOOの有効性を理解したいと思っている。
・否定派になってみることで、肯定派から意見を聞き、
 参考にしようとしている。
0453デフォルトの名無しさんNGNG
>>451
言い方悪かったね。それもそれは確かに一つの型ごとに
関数作ってるけど、多態を利用してるから、使う方のソースは
型に依存しないように出来る。
だから、関数を変えても変更は一箇所で済む。
0454デフォルトの名無しさんNGNG
OOなんて昔使ってたテク。
そんな木の車輪持ち出されて「さあ便利だから使え!」と言われてもねえ・・・。
0455デフォルトの名無しさんNGNG
>>454
それは先進的ですなあ。
でも木の車輪はその時代には役に立ったけどね。
詐欺でなく立派に。
0456デフォルトの名無しさんNGNG
木の車輪の構造はゴムの車輪にも受け継がれている!
0457デフォルトの名無しさんNGNG
OOを否定する白痴の人々はデータ抽象化も否定するのですか?
それとも「データ抽象化」という言葉も理解できませんか?
0458デフォルトの名無しさんNGNG
>>454
今は何を使うべきですか?
0459デフォルトの名無しさんNGNG
>>458
サブジェクト指向
0460デフォルトの名無しさんNGNG
>>457
やつらは抽象化という言葉も理解してません。
0461デフォルトの名無しさんNGNG
>>458
今使ってるテクの一部はデザパタの本に書いてあった−よ。(泣)
まあ、俺には問題発見解決能力があるらしいんで世間のテクは
見ないようにした方が良いらしい。人の見ると発想が鈍る。
0462デフォルトの名無しさんNGNG
このスレは、能無し専用ですか?
0463デフォルトの名無しさんNGNG
構造体のことでしょ?Cで言えばFILEとか。
なんでメソッドも含めてデータ抽象というのかが理解でない。
単なる構造体で十分データを抽象化してるのに。
0464デフォルトの名無しさんNGNG
Predicate Orientedってなんですか?
どっかのスレに書いてあったけど。
0465デフォルトの名無しさんNGNG
>>461
一部だけで喜ぶなよ・・・
つうか、それならますます他のも役に立つはずだと思って
勉強した方がいい。
0466デフォルトの名無しさんNGNG
>>461
学生さんの勉強なら、自分で考えるのは大切だね。
仕事ならそんなムダはやってられないが。
(quick sortも自分で再発明するのか?)
0467デフォルトの名無しさんNGNG
>>463
ネタか? それとも本当にこんなアフォばかりなのか?
0468デフォルトの名無しさんNGNG
自分で考えるのは人の発想を学んだ後からやること
じゃないのか?
誰も言及してないことを考えるのが普通だろ?
0469デフォルトの名無しさんNGNG
>>462
OO肯定派・否定派問わず、能無であれば参加できます。
0470デフォルトの名無しさんNGNG
勉強サボる言い訳に使えそうだな。
俺は自分で考えたいから勉強しないんだ!
0471デフォルトの名無しさんNGNG
>>463
FILE *に対しては、操作(fopen, fclose, fread, fwrite等)
だけ定義されてて、FILE構造体の内部を直接触ることは
ないよね? それが抽象化。単に「構造体である」だけじゃ
ない。
0472デフォルトの名無しさんNGNG
>>468
発想なんて勉強しても出てきませんよ。
必要に迫られてやむなく生み出すものです。
0473デフォルトの名無しさんNGNG
>>471
FILEが構造体だなんて誰が決めた?
0474デフォルトの名無しさんNGNG
>>467
ネタじゃないっす。
教えてくれたら嬉しいっす。
OO否定派じゃないですので。

構造体はデータの詳細を隠すから
データを抽象化していると思うのですが、
なぜか学術的にはそれだけではデータ抽象とは呼ばず、
データを処理する手続きを抽象化したメソッドも含めて
はじめてデータ抽象と呼ぶわけでしょう?

なんで?手続きの抽象化は別物じゃんとか思うんだけど。
0475デフォルトの名無しさんNGNG
データ抽象化という言葉が理解できない消防はもういちど
>>333-355 を読み直しましょう。
0476デフォルトの名無しさんNGNG
>>472
だから何?勉強しない方がいいとでも?
0477デフォルトの名無しさんNGNG
>>469

それは必要条件、十分条件ではない
オブジェクト指向への愛(または憎悪)も必要
0478474NGNG
>>471
なるほど。わかったような。操作するさいに
中身を丸出しにしてちゃ、頭かくして尻隠さずか。
ありがとうございました。
0479デフォルトの名無しさんNGNG
じゃあ俺は必要条件を満たしてないな。
0480デフォルトの名無しさんNGNG
>>474
構造体は具体的すぎるだろう。構造体の中身を直接触るようなコードは、
構造体の定義が変わったら全て使えなくなる。少なくともコンパイルし
直さないと。

>>333 のように抽象化してあれば、データの具体的表現が変わっても
リンクし直すだけですむ。モジュール間の依存性が最小限に保たれる。
さらに >>351 のようにしてあれば、複数の具体的表現の中から使う
表現を動的に選ぶこともできる。動的束縛というやつだ。
0481デフォルトの名無しさんNGNG
>>477
無能で(愛・憎悪)が必要ですか・・・。
病者の隔離スレって事ですね。
0482デフォルトの名無しさんNGNG
>>476
そうだよ。
知識を詰め込めばそれが邪魔になって発想が鈍る。
詰め込んだ後ではその知識に沿ってしか考えられなくなる。
0483474NGNG
>>480
解説ありがとうございます。
0484デフォルトの名無しさんNGNG
>>481
リンクし直さなくてすむとか動的束縛とかの利点以前に、
モジュール分割の原則としてデータ抽象化は便利。

モジュール間で互いの実装に依存しているような分割だ
と、本当の意味で「分けた」ことにならないので(他の
モジュールの中も見ないと理解できないから)大規模な
開発では使えない。保守性も劣る。

モジュールをきっちり分ける手法として、データに注目
して抽象化するというのはすでに定石だろう。
0485デフォルトの名無しさんNGNG
>>476
俺の大学の教授が同じようなこと逝ってたよ。「他人の書いたものを
読むと発想が鈍るから読むな。自分で考えろ。」

学生はうんうん唸って考えるんだが、考え付くのは当然、過去にあった
もののでき損ない。数十年の蓄積を一人で越えられるような天才がそう
いるわけはない。
0486デフォルトの名無しさんNGNG
プログラミングでいちいち「新たな発想」とか要るか?
たまには要るだろうが、それよりもいかに既存の手法を
使いこなすかの方がずっと重要だろう。

もしかしてライブラリも学ばずに一から書くのか?
0487デフォルトの名無しさんNGNG
多少不細工■だったとしても■、自分で見つけ出したものは本に書いてないような
ノウハウや長所短所を心得ているせいか巧く行くのです。
というのは俺の経験だけではないらしい。
http://www.atmarkit.co.jp/fwin2k/opinion/ogawa/ogawa_200110.html
0488デフォルトの名無しさんNGNG
>>485
100人の秀才と900人の凡人を作るか、
1人の天才と999人のバカを作るかの違い。
日本では前者の方法を好む。
0489デフォルトの名無しさんNGNG
んー例えばクイックソート知らないで高速のソートが必要になった場合とか。
たまに世間で流布されてるソートより10倍以上速いのを発見したりする。
0490デフォルトの名無しさんNGNG
>>474
構造体は幾つかの変数を一つにパックしてはいるけれど、
それだけでは隠しているわけではないので、
その違いに注意すると良いよ。

抽象はまた別の概念。
class TV と class Light のどっちも関数 on と off とか color
なんて変数だか関数だかもあるかも知れないけど、
各々の実際というか《具体的》なことは違う。
でも、利用者にとっての「光を出す電気機器とはなんぞや」
という考えの中の《抽象的》なことは同様になるかも知れない。
0491デフォルトの名無しさんNGNG
>>488
で、あんたは天才を目指しているわけか?

プロジェクトのメンバーが求めてるのは、せめて
凡人であってくれれば良い(バカじゃなければ)と
いうことだと思うが。
0492デフォルトの名無しさんNGNG
>>489
どうせ、ビンソートとか度数ソートとか、良く調べれば本に
載ってるヤツだろ? でなければ特許取れば大儲けだよ。
0493デフォルトの名無しさんNGNG
>>487
リンク先との関連が分からない。
OOとの関連も分からない。
SISとかCRMとかいう営業マンの流行り言葉とOOの区別が
ついてないとか?
0494デフォルトの名無しさんNGNG
>>492
単なる例、喩え話。
厳密に言うと純粋なソートではないし、特定の状況下でしか使えないので
汎用性は無い。
0495デフォルトの名無しさんNGNG
>>491
どちらの方法が良いとは言わない。
日本は均一的な高水準の教育が売りだが、
新規創造的分野に弱い。
0496デフォルトの名無しさんNGNG
>>489
比較が必要なソートでは、クイックソートの比較回数が
平均的に最小と証明されてるが。

だいいちアルゴリズムの比較に「10倍」ってなんだよ(藁
0497デフォルトの名無しさんNGNG
 この取材中、インタビューで現場のニーズやら、IT化の目標やらを聞いていると、
「ああ、それはいま言われている×××のことですね」と、職業柄、反射的に3文字略
語が口から出てくることがある。それに対する現場担当者の反応は、たいてい決まって
いる。「かっこよく言えばそうなりますね」。
インタビューの冒頭から、3文字略語が大活躍することはあまりない。あくまで自分
たちが抱えている現場のニーズや問題点と日夜格闘して、結果出来上がった情報システムが
、はたから見れば3文字略語の要素を含んでいたということだ。こういう情報システムは成功する
と思う。

SISの教訓から分かるとおり、これとは逆に、3文字略語から出発した、到達目標のはっきり
しない情報システム、現場のニーズであるとか、情報化の効果に対する評価・検討が十分でないまま進めら
れてしまったプロジェクトは、まずもって失敗に終わる。
0498デフォルトの名無しさんNGNG
>>495
ソフトウエア設計やプログラミングは創造性とか芸術性とか
は不要だろ。engineering とか problem solving だろ。

新たなソフトウエアを産み出すのは設計とかプログラミングの
問題ではない。
0499デフォルトの名無しさんNGNG
>>497
無断転載ヤメロ。

それにOOともOOPLとも関係ないよ。どっちも3文字じゃないから。
0500デフォルトの名無しさんNGNG
どうやら「データ抽象化」を否定する人はいないみたいですね。

データ抽象化と、それに基づく設計を素直に発展させたのがオブジェクト
指向ですから、データ抽象化を認めてオブジェクト指向を認めないのは
全く矛盾していると思うのですが?
0501デフォルトの名無しさんNGNG
ソートに限らない話として、
すでに何が有るかは知っていた方がいいけれど、
それぞれの長所短所とか使い道も理解していないとね。
その為には自分で考案してみたり作ってみるのも良い勉強だと思うな。
特に初期の段階では。
0502デフォルトの名無しさんNGNG
>>501
まあね。趣味でなら何日も悩んで考案するのも楽しいね。
でも仕事ではできないね。「自分で考え付きました」と
言っても誰も誉めてくれるわけがない。
0503デフォルトの名無しさんNGNG
>>500
データ抽象化が良ければ、オブジェクト指向の全てが良いわけではない。
0504デフォルトの名無しさんNGNG
>>503
具体的には?
0505デフォルトの名無しさんNGNG
>>503
でも、データ抽象を使うために、例えばOOPLはものすごく便利だし、
他の言語でもOOの考え方を使えば自然にデータ抽象が行えるでしょ?
0506デフォルトの名無しさんNGNG
>>504
具体的も何も、一部が良ければ全て良しというのは変。
0507デフォルトの名無しさんNGNG
>>498
OOの発展にも、創造性は必要だ。
しかし、過去の創造性に頼って生きるのも、人生の選択の1つ。
良いと思う。
0508デフォルトの名無しさんNGNG
>>506 何が駄目なの?
0509デフォルトの名無しさんNGNG
オブジェクト指向は初期のコストが高いけど、使いこなせば
後からそれ以上に楽になってくるというやつでしょ。
0510デフォルトの名無しさんNGNG
>>506
OOを正しく使った結果のがデータ抽象の方法の1つだと仮定すれば
(あくまで仮定)、データ抽象全体を肯定すれば、その部分集合で
あるOOも肯定したことになる。

そうでないとするならば、「OOを正しく使って、しかしデータ抽象
ではない」例があることになる。

それを具体的に挙げてみてくれないか?
0511デフォルトの名無しさんNGNG
アホか。勉強してると発想が鈍るというやつは大きな間違い。
そういうのは、元から頭が固いやつだよ。
現に、有名な天才学者はその分野について詳しく知ってるぜ。
例外無くな。
0512デフォルトの名無しさんNGNG
>>507
OOを発展させるかどうかなんていう大言壮語以前に、
本に書いてあることくらいちゃんと理解しようよ(w

「飛ぶことを覚える前に、人は歩くことを覚えるべきだ」
0513デフォルトの名無しさんNGNG
>>508
OO自体じゃなくて、あんたの理論。
0514デフォルトの名無しさんNGNG
>>502
極端なこと言えば「エンジニアリング」って目標なり要求を
満たすにはどうしようかが出発点にあるからね。
その中には例によって期日(納期)も入っているだろうし。

ただ、そればっかり繰り返していると「枯れ果てちゃう」から、
勉強も必要だと思ってるよ。些細なテーマでもね。

創造とか芸術とかっていうのは、むしろそういう「固定した評価関数」
を用意しない仕事だろうとも思うな。
プログラミングやソフトウェアにもそういう発想があって良いと思う。
そして、誰かがいつか、それをハッキリした目的のために使う時も
あるかもなと思ってる。

じゃ、OOPは創造性の賜物なのか?
なーんてギチギチなこと考えることもないだろけど
0515デフォルトの名無しさんNGNG
勉強+独自の発想の方が、ただの発想よりも高いレベルに
達することができると思うけど。
0516デフォルトの名無しさんNGNG
いつもの妄想が始まったんで逝くよ
0517508NGNG
>>513
504じゃないよ。
0518デフォルトの名無しさんNGNG
Ruby至上主義に入信しました。
0519デフォルトの名無しさんNGNG
本を読むと創造性が失われるなんてどう考えても嘘っぽいなあ。
良い絵画を見たり、良い音楽を聴くと芸術性が失われるのかい?
0520504NGNG
>>513
「あんたの理論」って何?
0521デフォルトの名無しさんNGNG
>>514
しかし99.9%(当社調べ)の仕事には「固定した評価関数」があるんだよ。
納期までに完成して、安定して動いて、変更に強いこと、とか。

「ちょっとここんとこ芸術的に書いてみました」ってのは評価関数では
どっちかというとマイナスになる。
0522デフォルトの名無しさんNGNG
>>519
がいしゅつだが勉強しないヤツの言いわけだってば。
0523デフォルトの名無しさんNGNG
>>512
わかるよ、そうゆう仕事の中では良く思われないね

世の中見渡せば、結構違った種類の「仕事」もある。
その中には一体全体ホントに利用されるのか分からないような
モノを作ってるところやら色々だね。
それこそUNIXやLispだってそんな立場から始まってるしね。
0524523NGNG
>>521でした。すんませんでした
0525デフォルトの名無しさんNGNG
結局さ ライブラリを使うのは楽だけど 作るのは同じじゃないってのが最大の難点?

 というかアプリ作るのにOOライブラリを使うのは便利だけど、
  それ作りながらは・・・・
0526デフォルトの名無しさんNGNG
>>521
「芸術=不採算」のレッテル貼って終わりか。
つまらん仕事しとるな。
つうかOOの方が芸術に近いと思うが。
0527デフォルトの名無しさんNGNG
>>526
つか、プログラミングとかソフト設計とかの「技術」の世界に
「芸術」を持ち込んだらどちらにとっても不幸だろう。

評価尺度がそもそも違うんだから。

ま、いずれにせよ芸術とか創造性が不勉強の言いわけにはならん
よ。
0528510NGNG
>>510 に反論無ければ
「データ抽象化は素晴らしい。よってOOも素晴らしい。」ってことで。

---------------------------- 終了 -----------------------------
0529デフォルトの名無しさんNGNG
不勉強ねえ。
勉強=良い事/勉強しない=悪い事
という固定観念と
OOやデザパタは勉強と呼ぶに値するという固定観念に囚われていて
お話になりませんな。
勉強するに値するものなら労苦は問いませんが、OOは違うという考えが
理解できませんか?
0530デフォルトの名無しさんNGNG
>>528
馬鹿の一つ覚え
0531523NGNG
>>527
> つか、プログラミングとかソフト設計とかの「技術」の世界に
> 「芸術」を持ち込んだらどちらにとっても不幸だろう。

いわゆる『現場』ではそうだろう。けれど基礎技術や概念が出来るのは、
掃いて捨てるほどの技術のタネが上がってくる、広いすそ野が有るのも事実さ。
創造的(芸術とは限らないよ)と言うかどうかは、そう見いだす人の感じ方
や審美心にもよるけど。

> ま、いずれにせよ芸術とか創造性が不勉強の言いわけにはならんよ。

そりゃそうだ。

>>529
理屈っぽくなって申し訳ないが、勉強するに値するかしないかも、
何かしら深い洞察があってこそ出来る判断だろう。
それは人に言われて信じるより、もともと余程しっかりした下地があるか、
実際にやってみる以外にないだろ。
そう思えば値しないものなんてこの世にないよ。(極論だろけど)
0532デフォルトの名無しさんNGNG
>>528
データ抽象化はいいことだと思う。だから、その言葉を知る前から、
Cで構造体を使うときは、それ専用の関数を用意していた。

なおかつ、構造体の定義と専用関数のプロトタイプは同一ヘッダファイルに
まとめ、専用関数群の実装は同一ソースファイルに収めていた。

だからそれら(構造体+関数)をオブジェクト化するのに異存は無いのだが、
プログラムのそれ以外の部分をオブジェクト化する必然性を感じない。
だからプログラム全体をオブジェクト化するOOが素晴らしいと言われても
何が素晴らしいのか理解できない。
0533デフォルトの名無しさんNGNG
>>530
でも反論はできないのね。
0534デフォルトの名無しさんNGNG
>データ抽象化はいいことだと思う。だから、その言葉を知る前から、
>Cで構造体を使うときは、それ専用の関数を用意していた。

なるほど。自分でデータ抽象化を再発明したのね。
ちょっと勉強してればそんな苦労はいらなかったのに。

>だからプログラム全体をオブジェクト化するOOが素晴らしいと言われても
>何が素晴らしいのか理解できない。

なるほど、理解できないと。それは勉強してから言ってる?
それとも自分で再発明するまで納得できない?
(一生再発明できないに一票。)
0535デフォルトの名無しさんNGNG
>>532
プログラムの中(例えばCのmain)で宣言している変数は
全てmainという構造(体)の中の変数として考えられないのかな。
0536デフォルトの名無しさんNGNG
芸術=技術=art
0537デフォルトの名無しさんNGNG
>>532
すべてのデータを抽象化しなければならないわけではない。当然どこかに
具象データ型を直接扱うコードは出てくる。

しかし、モジュール分けの原則としてデータ抽象が有効である以上、全体
を同じ原理で書けるようにして何が悪いのか分からない。

もちろん、例えばOO言語でもクラスメソッド(Javaならstatic method)にしか
しようがないコードはある。しかし、多くの場合、コードは特定の種類のデー
タだけを受け付けて動くようにできているのだから、データとコードを一体と
してモジュール分けの原則とするのは極めて合理的だと思う。
0538532NGNG
>>532
だから私の場合、オブジェクト指向しろと言われても、
プログラムの中で構造体が必要になる場所でしかできないだろう。
局所的なオブジェクト指向しかできない。

プログラムの中で構造体が登場しなければ
全くオブジェクト指向できない。
つまりOO初心者がとまどう
「何をオブジェクトにしたらいいの?」
という疑問が生じるのだ。

構造体を使う場合は戸惑わない。
必要なければ使わないまでだからだ。
ところがOOでは全ての部分で構造体を使え
と強要されるようなものなのだ。

プログラムの中で構造体絡みの部分は私の場合、
感覚的にせいぜいいって5〜10%くらいだと思う。
そのプログラムの種類にもよるが。
0539デフォルトの名無しさんNGNG
>>536
Knuthのようなヘタクソ日曜プログラマならそういう混同をするかも
しれないが、君は技術者をartistと訳すのかね?

問題があってそれをソフトウエアによって解決するときの(工学)技術
とはtechnologyでありengineeringだろう。
0540532NGNG
>>535
なるほど。ただ(広義の)構造化プログラミングを
そのようにしてOOPに「翻訳」したとして、
果たしてそれがOOPと言えるかどうか・・・
0541デフォルトの名無しさんNGNG
>>538
たくさんのグローバル変数があるとき、関連するものは
1つにまとめて扱うとモジュール化が容易だと思わない?
例え1つしか作らなくても、オブジェクトにする価値はあ
る。

たとえば、入力バッファとその中のポインタと、入力ファ
イルポインタを1つにまとめて、それを扱うコードと組に
すれば、Readerクラスのできあがり。別にReaderが1つし
か要らなくても、まとめて他と分離して悪いことはなかろう。
0542デフォルトの名無しさんNGNG
たとえば、今のOO言語でオブジェクトを作ろうとすれば
  Get Putタイプのメソッドを作ってやらなければ
  「使う側」が便利に使えない。

しかし、作る側は Get/Putメソッドを実装するのは逆に比べて何倍も労力を必要とする
  同期型のスレッド・・・・重い上、少しのミスが命取り労力は非常に大きい
  結局内部でIF文・スイッチ文テンコモリのメソッドが出来てしまう

言語機能として完全同期型=コルーチンスタイルを実装しなければこれは解決出来ないだろう
0543デフォルトの名無しさんNGNG
日本民族は既存の技術を学び・理解し・組み合わせ・応用するのが得意
日本の教育は決して悪いものではないが新技術の開発には向かない
0544デフォルトの名無しさんNGNG
>>533
530 じゃないけど、電波すぎる。つっこみ所が多すぎて、つっこむ気になれない。
0545デフォルトの名無しさんNGNG
>>544
1つでいいよ。挙げてみて。
0546535NGNG
実際には取り立ててOOとは言わないよね。
やっぱり
> (広義の)構造化プログラミング
でしょう。
でも、その考えで一貫させておけば、
処理系とかも考えやすいと言うことはあるんじゃなかろか。

Javaではmainはあるクラスの一関数であるみたいなのを見たとき、
ああなるほどって気になったなぁ。

Cプログラミングは「Cのプログラム」という多分一番大きな
クラスの定義の中で定義されたモノを使っているわけでもあるし。
それでも、その中に更に小さい単位のクラスを作って、
そこでしか見えないモノを使ったりもしているんだよ。
0547デフォルトの名無しさんNGNG
>>545
1つだけだよ(藁
データ抽象が必要だとして、それをよりよく実現する方法は、いろいろ考えられるだろう。
データ抽象を目指している方法論の全てが、正しいとは言えない。
0548デフォルトの名無しさんNGNG
>>542
それは「データ抽象化したくない」と言ってるわけね。

抽象化が不要なオブジェクト(例えば単なる「座標」とか
「サイズ」とか)なら、別にgetter/setter作る必要ないの
では?
0549デフォルトの名無しさんNGNG
>>547
うーん、それはOOへの批判とは言えないな。
「データ抽象化とOOが相容れない具体例」を挙げてもらわないと
反論にはならないと思うが?
0550デフォルトの名無しさんNGNG
>>549
OOへの批判じゃないよ。
あんたの決めつけへの批判。
0551デフォルトの名無しさんNGNG
>>550
決めつけつか、単純な論理だが。
「OOがデータ抽象化の一種なら、
『データ抽象化が良い』→『OOが良い』」

『データ抽象化が良い』を前提にこれを否定するには
「OOがデータ抽象化の一種でない」を示す必要がある。
0552デフォルトの名無しさんNGNG
>>550
1つだけって言ったでしょ(藁
後は、自分の言ったことを信じられるか、自分に聞いてみて。
0553デフォルトの名無しさんNGNG
>>542
なんでOOにすると急に同期が必要になるの?
Cでデータ抽象化するときにも必要?
0554デフォルトの名無しさんNGNG
>>552
500は単純化しすぎているかも知れないが、
俺は、OO言語はデータ抽象化を強力に支援するし、
データ抽象化を突き詰めたひとつの形がOO設計であると
信じている。
0555デフォルトの名無しさんNGNG
>>554
信じられるかってのは、OOの事じゃなくて、551みたいな理論の事ね。
0556デフォルトの名無しさんNGNG
>>539
ていうか、「芸術」の定義がゆがんだ形で変化している。
もとは技術と分け隔てできるものではなかった。
芸術について真摯に考えると、やっぱり技術と
切り離せるものではないと分かる。
0557デフォルトの名無しさんNGNG
>>556
世の中がギリシャ時代に戻ったら考え直すよ。
そのころも芸術とは無縁の労働者はいたはずだけどね。
0558デフォルトの名無しさんNGNG
>>553
データ抽象化する時に同期が必要な場合は
  呼び出す事が情報を与える=呼び出す事により状態が変化する場合。
  状態が変化しなければ、もちろん不要だよね。
  でもそれなら、そのデータを作っておいて参照させる場合と比べての
  メリットは、そんなにないぞ
0559デフォルトの名無しさんNGNG
>>558
マルチスレッド環境を考えてるの?
抽象化しないときには同期が要らないの?
0560デフォルトの名無しさんNGNG
言っただろ、詰めこみ過ぎるとその知識での物の見方しかできなくなるって
>データ抽象化
0561デフォルトの名無しさんNGNG
>>560
意味不明。データ抽象化の知識くらい詰め込んどいて損はなかろ。
0562デフォルトの名無しさん NGNG
Lyeeの回し者じゃないけど、もっと日本人は自身を持て!
イチローや中田みたいにアイデンティティ無しに個を確立
できるような強い人間でもない限りやはりどこかに帰属するしかない。
で、その日本人だがや・れ・る・!
自信を持て。まずは舶来物を批判的に見る習慣をつけろ!
批判といってもただダメだというんじゃなくて相対化することだ。
おれの見た感じでは、オブジェクト指向マンセーなやつは
何がだめかって、これがまったくできていないやつが多い。

がんばれ2chネラー、がんばれニッポンジン!!
0563デフォルトの名無しさんNGNG
>>562 おまえがやればいいじゃん
人煽るくらなら
0564デフォルトの名無しさんNGNG
>>562
ネタにしてもつまらん。
アイデンティティなしに個を確立っていきなり矛盾じゃん(藁
0565デフォルトの名無しさんNGNG
データ抽象は、オブジェクト指向の原因(動機)ではなく、
結果(副産物、しかもどちらと言えば、プログラミングにおける
オブジェクト指向の必要性を、一般化・合理化したいがための、
後から取って付けた理屈)だから、データ抽象の延長線上には、
オブジェクト指向は見えてこない。オブジェクト指向の真の動機
は別にあるからだ。

その真の動機とは、文字通りオブジェクトを指向すること、
現実世界の様々な「モノ」をプログラムの中に記述することである。

これはSimulaなどのシミュレーション用言語においては、
シミュレーションの対象物(モノ)をプログラムのコードとして
素直な形で記述するという意味で、自然な動機であったのだが、
シミュレーション以外の用途ではさほど必要性はないと思われる。

故に、何をオブジェクトにしていいか分からない、という困惑は
一般的プログラミングにおいては当然のことなのである。
一般的なプログラミングにおいて、オブジェクト指向しようと
すれば、プログラム中の様々な要素を「モノ」に見立てる
必要があるだろう。その必要性が無いにもかかわらず。

しかし、WindowsなどのGUIプログラミングにおいては、
様々なGUI部品(モノ)をプログラム中にオブジェクトとして
素直な形で記述できるので、オブジェクト指向の必要性は
高いと思われる。
0566デフォルトの名無しさんNGNG
賛成!
やがてOOと相性の良さそうな使い道がリストアップされ、
使い所を見分けるのが常識になり、OOは単なる数ある手法の一つに落ちつくに一票。
(OOPLがどうなるかは知らんが)

OOは秀才向けかもしれんな。
0567デフォルトの名無しさんNGNG
>>565 より
> 何をオブジェクトにしていいか分からない、という困惑は
> 一般的プログラミングにおいては当然のことなのである。

「作りたいもの(作るべきモノ)がどんなモノなのかを
本当に分かっていないでプログラムしていも当然」
と言ってしまっている様にも読めるが…。

手続き又は手順でしか考えられない人もいるが、
それはトレーニング不足の様な気がするなあ。
(「…で考える」と言うことだよ。使う道具の事じゃないよ。)
0568デフォルトの名無しさんNGNG
>>567
565はどの立場にたって見るかでオブジェクトの切り出しかたが
ちがうっていうふうに読めたけど。
0569567NGNG
例えばどう違うと? 大まかでも例を出して貰えると良いんだけど
0570デフォルトの名無しさんNGNG
>>558
オブジェクト指向のスレッドを分かってない。
0571デフォルトの名無しさんNGNG
>>565
>一般的なプログラミングにおいて、オブジェクト指向しようと
>すれば、プログラム中の様々な要素を「モノ」に見立てる
>必要があるだろう。その必要性が無いにもかかわらず。

そんなこと考えてクラスをつくるやついるの?
0572デフォルトの名無しさんNGNG
別にプログラムの要素を「概念」に見立ててクラスを作っても良いのでは。
0573デフォルトの名無しさんNGNG
>>572
いいけど。でも、>>565は「モノに見立ててクラスをつくらなければいけない」
と思いこんでるみたいだから。
0574デフォルトの名無しさんNGNG
>プログラム中の様々な要素
原理主義的には、
「プログラムが実現しなければならない機能要件を満たす何か」
だな。
コードから逆にクラスを起こすのはアレだ。
0575デフォルトの名無しさんNGNG
>>574
言ってることが分からない。
0576デフォルトの名無しさんNGNG
>>575
UMLを使った開発なら、まずユースケース書いてシナリオ書くじゃん。
シナリオの中に実現すべき機能要件が現れる。
んでクラスを抽出するじゃん。

「プログラム中の様々な要素」というのが実装レベルの話だと感じたので。
0577デフォルトの名無しさんNGNG
>>575
分かったけど、おれが言いたいのは UML 書くときでも
「こういうクラスがいるな」とか考えて書くと思うけど。
ああ、うまく説明できない、、、
0578デフォルトの名無しさんNGNG
>>576 の間違い。
0579デフォルトの名無しさんNGNG
そういえば、OOは限りなく実装に近い設計しないと継承などで
失敗するんだったね。
設計しないでおもむろに書き始めた方が速かったり。
0580デフォルトの名無しさんNGNG
>>577
うん。コードが思い浮かぶよね。
このクラス作るには線形リスト使って、addとfindメソッドがあればいいか…とか。
RUP かなんかだと、分析/設計段階では抽象的な役割だけを表したクラス図を書いて、
実装段階でコードに落とせるクラスを書くみたいだけど、
さすがに面倒なのでやってない。
実装に引きずられたクラス作って後で後悔するんだけどね。。。
0581デフォルトの名無しさんNGNG
>>580
いま思ったんだけど、まずコードが思い浮かぶようになるのが OOP の第一段階。
実装に引きずられないクラスを作れるようになるのが第二段階。
0582581NGNG
いや、実装に引きずられてもいいかも . . .
とにかくコードが思い浮かぶようになればいいと思う。
0583言い逃げ日曜プログラマNGNG
オブジェクト指向のプログラミングなんてほとんどやらないけど
それは俺が大物を作らないせい。
思うにオブジェクト指向の出元って少し大きなプログラム組むときまず
データ構造(構造体と言い切って良いかも知れない)を考えるところから
きているんだと思う。
データ構造が決まればプログラミングのメインはその構造体を
いじくるサブルーチンを考えることになるわけで、そりゃ結局メソッドのこと
なんだオブジェクト指向じゃん->ウマー

ここからさらに広がって
よーしパパ関数もオブジェクトにしちゃうぞー。なんて言すくらいなら
よかったが調子に乗って多態だの複雑な継承関係だのやり出しちゃうともう大変。
プログラムの改変性ニアリーイコールゼロ。
おまえら本当に動くプログラム書きたいんかと問いたい。小一時間問い詰めたい。
ただpureOOって言いたいだけちゃうんかと。
ぜんぜん使えない奴はもちろん論外。
まあお前らは出来合いのOOライブラリで全然OOじゃないプログラムでも
書いてろってこった。俺のことだがなあぐはははは
0584デフォルトの名無しさんNGNG
>>583
オブジェクト指向を勘違いしてる。
0585デフォルトの名無しさんNGNG
>>583

そのデータ構造を最初に固定する、
ってのが嫌(むずかしい)からOOPってのは出来たと思う。
でもその結果、構造に変更出来る部分が増えたYO!
と理論上はなっても、実際、変更がそれ程うまく行くか、
というと....
0586580NGNG
>>582
getter/setter 含めてメソッドをがりがり実装して
よーし実行しちゃうぞー → 動かない → このアプローチじゃだめじゃん
となったときに、実装中心で考えていると
駄目なコードでも改良を続けてしまって捨てられなくなる。
インターフェイスとしてのメソッドがちゃんと決まっていれば、
定義は変えずに中身だけごっそり変更すればいいんだけど、
そうでないと泥沼的にメソッドを追加したり減らしたりが始まる。
挙句の果てにヘルパークラスを作り出すともうお手上げ。
一から書き直したほうが早かったと思っても後の祭り。

設計きちんとやればこういう惨事も回避できるのではと思うんだけど、
コードをごりごり書いてる方が楽なんだよね、泥沼に陥っててさえも。
0587デフォルトの名無しさんNGNG
>>586
不変条件を書いておけばなんとかなるような気がする。
0588デフォルトの名無しさんNGNG
583は構造体とクラスは同じと勘違いしている
初心者C++プログラマが陥りやすい罠に
まんまとひっかかっている
0589デフォルトの名無しさんNGNG
getter/setterがあふれているような設計なら確かに、
OOダメじゃんって思うだろうな。

プロパティだらけのオブジェクトでナにか作りたいなら
VBかなんかでもやってロ。
0590デフォルトの名無しさんNGNG
structとclassの違いがデフォルトのスコープだけってのが
C++の糞なところだな。
0591デフォルトの名無しさんNGNG
>>589
多くて4、5くらいだけど、
川俣某氏のように書くのが面倒なので(w
ちなみにダメなのはOOじゃなくて自分なのは自覚してます、はい。
0592デフォルトの名無しさんNGNG
>>535
>プログラムの中(例えばCのmain)で宣言している変数は
>全てmainという構造(体)の中の変数として考えられないのかな。
いってることなんか変。
0593デフォルトの名無しさんNGNG
OOP初心者が非OOP派にならないことを祈ります。
0594デフォルトの名無しさんNGNG
>>592
例えば、

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デフォルトの名無しさんNGNG
こうしたほうがいいか。

class Main{
 int x, y;
 void input();
 void output();
 void func();
public:
 void execute(){ input(); func(); output(); }
}
0597デフォルトの名無しさんNGNG
>>594
>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デフォルトの名無しさんNGNG
>>595

class Main{
public:
  execute(){
    int x,y;
    x=input();
    y=func(x);
    output(y);
  }
  int input(){ ... }
  int func(int x){ ... }
  void output(int y){ ... }
};
0600デフォルトの名無しさんNGNG
>>598
ミニプログラムを実際には、ここまでしても無意味でしょう。
>>596みたいな書き方で十分と思うわけで。
0601デフォルトの名無しさんNGNG
>>599の方がいいか・・・
0602デフォルトの名無しさんNGNG
JavaとかOOを強要する言語でミニプログラムを
書く場合はこんな感じ>>599でよろしいか?OOな方?
OO初心者はこんなことで真剣に悩むのです。
OOな方の見解を求む。
0603599NGNG
>>602
言語による。だいたいこんな感じ。
0604602NGNG
>>509-602
のうち
>>597>>599が別の方です。
0605デフォルトの名無しさんNGNG
>>603
599さん、ありがとうございます。
これで眠れます。
0606デフォルトの名無しさんNGNG
     _____
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (6      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < 正直、もう寝なさい
|| | | |  \ ┃  ┃/    \________
| || | |    ̄  ̄|
0607599NGNG
>>605
JAVAはメソッド全部に static を付けないといけない。変数にも。
0608デフォルトの名無しさんNGNG
OOPでなくては、と思うのは、
幼児期の寂しい思いを引きずっていることに原因がある。
始めのうちは、何でもできるグルーヴに酔っていて解らないが。
やがてOOPでなくてもできるようになる。
0609599NGNG
>>605
607に書いたことは誤解を与える可能性があるので無視してください。
0610デフォルトの名無しさんNGNG
くだらないmain書いてると、プログラム的にどうかより、
OO的にどうかの方が重要な原理主義者だと思われますよ。
ただのネタだと思うけど。
0611オブジェクト指向の真実NGNG
オブジェクト指向とは、
変数と関数の位置を、
形式的にひっくり返すだけのこと。

y = function(x);
↓
y = x.function();

printf("Hello world.\n");
↓
"Hello world.\n".printf();
0612デフォルトの名無しさんNGNG
a = add(b, c);
↓
a = b.add(c);
↓
a = b + c;
0613デフォルトの名無しさんNGNG
つまりオブジェクト指向であるかどうかは、
単に形式上の問題に過ぎない。
0614デフォルトの名無しさんNGNG
でも、add(b,c)形式のままで継承とかクラスとかやられたら
非常にわかりにくいだろうなあ・・・
0615デフォルトの名無しさんNGNG
>>598>>610
おいおい馬鹿馬鹿しくも、くだらなくも、ないぞ。
それがオブジェクト指向だ。

この場合、プログラムが小さ過ぎて、
ありがたみがわからないが、
(だからそこまでする必要はないが)
プログラムによっては、
そのようにコーディングしておくことで、
保守、改良、拡張に威力を発揮する。
0616デフォルトの名無しさんNGNG
>>613
単に形式上の問題というが、それが大問題なのだよ。
どのような形式でコーディングするか、
それによって生産性が大きく違ってくる。

なぜならプログラムは人間が書くものだからだ。
単なる形式と言うならば、それは構造化プログラミングとて同じこと。
0617デフォルトの名無しさんNGNG
それは表面しか見ていないからだと思われ。
0618デフォルトの名無しさんNGNG
617>613
0619デフォルトの名無しさんNGNG
>>611
CLOSのようにメッセージパッシングでないオブジェクト指向システムもある。
CLOSでは (gf obj1 obj2 ...) と書くと、すべての引数のクラスによって
gfという名のメソッドの中から当てはまるものが選ばれる。最初だけが
特別ということはない。
0620デフォルトの名無しさんNGNG
オブジェクト指向において継承は重要じゃないし、特に設計段階では重視
しないほうが良い。インターフェースが重要。(実装の)継承は、設計を詳細
化していく過程で行われる一種の最適化だと思った方が良い。

昔はOOの利点として継承を強調することもあったが、今ではホワイトボックス
再利用の弊害が分かっているので、継承にはむしろ慎重になるのが常識だろう。
0621デフォルトの名無しさんNGNG
何、突然出て来て、一般論書いて喜んでんだよう>>620

OOでは継承は重要でない。
OOPでは、ステップの削減は重要だから、OOに関係無く継承は重要。

位のネットで言われてないこと書いたらどうだ?
0622デフォルトの名無しさんNGNG
私は、学んだが、
仕事では使う機会がない。ただ、

ラッパークラス却下
0623デフォルトの名無しさんNGNG
>>621
OOの話ですぐ「継承で悩む」とかいう厨房ばっかりだから。
ステップってLyeeの話か?(藁
0624デフォルトの名無しさんNGNG
継承で悩むなんて聞いたこと無いぞ。
継承しまくって行き詰まる、という話なら聞いたことあるが。
0625デフォルトの名無しさんNGNG
きたないやつだな>>623

OOとOOPと別けてるだろ。
ステップが減るというメリットが分からないやつは学生。
0626623NGNG
>>625
最適化としてはいいと思うよ。
設計から継承をあまり考えるとはまる。
0627デフォルトの名無しさんNGNG
あ、623てOOPのPが何かわかってないんだろ。
0628デフォルトの名無しさんNGNG
>>620
継承がホワイトボックスになるのは assertion を書かないから。
0629デフォルトの名無しさんNGNG
意味ワカラン。
0630デフォルトの名無しさんNGNG
>>629 どこが?
0631デフォルトの名無しさんNGNG
assertionを書くと、継承がブラックボックスになるという所。
0632デフォルトの名無しさんNGNG
>>631
assertion が言語に実装されていればってこと。
実装されていなくてもコメントに書いておけば継承するときの指針になる。
0633sageNGNG
たったの一、二行なのに突っ込みどころは多いな
0634デフォルトの名無しさんNGNG
>>632
あぁ、contractの話ね。
0635デフォルトの名無しさんNGNG
>>633 どういうところ?
0636デフォルトの名無しさんNGNG
>>634 そう、そう。
0637デフォルトの名無しさんNGNG
>>620
そういえば、「ホワイトボックス再利用」ってどういう意味なんでしょ?
なんとなーく、分かるけど。
質問しようと思っていて、忘れてた。
0638sageNGNG
>>634
了解した。

継承はともかく、予定されていない再利用は例外なく破綻するな。
0639デフォルトの名無しさんNGNG
>>637
インターフェースを介して(見えるものが制限された状態で)
部品を再利用しようとするブラックボックス再利用に対する
言葉で、実装のコードが丸見えの状態で、別にインターフェー
スには制約されずに再利用を行うこと。特に、子クラスが親
クラスのpublicでない変数やメソッドに直接アクセスするよ
うな再利用のやり方。
0640デフォルトの名無しさんNGNG
オブジェクト指向プログラミングは不滅です。
0641デフォルトの名無しさんNGNG
>>1
オブジェクト指向はインチキじゃない!
理解できない人がそう思ってるだけ。
0642デフォルトの名無しさんNGNG
>>641
10回くらい同じ台詞を聞いたが、みんなあんたか?
0643sageNGNG
>>642
そんなわけないだろ!
0644643NGNG
sage 書くとこ間違えた。
0645デフォルトの名無しさんNGNG
>>628
まあ、ある程度主旨はわかるが、
たとえあるclassがassertionでいろいろ教えてくれたとしても
継承したclassがassertionで宣言されていない性質を利用できないような仕組みがないと
結局white boxになるのでは?
0646デフォルトの名無しさんNGNG
>>645
「宣言されている性質」じゃないの?
0647デフォルトの名無しさんNGNG
勘違いした。「宣言されていない性質」であってるね。
0648デフォルトの名無しさんNGNG
再利用のしやすさ。
コピペ >= 関数 > クラス
0649デフォルトの名無しさんNGNG
派生クラスに対してすら、情報隠蔽
(デフォルトでメンバーの属性がprivate)しようとするのはやりすぎ。
デフォルトでprotectedにすべき。と思うのは俺だけ?
あとメンバー変数にread-only属性が欲しい。

インスタンスを操作するだけの場合と
クラスを派生させる場合とでは、明らかに
プログラミングにおける次元が違うというか、フェーズが違うというか。
それを同列に扱ってるように感じる>デフォでprivate
0650628NGNG
>>645
>継承したclassがassertionで宣言されていない性質を利用できないような仕組みがないと
>結局white boxになるのでは?
そういう仕組みがある言語もある。
0651628NGNG
>>649
private の代わりに assertion があればもっといい。
0652645NGNG
>>650
例えば、ある配列型のインスタンス変数arrayについて
assertionでは a[i] <= a[i+1]としか表明していないけど
実装ではa[i+1] = a[i] + 1になっている場合を想定して、
subclassで実装したメソッドがa[i+1]=a[i]+1を前提にしている
というような場合も検出できるってこと?
0653デフォルトの名無しさんNGNG
>>649
assertionは良く知らんが、C++などでデフォルトprivateなのは
正しいと思う。よほどの決心をしない限り、子クラスであっても
インスタンスを組み合わせる場合と同じく「他人」として扱う
べきだ。

protectedはfriendと同じく、最適化のためにインターフェースを
緩める(そのぶん変更には弱くなる)仕組みと考えるべきだ。
0654デフォルトの名無しさんNGNG
ここのスレの大半がトンデモなんだけど
ネタスレなんだよね?
0655628NGNG
>>645
コード希望。きいてることが よくわからない。
0656628NGNG
>>652
参考にしてください。
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
>>654
本気です。
0658デフォルトの名無しさんNGNG
VCでWinプログラム作った。
Javaでアプレットも作った。
だが未だにオブジェクト指向がわからん。
色んな奴が色んなことを言う。
俺のソース見てもOOじゃないと言われる。
でもちゃんと動くぞ。
0659デフォルトの名無しさんNGNG
みなさんUML使ってますか?
UMLを使ってみれば、自分が本当にOOを理解してるのかわかると思いますよ

OOPを実践してる人なら、UMLはすぐにつかえますよね

この前仕事で、VC++のコードを読んだのですが
virtualが一個もありませんでした(笑)
そして、if/eles/if/else/・・・めまいがします
OOがわかってないけど、C++なんて例は結構ありますよ

関数が、処理のモジュール化なら
OOは設計のモジュール化でしょうか?

OOを簡単に短期間でマスターするのにうってつけの方法は、
JavaのライブラリーをC++に移植する事です。
そうすれば、JAVAの理解がかなり深まりますし、
C++でOOPもできるようになるのでは?

がんばってください
0660デフォルトの名無しさんNGNG
>JavaのライブラリーをC++に移植する事です。
アホなこと抜かすな
0661デフォルトの名無しさんNGNG
>>660
JavaのライブラリってOO的には駄目なのか?
つうか、現存するOO的に良いライブラリってなんだろ。
0662デフォルトの名無しさんNGNG
>>661
Javaのライブラリが駄目か良いかじゃなくて 660は
Javaのライブラリーを C++に移植をしても OOPできるように
ならないっていいたいんじゃないの?
0663デフォルトの名無しさんNGNG
>>659
659に一票。Javaのソース読むだけでも随分理解は深まると思う。
0664デフォルトの名無しさんNGNG
>>663
同意。
ただ、C++に直すには、GCライブラリを併用しなきゃ無理だね。
0665デフォルトの名無しさんNGNG
UMLなんてお絵描きはどーでもいいし、
Java的に良いライブラリと
C++的に良いライブラリってのは別だし
Smalltalk的に良いライブラリってのもまた別だろ。
0666デフォルトの名無しさんNGNG
>>665
んな細かいこと言ってたら、
初心者は一歩も前に進めないよ。

OO初心者にはとりあえずOOどんなものか、
百聞は一見に如かずで、
Java(メジャーなC/C++に近いJavaがいい)
のソースを読んだ方がいい。

大体、俺もそうだったけど、具体的なコードも無しに
抽象的な理屈ばかり聞かされても、それじゃあ
"Hello world"はどうすりゃいいのか、それすらわからなかったよ。
(見てみりゃ「なんだこりゃ。こんなんでいいのか?」だった)

その方が、小うるさい偏屈どもの見解バラバラの議論を
聞かされるより、初心者には混乱が無い分ずっといい。
細かいことはそれからだよ。
0667 NGNG
まぁ、たいしたこともない既存の考え方にちょいと小難しい名前をつけて、
なんか新しい発見をしたように見せかけた(見えた)って言う面では詐欺師だな。
0668デフォルトの名無しさんNGNG
>>667
それならオブジェクト思考を否定しなくてもいいんじゃないかな。
0669659NGNG
>ただ、C++に直すには、GCライブラリを併用しなきゃ無理だね。
え、そうですか?
具体的にクラスを挙げてもらえるとわかりやすいのですが

もちろんdeleteは自分で書かなきゃいけないですけど

私はJAVAをやってからC++やったので
virtualの意味もわかりましたが、
C++から始めた人が、オブジェクト指向をどうやって理解してるのかが
かなり疑問です。
とりあえず、C++は世の中から早く消えるべきですね(笑)
0670デフォルトの名無しさんNGNG
>>659
ていうかオブジェクト指向はC++の用意してる道具のひとつ
に過ぎないんだが... 標準C++知らないんだろ。
generic programmingは知ってるかい?
STLはJavaのライブラリが作られたのと同時期に別の方針で
作られたんだが。
0671670NGNG
正確にはSTLを含むC++標準ライブラリね
プラットフォーム依存の部分が標準化されなかったのは問題ではある
0672デフォルトの名無しさんNGNG
Javaのコンテナクラスって、どうしても、ダウンキャストしなきゃ
ならなくなるだろ。
静的型付けの言語ならSTLのアプローチが正解。
0673デフォルトの名無しさんNGNG
templateをつかった genericはインスタンス化するまで型チェックできないので
parameterized classをつかった genericが正解。
0674デフォルトの名無しさんNGNG
名スレの予感。
0675デフォルトの名無しさんNGNG
>>673
別に、インスタンス化したときに型チェックが出来れば、それでいいんでは?
0676デフォルトの名無しさんNGNG
>>675
それではinstanceが型的に正しい事がわかるだけで、
template自体が型的に正しいかどうかはわからない。
libraryで使うにはダメダメでしょう。
0677デフォルトの名無しさんNGNG
OO信者に限って全然OOを使いこなしていない説に一票。
小難しい用語を振り回せば気分はスペシャリスト?
アンチはアンチで、OO自体糞といっているのか、今あるOOPLが不満
なのか、単に信者がうざいのか不明。
どーにかしてくれ。
0678デフォルトの名無しさんNGNG
みんなでlispやれ
0679デフォルトの名無しさんNGNG
>>676
>template自体が型的に正しいかどうかはわからない。
>libraryで使うにはダメダメでしょう。

「型的に正しい」とはどういう意味? どんな型でも「正しい」
のがテンプレートですが何か? 適切な演算子/インターフェイス
さえ存在する限り適用できる。
0680デフォルトの名無しさんNGNG
>>678がいいこと言った!
0681673NGNG
あれからいろいろ考えた結果
673の主張を取り下げます。
お騒がせしてすみません。
0682デフォルトの名無しさんNGNG
>>677
>OO信者に限って全然OOを使いこなしていない説に一票。
>小難しい用語を振り回せば気分はスペシャリスト?
激しく同意。
あ〜もう信者がウザイ、マジでしね。
おかげでおれはもうすっかりアンチ Lisp でもやるかな、もう。
OO は本質じゃないところで効率が落ちる。
0683横槍くんNGNG
LispってOOだったのか
0684デフォルトの名無しさんNGNG
プログラマの教養言語>683
0685デフォルトの名無しさんNGNG
>>683
LispにはCLOSという名前のOO機能がある。
0686デフォルトの名無しさんNGNG
C++が完全にオブジェクト指向かは疑問。
0687デフォルトの名無しさんNGNG
>>686
だからテンプレートとかオブジェクト指向と関係ないんだって。
オブジェクト指向「だけ」サポートすればいい言語とそうでない
言語の違いだよ
0688デフォルトの名無しさんNGNG
完全なオブジェクト指向言語は駄目。
混ぜて書けるC++が正解。
0689デフォルトの名無しさんNGNG
>>685
CLOS以外にもLOOPSとかFlavorとかのOO拡張があるよね。
で、それらはオブジェクト指向の歴史にもかなり影響を与えているわけで。
0690デフォルトの名無しさんNGNG
>>688
アホ発見。
0691デフォルトの名無しさんNGNG
オブジェクト指向かどうかで言語を評価するなんて
ダサダサにもほどがあるよ。
0692デフォルトの名無しさんNGNG
>>691
いや、それも重要な評価要素ではあるんじゃない?
オブジェクト指向使わない人にはあまり関係ないけど。
0693デフォルトの名無しさんNGNG
>>タイトル

オブジェクト指向ー詐欺師の時代の終焉。

あまりにもC++に特化して話してない?
0694デフォルトの名無しさんNGNG
ネタスレだからいいんだよ
0695691NGNG
>>692
っていうか、プログラミング言語ってのは
いろんな概念を組み合わせて一つのモデルと表現を提示するわけで、
どんな概念を実装しているかみたいなカタログスペックよりは、
全体として、それぞれの概念がうまく継がって組織化されているかが
言語が実装している概念に関して評価するためのポイントになると思う。

っていうか、オブジェクト指向という構造だけを捉えて
良い悪いも何もないと思うのだが。
0696デフォルトの名無しさんNGNG
>っていうか、オブジェクト指向という構造だけを捉えて
>良い悪いも何もないと思うのだが。
これは言語中心の視点でのこと?
オブジェクト指向というモデルが有用かそうでないかはいえると思うが。
0697デフォルトの名無しさんNGNG
全部クラスで組め!つう言語は駄目。
OOあるいはクラスを使わない部分を組む時はマイナスでしかない。
0698デフォルトの名無しさんNGNG
>>697
全部クラスで組めないのはオブジェクト指向を分かってない証拠。
0699デフォルトの名無しさんNGNG
>>681
>templateはインスタンス化するまで型チェックできない
というのは違ってるけど
取り下げなくてもいいんじゃないかな。
templateはインスタンス化するまでコンパイルエラーを検出できないし。
0700デフォルトの名無しさんNGNG
>Javaのコンテナクラスって、どうしても、ダウンキャストしなきゃ
>ならなくなるだろ。
これは問題ですよね?
Javaでは委譲させる方針なのではないでしょうか?
例えばStackなら
class NewStack{
private stack;
void push(NewObject obj){stack.push(obj)}
NewObject pop(){return (NewObject)stack.pop();}
}
ってな感じで・・・
私は、ダウンキャストが必要なほどの汎用的なコンテナはあまり使わないので
よくわかりませんが・・・
0701デフォルトの名無しさんNGNG
>>698
OO原理主義者発見!
0702デフォルトの名無しさんNGNG
>>701
反OO原理主義者発見!
0703デフォルトの名無しさんNGNG
>>595

>しかし、一貫して、この方法で構造化プログラミングを
>形式的にオブジェクト指向に変換しても、
>それはオブジェクト指向だろうかという話です。
>例えば
>
>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
>>703
ネタにマジレス
0705595NGNG
>>703
んじゃどーゆーふうにするの?教えて?
ネタじゃ無いです。
0706595NGNG
いつも違うとだけ言われて、
どう違うのか示さないんじゃ
OOに不信感を抱く。(ネタじゃありません)
0707デフォルトの名無しさんNGNG
>>703
お前が本当にOOを理解してるならな。
0708デフォルトの名無しさんNGNG
707=595
0709595NGNG
>>703
お前ならどう書くんだよ。マジで知りたい。
短いプログラムなんだからよ、書くのに時間はかかんねえだろが。
いらいらすんだよ。さっさと書けよ。ネタじゃねえぞ。
0710704NGNG
マジだったの?絶句。
構造化プログラミングにおけるモジュール強度の議論は知ってる?
e.g. http://hata.cc/docs/software-guide/2-1.html

595 のやり方だとせいぜい時間的・手順的強度しか持たない。
もちろんサンプルのコードがごく短いため、
それ以上の強度が必要とされないということもある。

オブジェクト指向のメソッドは、
この指標では情報的・機能的強度を持っているモジュールといえる。
0711595NGNG
>>710
いやだから本当のところどうなのさ?
あの短いプログラムをOOで書いてたらどーなるの??
0712デフォルトの名無しさんNGNG
inputクラスとfunctionクラスとoutoputクラスを作って多重継承
するんだろw
0713704NGNG
>>711
前提となっているプログラムの
input() func() output()
といった関数がオブジェクト指向プログラムのメソッド程度の
モジュール強度を有していないので、
変換するという行為自体無意味。

input/output は入出力を司るクラスに任せるだろうし、
func なんて何するか分からんメソッドはそもそも作らない。
0714デフォルトの名無しさんNGNG
>>712
俺ならそうする。(マジ)
0715デフォルトの名無しさんNGNG
なんだよ「モジュール強度」つうのは?
書いていて恥ずかしくないか?
0716704NGNG
オブジェクト指向に懐疑的なら
オブジェクト指向以前の用語を使おうと思って。
ソフトウェア工学方面でしか使われない用語だけど、
モジュール強度の考え自体はおかしくないと思うが。
0717595NGNG
>>713
>func なんて何するか分からんメソッドはそもそも作らない

言ってる事が無茶苦茶だ。
OOPLではどんな処理でもメソッドに書くしかないだろうが。
あんな簡単な小さなプログラムが
あんたには書けないということになるぞ?
0718595NGNG
もう俺的には、あんたは信用しない。>>704
抽象的なことばかり言って煙に巻こうとするだけ。
ネタでもあおりでもないよ。
0719704NGNG
>>717
名前が悪いってことだよ。
メソッドの処理・機能に適した名前を付けなきゃしょうがない。
これは OO 以前の話か。

OO 的にするなら、func() の代わりに func() が成す
機能を表したクラスを作って、そいつのメソッドを呼び出す。
0720704NGNG
>>718
前提とする概念が存在するのだからしょうがないじゃん。
プログラミングするときに、漠然として無意識的に考えていること(暗黙知)を
形式知に変えてやるのが構造化プログラミングやOOP(などの手法)の仕事の一つなんだよ。

例えばデザインパターンはその代表例。
ある程度の経験をもった人なら同じようなことを考えついているし使ってもいるが、
それをみなが共通して使える概念として形式知化したのが大きな功績。
0721595NGNG
>>719

>>598と>>599も見てくれ。どっちがいい?
それともどっちもだめか?(しつこいけどマジ。)
0722595NGNG
どっちも強度はあるとおもうんだが。
つうか全然一連の文脈の中で読んでないだろ>>704
0723デフォルトの名無しさんNGNG
>>720
そして木の車輪を押し付けてくる。と。
0724704NGNG
>>721
OOPL の形式的には両方正しいよ。
コードの抽象度が高いから何ともいえない。

C++ で例を挙げれば、
input が scanf を呼んで得た値をメンバ変数にセットするなら
余り行儀がいいとは思わない。
俺ならデータ入出力用のクラスを作るという程度なので、
(テキストから読むか、DB から読むか、あるいはデータの形式が変わるかも知れないので)
それが悪いとはいえないが。
0725595NGNG
サンクス>>704
0726704NGNG
>>723
使わなくても何ら困らないなら
使わなくていいものなんだろう。

俺は Java 使ってるから OO 使わないと困る。
0727デフォルトの名無しさんNGNG
追加
木の車輪を押し付けてきて、
使わないと「ロートル、頭が固い」とレッテル貼りする。
07281/3NGNG
///////////////////////////////////////
// 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/3NGNG
///////////////////////////////////////
// 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/3NGNG
///////////////////////////////////////
// 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-730NGNG
先生! Bridgeパターン使ってみました!
0732728-730NGNG
先生! Interfaceのdelete忘れてました。逝ってきます。
0733先生NGNG
OOは生産性が落ちるというのが良くわかりましたか?
0734728-730NGNG
先生! とてもよくわかりました!
デモOOスキヨ
0735デフォルトの名無しさんNGNG
OOを理解できない人達のあがきって、ホントに哀しいね。
本人は「理解して批判してるつもり」なのに、まわりから見ると
ただの「ついていけない人間のアガキ」。
0736デフォルトの名無しさんNGNG
>>735
OOは役立たずの糞。猿プログラマのオナニー。
0737デフォルトの名無しさんNGNG
>>736
あー、はいはい。努力したのに理解できなかったのね。
可哀想に。

消えろ。
0738デフォルトの名無しさんNGNG
理解してるつもりの737であった。
0739デフォルトの名無しさんNGNG
OO信者は小うるさくてかなわん。
うざすぎ。黙ってオナニーしてろ。
オナニーの仕方を押し付けるな。
0740デフォルトの名無しさんNGNG
OOを理解してるという奴が10人いれば
10人とも違うことを言うじゃねえか。
いい加減それがオブジェクト指向の
正体だと悟りやがれ。間抜け。
0741デフォルトの名無しさんNGNG
つーか、735見たいなやつ、ウチの会社にも多いけど
一番理解してなかったりするんだよね。
大体バグだしてトラブル起こして、ついでに人間関係にまでトラブル起こす。
もう最悪
0742デフォルトの名無しさんNGNG
今どきオブジェクト指向の利点を疑う人間がいるということがどうしても信じ
られなくてスレを読み返してみたんだが、反OO派は結局「データ抽象」を持ち
出されるたびに黙り込んで答えず、しばらくしてまた中身のない批判を繰り返
しているだけに見える。

・反OO派はデータ抽象の利点を認めないのか?
・認めるなら、>>351 みたいなコードを自分で毎回書くのか?
・それくらいならC++やJavaを使った方が良いということがわからないのか?
0743デフォルトの名無しさんNGNG
>>742
妄想君。
OO原理主義は生産性下がるから駄目だという簡単な話。
0744デフォルトの名無しさんNGNG
>>742
結局、今自分がいる環境によりけりな気がする。
OO を取り入れている職場かそうでないか。
使ってなくても仕事ができているなら
わざわざ勉強してまで使う気がしないのかも。
特に自分ひとり頑張っても職場全体で使われなきゃだめなことだし。
0745デフォルトの名無しさんNGNG
>>743
そうやって話をはぐらかしてばかりいると「分かっていない」と思われても仕
方がない。
0746デフォルトの名無しさんNGNG
なぜ >>742 のような単純な質問に答えられないんでしょーね〜
0747デフォルトの名無しさんNGNG
>>745
はぐらかすって何が?
抽象データ型がどうしたって?
0748デフォルトの名無しさんNGNG
>>745
分かってるわかってないとかじゃなくて、OOは精神病患者を呼び寄せる何かがあるから厄介なんだよ。
黙って使ってりゃいいんだ。
0749デフォルトの名無しさんNGNG
>>746
妄想だと言ってるだろ。VOKE!
0750デフォルトの名無しさんNGNG
知識振り回しても馬鹿にされるだけ。
それが判らないキティーが集まるのがOO。
0751デフォルトの名無しさんNGNG
生産性が下がる下がるとオウム返しのようにいっているが、
その生産性って一体何?
コードを書く速さ?
設計から保守までを含めたもの?
0752デフォルトの名無しさんNGNG
クラスを継承するよりはクラスを修正した方が早いというのは事実。
0753デフォルトの名無しさんNGNG
ああ、やはり反OO派は過去ログも読まず、OOと抽象データ型の関係も理解せず、
ただ「OOはダメだ」と繰り返していればOOが自分の前から消えてくれると信じ
て「ダチョウ的対応」をしているのにすぎないのか…

>>742 の3つの質問に答えることさえ出来ないのか?
0754デフォルトの名無しさんNGNG
>>751
全部
0755デフォルトの名無しさんNGNG
抽象データー型馬鹿はもう寝ろや。
クラスとOOを混同してるし、メソッドをゲッターとセッターしか
思いつかないらしいな。
0756デフォルトの名無しさんNGNG
>>753
ムダだよ。やつら反OO派は「妄想」「信者」と繰り返すばかりで
中身の議論なんかしようとしない。まあ仕様と思ってもできないん
だろうけどな。
0757デフォルトの名無しさんNGNG
>>752
人の迷惑、考えたことある?
0758デフォルトの名無しさんNGNG
>>755
はぐらかすのはもう良いからさっさと質問に答えてくれないかな?
0759デフォルトの名無しさんNGNG
>>757
むやみに継承するほうが迷惑。
0760デフォルトの名無しさんNGNG
反OO派の中には、OO自体は否定しないが、OO使う人間が嫌いなヤツもいます。
0761デフォルトの名無しさんNGNG
>>755
>>351にはgetterもsetterも出てこないが?
ホントにわかってんの?(w
0762デフォルトの名無しさんNGNG
>>760
そういう人にこそ >>742 の答を聞いてみたいもんだ。
0763デフォルトの名無しさんNGNG
>・反OO派はデータ抽象の利点を認めないのか?
 みとめるよ、よく使う
>・認めるなら、>>351 みたいなコードを自分で毎回書くのか?
 かかない。
>・それくらいならC++やJavaを使った方が良いということがわからないのか?
 意味不明
0764デフォルトの名無しさんNGNG
>>762
禿動
0765デフォルトの名無しさんNGNG
>>763
じゃ >>333みたいなコードは書く?
0766デフォルトの名無しさんNGNG
>>755 「データー」ってゆーな、ジジイ!
0767デフォルトの名無しさんNGNG
かかんよ、C++使う。でもOOキチガイクソヤロウは嫌い。
0768デフォルトの名無しさんNGNG
謎は全て解けた!
みんなオブジェクト指向なんて普通に使ってるんだよ。
ここは当たり前のことをわざわざ力説するやつを馬鹿にするスレなんだよ。
1+1 は 2 なんだよって幼稚園生以外に力説してたら馬鹿だしね。
0769デフォルトの名無しさんNGNG
>>767
なんだ、「OO使う人間が嫌い」な側から見ればあんたも
嫌われるんじゃん。
0770デフォルトの名無しさんNGNG
>>768
つまりあなたも(気が付かないうちに)OO使ってました、と。
0771デフォルトの名無しさんNGNG
OOキチガイよりは、シッタカOO使いの方が迷惑だな。
0772デフォルトの名無しさんNGNG
>>770
その挙句、
OO使うかどうかでその人が嫌いかどうかを決めてしまうぐらい
OOに頼りっきりの人間になっていました、と。
0773デフォルトの名無しさんNGNG
>>770
情けない話だね。
自分が罵っていたのが自分自身だったことにやっと気づいた768(藁
0774デフォルトの名無しさんNGNG
>>771
で、君は他人がシッタカかどうかを判断できるほど
ちゃんとした知識と技術があると思ってるんだね、シッタカ君?
0775デフォルトの名無しさんNGNG
否定はともかくこのスレでマジレスしてる肯定派は芯だ方がいい
0776デフォルトの名無しさんNGNG
>>772
>OOに頼りっきりの人間になっていました、と。
そんなこたぁねえよ、世の中は広い、関数型言語とか論理型言語とかやってみな。
OOは万能じゃねぇ。
0777デフォルトの名無しさんNGNG
>>775
プププププ‥ 何、涙目になってんだYO!
0778デフォルトの名無しさんNGNG
>>776
手続き型・関数型・論理型というパラダイムとOOかどうかは直行する。
オブジェクト指向関数型言語(Ocaml)やオブジェクト指向論理型言語
(ESP)もあるよ。
0779デフォルトの名無しさんNGNG
>>776
>OOは万能じゃねぇよ。
の間違い
0780デフォルトの名無しさんNGNG
>>776
ハア?
関数型言語も論理型言語もOOを取り入れてる言語は色々あるが、
それが何か?
0781778NGNG
直行じゃなくて直交でした。逝ってきます。
0782デフォルトの名無しさんNGNG
>>780
しってるだけで使ったことねぇだろ(藁
0783デフォルトの名無しさんNGNG
>742
・データ抽象化が便利な時は当然そうする。
・Cと共存させるなら>>351みたいなコードを書くことはある。
・全部objectiveに書くプログラムならC++なり何なりで書く。

逆に質問。
・OO原理主義者はデータ抽象化が無用の長物になる場面があると認めないのか?
・Hello worldをいちいちクラス作って書くのか?
・それくらいならCで非OO的に書いた方が良いということがわからないのか?
0784780NGNG
>>782
そういう(OO+FPL, OO+LP)処理系を実装したことがあるのだが。
Smalltalkで。
0785デフォルトの名無しさんNGNG
>>783
>・OO原理主義者はデータ抽象化が無用の長物になる場面があると認めないのか?
認めるとも。抽象データ型もどこかで具体的なデータ表現に落すんだから。

>・Hello worldをいちいちクラス作って書くのか?
それは言語による。「プログラムはクラス(とメソッド)。関数や手続きなん
てものはない」と割りきった言語(メソッドと関数を両方持つよりはまし)な
らクラス作る。C++ならmainだけで書くね。

>・それくらいならCで非OO的に書いた方が良いということがわからないのか?
「データ抽象化(やOO)を使わない局面がある」のと「OOを否定する」のは全
く別の話。「OOを全否定する」のは「OOが有用な局面など存在しない」と言っ
ているのと同じなのだから。
0786785NGNG
あー、俺はOO原理主義者とは言えないようなので、答えちゃいけなかったのか
も知れん。
0787デフォルトの名無しさんNGNG
おれも、その手の実装したことあるよ。
flex bison で、
そういうのエラソーに自慢するからバカにされるんよ。
0788デフォルトの名無しさんNGNG
>>783
君はHello worldを書く時の生産性や実行効率で
言語を評価するのか(藁

それは横に置いといて、まあマジレスしてみるよ。

・データ抽象化が無用の長物になる事は、あるな。
 ただ、どんな形で再利用されるかわからないような状況では
 できるだけ抽象しておいたほうがいい、とは思うが。

・Hello worldぐらい、どっちでも構わんな。
 それにクラスを使わないOOもあるでよぉー。

・Cで非OO的なアプローチのほうが向いてる分野ってのは、確実にあるよ。
 俺、現状ではSmalltalkでデバイスドライバ書きたくないもん(藁

っていうか、ちゃんとしたプログラマなら、
どんな状況でどんな言語を使うか、それぞれの言語が
取り入れている概念を理解した上で判断するもんだろ。
俺が哂ってるのは、OOだから糞だとか、そういう主張ね。
0789デフォルトの名無しさんNGNG
>>787
flex bisonでねぇー。
そういうのエラソーに自慢するからバカにされるんよ。
0790デフォルトの名無しさんNGNG
ああ、俺的には「謎は全て解けた」なー。

「全部抽象化しろ」というのは不可能だし「OOは全部ダメ」というやつは本当
に分かってないのが明らかだ。つまり、まともなヤツはみんな「適切なところ
だけ抽象化して書く」という点で一致してる。

だいいち、必要なところだけ抽象化して書けば、ある意味それで立派なOOPに
なってるわけだからな。その道具として便利なら当然OOPLを使うだろう。

OO全否定派は論外として、OO否定派が「会社にOO原理主義者がいてウザイ」と
いうのは、「どこまで抽象化するか」で意見が食い違ってウザイ、ということ
じゃないの?

(少なくとも「いたるところ全て抽象化して書け」というようなOO原理主義者
はこのスレで見たことがない。)
0791デフォルトの名無しさんNGNG
>>790
まとめようとするなよ(藁
せっかく煽ってるのに。

「OO全部ダメ」とか「すべてメソッドで」とかの両極端が糞なのは
最初から分かりきってるだろーが。それを承知で遊ぶのがこのスレ
だろう?
0792デフォルトの名無しさんNGNG
OO原理主義者の素朴な疑問

OOPするときはクラスしか思い浮かばないけど
クラスを使わない部分があるってどういうこと?

UMLはどんなふうに書くの?

デザパタはどんなふうに使うの?

Smalltalk, JAVA, C# のような言語をどう思ってるの?
0793デフォルトの名無しさんNGNG
>>792
俺はOOマンセーな人間だがUMLによるOODには正直疑問を抱いている。
インターフェースを用いた抽象化を十分支援していないように思えるから。

UMLでクラスの属性を書いてしまうと、かなり具体的な表現を与えてしまう
ことになる。設計の初期段階でクラスの内部表現を具体的に決めてしまうの
は害があるように思える。

デザパタについては、インターフェースを用いたオブジェクトコンポジショ
ンを強調しているところが良い。インスタンス変数を直接触るようなコード
は出てこない。そういう具体的な表現は、デザパタで扱うより下位のレベル。

Smalltalk: 「何でもクラスとメッセージ」でやってみようという気概は買
うが、数式や関数の表し方が不自然になった。

Java: いろいろ細かい不満はあるが、今のところもっとも良いOO言語。

C#: Javaの焼き直し。後出しだけに優れたところもあるが、MSらしい汚らし
いところも多々ある。デフォルトnon-virtualなのは何とかしろ。
0794792NGNG
>>793
おれもUMLは嫌いだ。

>C#: デフォルトnon-virtualなのは何とかしろ。
その通り。
0795デフォルトの名無しさんNGNG
>>792
おれもかなりOO原理主義っつーかSmalltalk原理主義はいってるが...

OOPするときにはクラスよりもまずインスタンスを思い浮べるよ。
クラスはあくまでインスタンスを実装する手段って感じ。

Smalltalk: マンセーだけど、四則演算ぐらい特別扱いしてやっても...
Java: interfaceは買い。checked exceptionもイイね。
   静的型OO言語としては、かなりよい言語だと思う。
   ただ整数がオブジェクトじゃないのは萎え。
C#: boxingは買い。あと、使った事ないけどstructもいいかも。
  あとはJavaと同様。
0796デフォルトの名無しさんNGNG
>UMLでクラスの属性を書いてしまうと、かなり具体的な表現を与えてしまう
>ことになる。設計の初期段階でクラスの内部表現を具体的に決めてしまうの
>は害があるように思える。
俺は初期の段階ではクラス名だけのクラス図を書いて、
後で実装しつつクラス図を詳細化(またはその逆)してる。
最初に書くクラス図とその後に作るクラス図は必ずしも対応してない。
大抵は分割したりデザパタのためにクラスを追加したりだな。
箱書いた紙だらけになるけど、
クラス図眺めておかしいところを発見することがままあるので良しとしてる。
0797デフォルトの名無しさんNGNG
>>793
デフォルトnon-virtualは、間違いをコンパイラで拾えるから
むしろ、良い傾向だと思うが…

どちらかというと、C++でいうところのテンプレートを
サポートしなっかったのは、どうでるでしょうか?
Javaでももうすぐサポートしそうな感じ(?)なんだけど…
0798デフォルトの名無しさんNGNG
既出だが Map とかいう共通インターフェースを作っといて、
実装がハッシュか木か等は実行時に決まる、という重要な
特性がnon-virtualだと失われる。コンパイル時に実装も
一意に決まってしまう。
0799デフォルトの名無しさんNGNG
>>797
デザインパターンの多くのパターンはnonvirtualだと使えないよ。
0800792NGNG
おれは Eiffelマンセーなので多重継承派。
Design by Contract がお気に入り。
メソッドはデフォルトnon-virtualだがオーバライドすると
コンパイラが virtualにしてくれる。
0801デフォルトの名無しさんNGNG
>>800
確か、Eiffel って演算子オーバーロードできたよね。
どういう仕組み使ってるの?coerce?
0802800NGNG
>>801
prefix"+": ANY is do ... end
infix"+"(i: ANY): ANY is do ... end
0803デフォルトの名無しさんNGNG
結論:反OO派などいませんでした。いるのは、自分もOO派であることに
気づかなかった間抜けな厨房だけでした。

---------------------------終了---------------------------------
0804デフォルトの名無しさんNGNG
>>803
おいおい、決めつけるなよ。
本当にOOも抽象化も使ってないバカもきっといるって(藁
0805デフォルトの名無しさんNGNG
>>802
サンクス。が、不勉強で悪いけど読めない…
前者が単項の + で後者が加算の + なのはわかるけど、
ANY というのは文字通り何の型でも受け付けるという意味?
それとも対応したい型の数だけ定義が必要?
あるいは同じ型に対しての演算に閉じた演算子を定義可能なのかな。
静的型だと3番目か。

入門ページ見つけたけど特徴だとか総称だとか漢字が溢れててダメだ…
0806800NGNG
>>805
ちゃんと書かなくてすみません。
ANY は JAVA の Object と同じです。
0807デフォルトの名無しさんNGNG
>>797
逆に言うと、デザパタの多くのパターンの多くはoverride"しなければならない"。
または、TemplateMethodのようにoverride"すべきでない"こともある。
それをPGがはっきり意識するように、virtual/overrideキーワードがある。

とはいうものの、C#のvirtual/overrideは、Javaのfinalの裏返しみたいなものだから
どちらの方が良いというものではないかもしれない。
むしろ、virtualにする場面の方が、はるかに多いと思われるので、
上の方のclassはvirtualだらけになってしまうだろう。
しかし、この「いつも意識しなければいけない」というのが狙い。

ただまあ、気構えとかコードの見栄えとか好みの問題なので
どちらの方が良いかは、かなり賛否両論だろう。
0808デフォルトの名無しさんNGNG
>>807
virtualにしないでvirtual的な使い方をしようとしたとき、
ちゃんとエラーになるなら良いけど、C#だと、気づかずに
nonvirtualになっちゃうことはないの?
0809デフォルトの名無しさんNGNG
>>807
C#には sealedってキーワードがあったような . . .
0810807NGNG
C#とかあんま知らないのに、適当に受け答えするから
しんどくなってきたよ(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デフォルトの名無しさんNGNG
C#のメソッドについてちょっと調べたよ。

C#で新たなインスタンスメソッドを宣言するときには、
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
>>812
意味不明。構造化構文とOOは独立だがデータ抽象化とOOは密接な関連がある。
0814デフォルトの名無しさんNGNG
>>812
メチャクチャってどこがどう?
0815sageNGNG
>>814
812は荒しだよ。放置しろ。
0816デフォルトの名無しさんNGNG
int main()
{
  new 812;
  return 0;
}
0817デフォルトの名無しさんNGNG
>>813
じゃあファイル操作やってるプログラムは全部オブジェクト指向ね。
あいつの論法だけど。
IO操作も大体抽象化してるから全部オブジェクト指向ね。
0818デフォルトの名無しさんNGNG
>>816
リークしてるよ、それTT
0819デフォルトの名無しさんNGNG
メモリが812で埋め尽くされる=812勝利という意味。
0820デフォルトの名無しさんNGNG
>>818-819
別にリークしてないが?(藁
0821デフォルトの名無しさんNGNG
>>817 はアホだな〜
それだと「データ抽象化は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
>822
>俺なんか全てOOで書くし。

一体何を書くんだか。マスでもカクのか?
寝不足で頭イってるかな・・・氏んできます。
0825デフォルトの名無しさんNGNG
>>742

>・反OO派はデータ抽象の利点を認めないのか?

認める。

>・認めるなら、>>351 みたいなコードを自分で毎回書くのか?

書かない。例えば、構造体とそれを操作する関数を別個に用意するだけ。
わざわざ関数のポインタを構造体のメンバーにするのは、
見かけをC++っぽくするだけで無意味に複雑。

>・それくらいならC++やJavaを使った方が良いということがわからないのか?

わかる。だから、そんな馬鹿なことはしない。

逆にOO派に問いたい。
構造体とそれを操作する関数をクラスにまとめただけで、
それをOOPと認めるか?

俺はネット上で散々、「それはOOPではない」と言われ続けてきたぞ。
俺は今でもOOPのつもりだが。
0826デフォルトの名無しさんNGNG
>>825
オブジェクトを考えて設計/実装すればOOで、
それらのオブジェクトがソースに表現されていればOOPだ、
なぜなら書く人だけでなく読む人も関係することだから、
ってのが俺的な定義。

だから、コメントその他の付帯的条件にもよるが、
825が言ってるのはOOではあるがOOPではないと思う。
ただし、825のコードがただ単に構造体と操作関数だけでなく
コメントでもいいからそれらがオブジェクトである事が
表現されていれば、それはOOPだと思う。
0827 NGNG
>>824

すべてOOで。
現在主流な言語に純OOは存在しないので不可能。
smalltalkはそうだったかな?
0828デフォルトの名無しさんNGNG
824も意味不明だが、827も頓珍漢なこといってないか?
0829デフォルトの名無しさんNGNG
>>825
んじゃ、>>333 みたいなプログラムは書く?
0830さすらいプログラマ、旅情編NGNG
構造化もオブジェクト指向も所詮「地方の方言」と同じ事。
ただ、どちらの方言が万人に伝わりやすいか、それが問題だ。
0831新米プログラマNGNG
構造化プログラミングのときもそうだった。
本当に理解しているのならわかるはず・・。
楽したいんですよ。

HELL

って表示したいなら
誰かに作らせたいい。

そしてワシはMAINのところに書くだけ
らくらく。

一番必要なのは人間オブジェクト指向だよ。
・・・意味わかりませんか???

ならすべて一人でするんですね。
がんばってください。

わたしは楽したいので・・・

中で何をしているかわからないのは怖いが・・・
それは通常でもソースを読まないとわからないのといっしょですよね?

動きで判断するなら・・・

ただはやりのものはつかわなくても知らないと
はずかしわな・・。

ほらね無理に取り入れると時間がかかる。
頭のいいやつにクラスをつくらせ・・
わしは組み立てるほうがいい・・・・。

メニューからプログラムを呼ぶのもある意味
いっしょのことではないかな・・?

またきますので・・・

反論をまってます。「新米なのでやさしくしてください」
0832デフォルトの名無しさんNGNG
>>831
文章が微妙に変です。
0833さすらいプログラマ、旅情編NGNG
>831
この文章の本質が汲み取れない漏れは、まだまだ2ch初心者デスカ?

831の文章を見て俺が感じた事っていえば、「みんなが楽をしたらどうなるんだろう」
つーことかな。10人中10人が「俺も俺も」って言って楽したいなんて言ったら、
多分そのプロジェクトは崩壊する。の下に来る奴でそんな性根の腐った方がいらっ
しゃったら、多分放置シマス。あ、いや、831がサンデープログラマだったら別に関係
ないな。所詮趣味だし。

「楽をするため、地道に努力する」のは認めるが、「楽をするため、人に代替してもらう」
のは、お粗末スギマス。プロジェクトっていう協力プレイの意味ないじゃん(藁
「プロジェクト」と「協力」の意味をもう一度考え直してみましょう。

って、オブジェクト指向と全然関係ないな。sageだsage
0834デフォルトの名無しさんNGNG
>>833
Warning : 既に言葉遊びの域に達しています。
0835デフォルトの名無しさんNGNG
>>833
別に人を雇うのもありだと思うが。
0836デフォルトの名無しさんNGNG
>>833
ひょっとして部品化とか再利用とかいうOO信者のキーワードを引き出す
戦術? それともこれらのキーワードを知らない厨房?
0837デフォルトの名無しさんNGNG
派遣社員のインスタンスを生成っと。

deleteし忘れるなよ
0838デフォルトの名無しさんNGNG
>構造体とそれを操作する関数をクラスにまとめただけで、
>それをOOPと認めるか?
認めないですよ
ポリモーフィズムや
コード管理を含めてOOPです
0839デフォルトの名無しさんNGNG
>「C++はできますがCはできません」て人は見たことが無いっていうのが正直な感想。
C++知らないのかな?
C++ができる->Cができる
なんだから当たり前でしょ
0840デフォルトの名無しさんNGNG
>>838
なんで?
オブジェクト指向の考え方を使った(利用した)プログラミングを
すればOOPじゃないかな
付随したすべての技術をなめる必要はなし
0841デフォルトの名無しさんNGNG
>>840
それは、小さいプログラム限定での話でしょうか?
プログラムが小規模な程OOPの効果は薄れる
プログラムが大規模な程OOPの効果は大きくなる
プログラムが大規模な場合ポリモーフィズムを使うのは
当然ですよね?

もちろんif/elseが3つくらいなら
そっちの方が開発効率がいいとは思いますよ
まあ、if/elseが20個続く時は
当然ポリモーフィズム使いますよね
でもif/elseは通常増える方向で設計しますので
最初からこの部分をポリモーフィズムで書くのは当たり前だと思います
という事で、ポリモーフィズムができないとOOPじゃないですよね?
0842sageNGNG
突っ込みどころが多すぎて萎える。>>841
0843デフォルトの名無しさんNGNG
めちゃくちゃ簡単にいうと、おれはオブジェクト指向というのは
拡張できるインターフェース
をもつことだと思っている。

だから、インターフェースを持っているのが当たり前な立場から言えば、
拡張できないインターフェースはオブジェクト指向ではないし、
インターフェースが当たり前でない立場から言えば、
インターフェースの導入でオブジェクト指向と言える。
ということで OK ?
late binding を普通に書けないで O-O というのはねー。という抵抗はあるね。
0844デフォルトの名無しさんNGNG
>>841
つか、どう多態を誤解しているのか読み解こうとしたけど
それも不可能なほど謎な文章
よって逝ってよし認定
0845デフォルトの名無しさんNGNG
多態性がOOの本質とは思えない。
やっぱりデータ抽象がOOの根幹であり第一歩だろう。
0846デフォルトの名無しさんNGNG
>>841
polymorphism原理主義者ハケン。
激しく便利な機能だが、使わなければOOPとヨバンというのはどうか。
OOPLが備えるべき機能としては必須としても良いかとは思うが。

ところで >>351 のCコードはpolymorphismと認めるかね?
0847さすらいプログラマ、旅情編NGNG
>839
>C++ができる->Cができる

sorry839,CとC++は似てて非なるもの。C == C++ では無い。
0848840NGNG
>>843
インターフェースとはJavaのinterfaceのことか?
late bindingが多態のすべてじゃないだろ

OOを概念と見るか技術と見るかの違いで、もう議論の接点はない
はぁ、教科書バカとは議論するだけ無駄かな
0849デフォルトの名無しさんNGNG
>>841
OOは規模が大き過ぎると使えない。中規模に向いていると別の
信者が言ってたが。
0850デフォルトの名無しさんNGNG
漏れはCOMを知ったときOOの神髄を見たと思ったよ
みんなはいつね?
0851さすらいプログラマ、旅情編NGNG
ooを技術と見るか概念と見るかってのは難しい問題カモネ

漏れの足りない頭で考えると、ooの概念と技術って

ooA, ooD > 概念
ooP > 技術
ooPL > 別物

かな・・・間違ってるかも。すいませんでした、やっぱ俺ヴァカだ
0852デフォルトの名無しさんNGNG
OOはキャッチフレーズでしょ。
0853デフォルトの名無しさんNGNG
単なるキャッチフレーズにしては洗脳効果が強烈だな。
0854デフォルトの名無しさんNGNG
誰か結論をまとめてくれ。
0855デフォルトの名無しさんNGNG
>>850
じじいでスマソ
サザンの Smalltalk on PC98 だった
なんでもオブジェクトにできたし、
コードをトレースしていって、衝撃感じたね。
0856デフォルトの名無しさんNGNG
まとめてやる。

OOは○○だからダメ。
OOの神髄はつまりコレ。
○○するのがOOなんだな。

こんな事書いてる様ではまだ、部分的にしか理解しきってない。
とりあえず、効果の上がる場面で、適切に使っていればよい。
0857デフォルトの名無しさんNGNG
継承は第2のGOTO文ということで。
0858841NGNG
>late bindingが多態のすべてじゃないだろ
他にあるの?
OOのすべて・・の書き間違いかな?
まあOOの全てじゃないけど、一部だからできないとダメだよね

>>846
関数ポインタ使ってあれこれやるのは実行時ポリモーフィズム
だと思うよ
ただ、コードの書き方が
Java>C++>C
の順で書きやすいって事では?

ちなみにMFCでもJAVAのライブラリーでも
動的バインド使ってないのは、ないよね
そういうわけで、少なくてもOOなライブラリを作るには
ポリモーフィズムが必須ですね
ポリモーフィズムしないのに継承使ってるのもバカっぽいと思いませんか?
virtualが一個もないc++のコード書いてる人は一度Javaをどうぞ

大規模開発にOOが向かないんだ
じゃあ、どうするの?cobolですか?
0859デフォルトの名無しさんNGNG
>>858
>ポリモーフィズムしないのに継承使ってるのもバカっぽいと思いませんか?
>virtualが一個もないc++のコード書いてる人は一度Javaをどうぞ

そういう奴はjavaやっても結果は同じだと思うが?(藁
0860デフォルトの名無しさんNGNG
(゚д゚)アイタクチガ....フガググ >>858
0861デフォルトの名無しさんNGNG
>>857
多重継承のこと?それなら違うぞ。
もう一度多重継承を勉強されたし。
0862デフォルトの名無しさんNGNG
>>late bindingが多態のすべてじゃないだろ
>他にあるの?
そこだけ抜かれてもねぇ・・・
言いたいことはその後の行の方だったのに。

つまり、技術的にはそうかもしれんが、概念的にみたら
多態はis-aの関係を表すのに、より適しているだろ
多態は抽象化を考える上で自然なことだったの
late bindingは後付の副産物だよ

>ポリモーフィズムしないのに継承使ってるのもバカっぽいと思いませんか?
>virtualが一個もないc++のコード書いてる人は一度Javaをどうぞ
結局ただのJava信者でしたか。
JavaをマスターしたぐらいでOOを語らないでね(はぁと

>大規模開発にOOが向かないんだ
>じゃあ、どうするの?cobolですか
世の真実は、システムが複雑になると大規模なんじゃなくて
動くお金が大きいと大規模なんだなぁこれが。
その意味ではCOBOL正解。ABAPなんてのもあるぞ(藁
0863デフォルトの名無しさんNGNG
どうでも良いが、俺に関数ポインタを返せ。
0864デフォルトの名無しさんNGNG
Javaですらマスターしたとはおもえん。

こんなやつでもOOできる気になれるJavaはたしかにC++よりすごいかモナ(藁
0865デフォルトの名無しさんNGNG
継承にしろ、多態にしろ、
使う必要が無い場面で無理やり使わんでもいいだろう。
小さいプログラムなら使わないことが多い。
逆もまた然り。
0866841NGNG
>多態はis-aの関係を表すのに、より適しているだろ
多態を何と比べてるの?
俺はif/elseと比べたんだけど・・・
if/elseと比べるのは技術面の話なのかな?
かなり意味わかんないけど、技術面ってなに?
普通比較するのは、現実とじゃない?

>多態は抽象化を考える上で自然なことだったの
プログラミングの話をしてるのかな?
それとも、知識の定式化とかの話をしてるの?

JavaとC++の違いも,オブジェクト指向という点では特に違いないと思うけど
どこか違う?
まさか,多重継承って言わないよね(w
UML知ってればアグリゲーションも理解できるよね
多重継承クラスを多重継承したら、どう転んでも痛いだけ

>JavaをマスターしたぐらいでOOを語らないでね(はぁと
一応C++とschemeくらいは・・・
あと何をマスターしましょうか?

>動くお金が大きいと大規模なんだなぁこれが
間違った解釈ですよ(はぁと
0867デフォルトの名無しさんNGNG
841はたたり神になりました
0868デフォルトの名無しさんNGNG
触らぬ髪に祟りなし!
0869デフォルトの名無しさんNGNG
・多態が強力な一般化・抽象化の手段である。
・多態は静的な型チェックと動的なlate bindingを両立させる。
・late bindingによって実装を隠蔽したままオブジェクト間の組合わせを変え
 る自由度が得られる。
・late bindingによって「インターフェースのみを決めた」プログラミング、
 たとえばさまざまなデザインパターンが可能となる。

…のは確かなんだが、肝心なのは抽象化であって多態やlate bindingはその
手段じゃないかなあ。
0870デフォルトの名無しさんNGNG
(実装の)継承の害については概出。>>620 参照。
0871デフォルトの名無しさんNGNG
>>869
なるほど
インターフェースが抽象化()
で,実装がlate binding...なわけね
でも、他に選択肢ってあるの?
866説では当然の結果みたいに書いてあるけど

ところで抽象化==プログラミング
っていう意味でいいのかな?
アカデミックな本にはそう書いてあると思うけど・・・
0872デフォルトの名無しさんNGNG
==ってなに?
0873デフォルトの名無しさんNGNG
>>896
ごちゃごちゃと、もーいいから、おまえは早く客の要望と実装をbindingしてみろよ
机上の理論を受け売りしていた自分が若かったと気づくからさ
0874 NGNG
>>872

比較演算子?
現在イテレータにメロメロっす。
0875デフォルトの名無しさんNGNG
>>866>一応C++とschemeくらいは・・・
惜しい!せめて、あとSmalltalkはやってみたほうが良い。

>>869自身が、結構、よく分かってる人みたいなので、
わざわざ、こちらが指摘することでもないが、
これらの意見は、一見、OOの利点に聞こえるが(実際、利点だが…)
この中にある『「インターフェースのみを決めた」プログラミング』が問題。
OOの利点を生かすためには、<インターフェースのみを先に設計する>という
前提が必要になるのだが、実際にはこの部分の実践が難しい。
0876デフォルトの名無しさんNGNG
>873
神?
0877デフォルトの名無しさんNGNG
とにかく偉そうにする奴が多いよな
0878新米プログラマNGNG
おそろしい・・
いっぱいかいてある・・・。
なにからはなして良いかわからん・・。

オブジェクト指向の恩恵は大きいプロジェクトで
をしてみないと実感できませんよ・・。
たぶん・・

今わしはCBLをつかっているので・・。
つかえません。

でもオブジェクト指向の問題点を一つ・・・。

なんでもできるようになるので・・・。
収集がつかなくなるぞ・・。
システムを組むなら・・・
最小限にしましょう。
ってここにいる人らはわかってますから
いらぬおせわか・・(すんまへん)

始めの設計がよかったらそれだけでOKですよ。
あと・・・

注意:ぷろぐらま=おぶじぇくと

おぶじぇくとにぷろぐらむをたのむのはいいが
とちゅうでの変更はやめてください・・。

ぜんぜんちがうめっそどは発行できません。
ことなるおぶじぇくとにたのんでください。

ところで・・・オブジェクト指向の本当の意味を理解している人
おねがいです。
「ぞうりむしでもわかる説明」をしてくれませんか?

・・・クラス
・・・カプセル化
・・・継承(多重)
・・・・
0879デフォルトの名無しさんNGNG
>システムを組むなら・・・最小限にしましょう。

ここから、理解しなおした方が良いZO!
昔は、コボルという言語でユーザの仕様に沿ってシステム開発したのさ。
それで、ユーザが違っても、処理は一緒なので、
ルーチンに処理を全て入れようとなった。肥大化で×。
次にコードジェネレータ。仕様書ツールで設定すると、ガバットコボルコードを吐き出す。
ジェネレートコードは小さくはないし、読み難くて手直し大変。
だけど、このころは、1Kステップいくらの時代だったからこれでOKだった。
0880デフォルトの名無しさんNGNG
次に、C言語で、ルーチンに全ての処理を入れるんでなく、
小さい関数の組み合わせによって、処理を変えようという時代になった。

これは、コボルよりは良かったが、長くは続かなかった。
このころに、ウィンドウシステムが主流になり、
ウィンドウシステムがやたらと多くのAPI(C言語関数みたいなもん)を持ってて、
それ専用のエンジニアが必要になった。
0881デフォルトの名無しさんNGNG
で、GUIツールとして、VBがあらわれた。
画面はVB、内部処理はC言語によるDLL関数時代になった。

しかし、GUIツールの能力を超えて処理するには大変、
関数が一杯あったら管理が大変、というところに、Delphiが現れた。

Delphiだと、GUIの処理変更も差分だけ定義、
内部処理も1クラスに閉じ込めて散り散りにならない、
1言語でGUIと内部処理を記述し、混ぜることも出来るようになった。(で第一章完了)
0882デフォルトの名無しさんNGNG
補足
・Delphiは、クラスライブラリ系GUIツールね。
差分プログラミングでコードが最小であり、関数と違い振る舞いを変更できる
・第二章続きは他の人書いてNE!反論もNE!
0883デフォルトの名無しさんNGNG
おもしろくない。

それにアフガンの何の罪もない人々の命と生活を守ろうという
気持ちがみじんも感じられない。

よって
------------終了-------------------------------
0884新米プログラマNGNG
>ここから、理解しなおした方が良いZO!
しくしく・・。
意味がわからないよ。

VBでいったら

ぺたぺたはるだけで
その機能を実現できるから・・。
なんでもかんでも一つのプログラムでしないほうがいい
って意味なんだけど・・・・。

説明不足でごめんなさい・・。
勘違いしてたらもっとごめなんなさい・・

勉強してきます。では
0885デフォルトの名無しさんNGNG
>>883
あんたが一番面白い(w
終了せずにあんたが続けてくれ。ぜひ
0886デフォルトの名無しさんNGNG
>>878 >>883
怪文書?
0887デフォルトの名無しさんNGNG
システム最小限って、無意味な機能拡張に備えた多態とか多用するな
つーことじゃねーの?
0888デフォルトの名無しさんNGNG
YAGNI ですな。
0889デフォルトの名無しさんNGNG
900目前上げ
0890デフォルトの名無しさんNGNG
OOは面白いパズルだった
でも、そろそろ新しいパズルが欲しい
0891デフォルトの名無しさんNGNG
OOになって、デザインパターンが出てきて、なるほど頭いい人は
こうやってコーディングするのだなあって思った。抽象化された
コアを作り込んで、具象化はなるべく後にする。そうすることで
問題の本質が見えてくるし、コードの再利用も進む。

頭いい人の手法を「再利用」できるようになったことは、OOによ
る恩恵だなあ。構造化プログラミングの時代には、データ構造+
アルゴリズム=プログラムだったから、ついついすべてのコード
がそのプログラムで解決したい具体的な問題に「べったり」なも
のになりがちだった。似たような、しかし、ちょっとずつ違うコー
ドを大量に書いた。いつもデバッグばかりしていた。それがOOに
なって、デバッグの済んだコードを再利用するケースが増えてき
た。デザインパターンまで来て、ようやく得られた恩恵だけど。

デザインパターンを知らないでいると、OOなんてちょっと気の利
いた(しかし、けっこう面倒な)モジュール化技術にしか見えな
いだろうな。
0892デフォルトの名無しさんNGNG
>>891
はあ・・・・。
0893デフォルトの名無しさんNGNG
>>891
あのなー、今みたいにソフトウエア技術の本が一杯出まわる前は
どうやってたか想像してみろや。
それぐらいの事は自分で考え出すの。
最近の若いもんは駄目だな。
本なんかに教えてもらうような権威主義のヘタレばっか。
0894デフォルトの名無しさんNGNG
>>892
ゴミレスでageるな。
0895デフォルトの名無しさんNGNG
>>893
本に教えてもらうことが権威主義なのか。知らんかったな。
0896デフォルトの名無しさんNGNG
>>891
ふぅぅぅぅぅぅぅぅ
0897デフォルトの名無しさんNGNG
>>893
想像したくないんすけど。
究極的には、プログラミングなんてしなくてすめば
それに越したことはない。
0898デフォルトの名無しさんNGNG
まぁクラスライブラリに頼ってるJavaプログラマは駄目って事だな。
アセンブリに帰るぞ
0899デフォルトの名無しさんNGNG
>>893
ユークリッドやピタゴラスから自分で考え出してたら、
楕円暗号や量子計算機まで辿り付くまでに一生終わりそうだね(w
0900デフォルトの名無しさんNGNG
>>899
同意。つーか、そんな無駄なことブッコいてるヤツはさっさと首にしろ。
「昔は何でも自分で考えた」だ? そういう不勉強なアホを雇っとく余裕
があったってことだろ。
0901デフォルトの名無しさんNGNG
>>900
今この瞬間も考え出さないといけないの、判ってる?
0902デフォルトの名無しさんNGNG
量子計算機ぃーー??
そんなもんモノになると思ってんのか?
0903デフォルトの名無しさん NGNG
もう良いよ、
俺は田舎に帰って煎餅屋継ぐ事にする。。。。
0904デフォルトの名無しさんNGNG
>>902
浦島太郎ハケーン!
0905昔の人NGNG
ごみスレ
0906デフォルトの名無しさんNGNG
これからはDNA計算機だろ。
0907デフォルトの名無しさんNGNG
その前にジョセフソンコンピューターです。
0908デフォルトの名無しさんNGNG
たんぱく質分子コンピューターってのもあったな。
0909デフォルトの名無しさんNGNG
本命は脳型コンピュータだろ。
0910デフォルトの名無しさんNGNG
>>906-909
新たな詐欺師時代の夜明けだ
0911デフォルトの名無しさんNGNG
どうでもいいけどJAVAのソースでクラスのコンストラクタをCの関数のように
使ってるソース読んだよ。
Cとの違いは関数呼ぶのにnewするってことだけ(ワラ
OOPでCのように書くとGOTO使うより悲惨なことになるな。
これを普通のOOの感覚で読むと違和感んじまくったが、
Cの関数=クラスのコンスラクタ、メンバ関数はコンストラクタで使う関数と
して読んだらすんなり読めたYO(ワラ 戻り値はpublicなメンバ変数に格納(ワラ
どうでもいい話だな。ただちょっと悲しかったので、、、sage
0912デフォルトの名無しさんNGNG
>>911 日本語変だな 鬱氏。
0913デフォルトの名無しさんNGNG
>>911
でもまあ、それでもGCあるだけCよりデバッグ楽じゃん。
0914デフォルトの名無しさんNGNG
GCなら昔のベーシックからあったよ。
ユーザープログラムから呼ばないだけ。
別に新発明ではない。
0915デフォルトの名無しさんNGNG
>>914
BASICのGCって文字列のやつね。オッソロシク効率悪かったよね。
ちょっとはLispの技術でも学べば良かったのにね.

ところでBASICにはポインタもなけりゃヒープに割り当てるデータも
文字列以外になかったんだから、GC使う方がデバッグしやすいという
話とはあんまり関係ないよ。
0916デフォルトの名無しさんNGNG
終焉が見えてまいりました。
0917逝って良しの1NGNG
パート2まで行ったら、例の統計のタネ明かしをします。
0918デフォルトの名無しさんNGNG
OOを理解できないDQNなプログラマの率に関する統計の資料も出せよ。
0919デフォルトの名無しさんNGNG
OOわかってるつもりで実はわかってないプログラマの率もほしいな。

めちゃくちゃ邪魔、つーかゴミ以外の何物でもないんだけど。〈みなさ
んはちゃんとわかってて、こういう人たちと違うと思うけど〉
0920デフォルトの名無しさんNGNG
OOは実用レベルで使える人が集まれば、
「私はOO解ってます」
なんて、恥ずかしくて言えないと思われ。
0921デフォルトの名無しさんNGNG
分かってるという場合には
どういう時に使えないのかも分かってるもんだよな。
0922デフォルトの名無しさんNGNG
>>911 お前まだまし。コストラクトをお前が書いてるように使ってるのは同じなんだが、
オーバーロードコンストラクタによって全く違った振る舞いをする関数作ってる
コードみたことあるか?氏ぬぞ。
同じ名前の関数が渡される仮引数によって全く違った振る舞いをする。
もう恐怖としかいいようがなかった。アレは。
0923デフォルトの名無しさんNGNG
>>900
同意。

で、「デザインパターンと同等の方法論なんて、前から自分で考えてたよ」というやつに、それなら
「現在は世間に広まっていない、自分の持っている素晴らしい方法論はないのか?」と聞くと何も
でてこない。
0924デフォルトの名無しさんNGNG
1は本気であんなこと書いてるのかな?
世の中広いからなー
0925デフォルトの名無しさんNGNG
>>922
Java で static メソッドしかないソース読んだことあるぞ。
new すらない(w
0926デフォルトの名無しさんNGNG
今、私は引数が20個くらいある関数のメンテ中だったりします(泣)

プログラマーってのはレベルの差が激しいですよね
私より10年以上長くやってるのに・・・・この差はいったいなんでしょうか?
0927デフォルトの名無しさんNGNG
>>926
自分が極めたと思った瞬間、そいつの成長は止まってしまう。
つまり、彼の成長は10年前に既に停止してるんだよ(藁
0928デフォルトの名無しさんNGNG
クラスライブラリがないと何もできない駄目プログラマが
このスレでOOを擁護してそうだな。
おっと、OOを否定しているわけじゃないよ。
0929デフォルトの名無しさんNGNG
>>928
そう思ったら、具体的に番号示さないと盛り上がらんよ。
0930デフォルトの名無しさんNGNG
>>928
OOはクラスライブラリ無いとだめですか?
0931デフォルトの名無しさんNGNG
あるに越したことはない
0932デフォルトの名無しさんNGNG
>>931
まったく無かったらどうですか?
0933デフォルトの名無しさんNGNG
kernelしかないOSがあっても使う気にならないだろう?
0934デフォルトの名無しさんNGNG
>>933
それじゃあ、C言語は無意味だね(w
0935デフォルトの名無しさんNGNG
Cはライブラリが全く無くても組めるがJavaはライブラリ頼り。
0936デフォルトの名無しさんNGNG
>>935
それとOOは多分関係無いとおもう。
0937デフォルトの名無しさんNGNG
いまどき文字列処理を自前で書きたくないよ。
そういうことは暇なやつか、それを商売にしてるやつにまかせるべきだ。
0938デフォルトの名無しさんNGNG
ライブラリないったって、フルスクラッチはしないだろ。>C
仕事ならなおさら。
0939デフォルトの名無しさんNGNG
>>937
既に有るライブラリしか連想できないとは、発想の貧しい奴。
0940デフォルトの名無しさんNGNG
>>935
I/Oもいらないと・・・
0941デフォルトの名無しさんNGNG
>>935
Cってライブラリ無しでなにができる?printf?
0942仕様書無しさんNGNG
>>941
ちょっと待った、stdio もライブラリだろ。
0943デフォルトの名無しさんNGNG
インラインアセンブラもCのうちと認めれば不可能ではないが・・・
少なくとも >935 にはその技術は無い。
0944デフォルトの名無しさんNGNG
>>939
だからさ、いままでにないライブラリ作るときも、文字列処理みたいな
基本的な部分はガイシュツのライブラリ使うだろ?
そうすれば「いままでにないライブラリ」という問題領域に集中できるじゃん。
そういう基本的なライブラリがそろってるJavaは幸せだつう話だよ。
0945デフォルトの名無しさんNGNG
要するにここでたたかれていたのは
タケノコのようにでてきたJava厨ということでよろしいな?
0946デフォルトの名無しさんNGNG
>>926
引数減らす為だけの構造体作るのは素人。
0947デフォルトの名無しさんNGNG
>>946
だが引数 20 個渡すようなルーチンを組むのも、素人。
0948デフォルトの名無しさんNGNG
>>943
馬鹿ですか?
0949デフォルトの名無しさんNGNG
こいつらもついでに叩いてくれよ!
http://pc.2ch.net/test/read.cgi/tech/997074601/
0950デフォルトの名無しさんNGNG
CWIN::CreateEXは引数11個
0951デフォルトの名無しさんNGNG
>>947 WinAPI作ったMSはかなり素人っていうことでいいな?
0952デフォルトの名無しさんNGNG
>>950
どうでもいいが、MFC なら

CWin::CreateEx()

ですね。これもウィンドウのサイズを x, y, nWidth, nHeight ではなく const CRect で渡すバージョンが定義
してあり、そちらでは必須の引数は 7、加えてデフォルト引数が 1。

引数の数が 7 程度ならまだ覚えられる範囲だけど、それを超えると俺はダメだ。過去のコードを Copy &
Paste しないと、やってられん。
0953デフォルトの名無しさんNGNG
APIにはもっと多いのがあった気がする。
引数の数だけで能力計っている>>926を甘やかしてはいけません。
0954デフォルトの名無しさんNGNG
引数いちいち覚えるのか?
俺は作ったら忘れる。
覚えてなきゃ使えないようなルーチンは組まない。
0955デフォルトの名無しさんNGNG
javaのGraphics.drawimageも11個だが何か?
0956デフォルトの名無しさんNGNG
>>951
Win32 API だと、たとえば CreateWindowEx() は引数 12 個で、しかも hMenu は場合によってメニューの
ハンドルや子ウィンドウの識別子など、まったく異なる型のデータを受け渡す。お世辞にも、優れた設計と
は言いがたいね。

しかし引数 10 個越える API って、使用頻度が高い API には、さすがにそれほど多くない気がする。
RegisterClassEx() なんかは、ウィンドウクラスの情報を引数で個別に渡さず WNDCLASSEX 使ってるし。

>>953
そうだね。必要なら 20 個引数ある関数も書かざるを得ないし。ただ、そんな関数が大量にあったら設計が
腐ってるとは思うけど。
0957デフォルトの名無しさんNGNG
んー、Java死亡に話題が集まって引きがイマイチだな・・・。
0958デフォルトの名無しさんNGNG
>>954
> 引数いちいち覚えるのか?
さすがに覚えていられん。ただ引数が 20 個ある場合でも、引数が全部プリミティブ型だと

 nWidht, nHeight を入れ替えてしまった

みたいなバグがコンパイル時に検出できないから、嫌だなぁ。

ぜんぜんオブジェクト指向と関係ないね。ごめん。
0959デフォルトの名無しさんNGNG
1の周囲の環境が極端なだけ。
0960デフォルトの名無しさんNGNG
カプセル化マンセー!!
interfaceマンセー!!
ポリモルフィズムマンセー!!
Beanマンセー!!
0961デフォルトの名無しさんNGNG
>>951
だって80年代末だよ? >Win32API デザインパターンもさすがに
なかったし。MFCも90年代初頭からあるし。

ところでMFCやWTL以外の、サードパーティ製の、ウィンドウ操作を
カプセル化したクラスライブラリってあるの?
0962デフォルトの名無しさんNGNG
gtkとかQTとか、昔Borlandの作ってたOWLとかJAVAのSwingとか?
0963デフォルトの名無しさんNGNG
>引数減らす為だけの構造体作るのは素人。
どういう意味で言ってるのかわからん。
引数が多くなるって事は
関数の引数に,構造体へのポインタを渡す意味が全くわかってない厨房ですな。
許容範囲は、4つくらいまでだな。
20個ってのはもう、プログラミング以外の範囲も含めてセンスがないんだろうな。

APIが引数多くなるのは仕方の無い事
なぜなら一番低レベルな関数なわけだから
0964961NGNG
>>962
いやそういう余計なものがいっぱいついているものではなくてWin32APIの薄い
ラッパみたいなライブラリという意味なんだけど...
0965デフォルトの名無しさんNGNG
>関数の引数に,構造体へのポインタを渡す意味。
>許容範囲は、4つくらいまでだな。

減ったと思うのは局部しか見てない厨房。
構造体に値を渡すために全体は増える。
可読性が落ち、煩雑さが増える。
まあ、>>964は構造体でスパゲティでも作ってなさいってこった。
0966デフォルトの名無しさんNGNG
>>965
引数の群れをオブジェクトとしてまとめて扱うことによって
また別の側面が見えてくることがある。
やってみるのもひとつの手。
0967デフォルトの名無しさんNGNG
>可読性が落ち、煩雑さが増える。
リレーショナルデータベース完全否定派ですか?(笑
例えば,占い関数があったとして、引数に名前、年齢,住所、星座、体重,血液型・・・
が必要だったとした時
Humanってクラスを作った方がよくない?
もちろんHumanってクラスには占い関数には関係ない変数も持ってるだろうね
でも
占う(Human)
って書けたら読みやすいでしょ?

>構造体に値を渡すために全体は増える。
間違った知識だ・・・
もしかして4バイト区切りだから、byte,short使うと無駄が出る
みたいな意味でいってるのかな?(コンパイラのオプションで消せます)
とりあえず、関数に渡す時は左から順番にスタックに積んでいくわけだから・・・
ポインタ4つ積むのと、変数20個積むのは結構違うよね

20個の独立した変数を処理するなら
20個関数作った方がいいんじゃない?
でも,引数20個って
デフォルト引数とかあったら,使うのが脅威的な難しさだね
0968デフォルトの名無しさんNGNG
>引数減らす為だけの構造体作るのは素人。
と異なる場合を言われてもねえ・・・・。
0969デフォルトの名無しさんNGNG
>>961
ET++とかダメ?
0970961NGNG
>>969
http://www.gup.uni-linz.ac.at:8001/research/debugging/distribution/et++.html
これ? Gammaがかんでいるみたいだけどさすがに古いね...というか
Win32版は無いみたいなんだけどひょっとしてネタ?
0971961NGNG
念のため補足しておくと、元々の話はWin32APIの稚拙なデザインなので、Win32API
上に実装された物、しかもWin32APIの煩雑な操作をオブジェクト指向化
した物という意味でのウィンドウライブラリはないのか、って話。
だからJavaのAWTのようなものを期待した話じゃありません。
0972デフォルトの名無しさんNGNG
AWTが先進なのかYO!
0973デフォルトの名無しさんNGNG
Swingは楽チン〜〜♪
0974デフォルトの名無しさんNGNG
>>961
自分で書いてしまうのがいいと思いますよ
汎用的なライブラリーは使いにくいですからね

ファイルを扱うのであれば
File file=new File(filename)
であとは
file.read()
file.write(byte)
だけで、シーケンシャルアクセス限定みたいな
クラスを作っておけば、たいていそれですみます
file.write()の引数にインターフェースを付けて
バイト列を生成するのが便利ですね
0975デフォルトの名無しさんNGNG
age
0976ソフト屋に恨みを持つハード屋NGNG
なんかソフト屋って頭固いヤツばっかりだな。
数十年前の手法(?)でまだ議論してんのかよ。
バグ減らす努力でもしてろ。ヴォケ
おめーらバグ出しすぎ。
0977  NGNG
良スレあげ
0978  NGNG
>>976
従来の蓄積を無視してヴァカが言語転換やるからだ。
Java等の言語転換ブームが無ければ今の半分以下になってたはず。
0979デフォルトの名無しさんNGNG
OOスレにハード屋さんって珍しい展開だな〜〜。
0980デフォルトの名無しさん NGNG
ハードのバグはソフト屋諸君が取ってくれないと困るのだよ
わっはっはっは
0981デフォルトの名無しさんNGNG
ぢゃあ、COBOLでやればバグ発生率はひくくなるの?
0982デフォルトの名無しさんNGNG
>>981
ちゃんと読め。おまえJavaってとこしか見てないだろ。
0983デフォルトの名無しさんNGNG
従来の蓄積って事なら歴史がながいぶん、
FortranとかのほうがCよりも多いとおもうが。
レス数が950を超えています。1000を超えると書き込みができなくなります。