トップページ⇒tech
1001コメント306KB

消えてなくなれよ >オブジェクト指向 part.2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/03/22(日) 06:57:59
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1198822420/
0699デフォルトの名無しさん2009/05/28(木) 12:39:50
建築家と大工を分業しているのに日本の建築技術は世界一ぃぃ
何でだ?
0700デフォルトの名無しさん2009/05/28(木) 13:03:35
日本に限らず、依存性逆転なんて言ってるやつらは
コーディングしやすさを考えて設計したら駄目
と思ってんじゃねーの
0701デフォルトの名無しさん2009/05/28(木) 15:04:13
>>699
プログラミングにおいて設計変更は日常茶飯事だからな。
一部金融系なんかの仕様書ガチガチな業務システムを除いては
設計しながらコーディングというのがあるべき姿であって、
分離する事自体が間違い。

つーか日本のブルーカラーの勤勉さは世界一と言っても過言じゃないぞ。
その代わり給料もそれなりにもらってるがな。
0702デフォルトの名無しさん2009/05/28(木) 15:06:19
日本にはブルーもホワイトもないと思う。
0703デフォルトの名無しさん2009/05/28(木) 15:24:25
仕様書ガチガチだと、プログラミング段階ではオブジェクト指向の恩恵を感じにくいかもなー
0704デフォルトの名無しさん2009/05/28(木) 15:27:31
それはあるだろうね。
0705デフォルトの名無しさん2009/05/28(木) 17:52:17
>>693 >>694
お前ら本当に"オブジェクト指向"をちゃんと定義できるの?

俺が今まで見た中で一番マトモなオブジェクト指向の定義はこれだが
ttp://practical-scheme.net/trans/reesoo-j.html
はっきり言ってこんなの未定義と不定と実装依存を足して3で割ったようなもんだと思う

もっと見事な定義ができるとか、ググればマトモな定義が見つかるっていうなら
是非見せてもらいたい。
0706デフォルトの名無しさん2009/05/28(木) 18:00:58
>>705
それよりよほどましな定義
http://e-words.jp/w/E382AAE38396E382B8E382A7E382AFE38388E68C87E59091.html
0707デフォルトの名無しさん2009/05/28(木) 18:01:23
    ___
    /    \       ___
  /ノし   u;  \   ;/(>)^ ヽ\;
  | ⌒        ) ;/  (_  (<) \;
  |   、       );/   /rェヾ__)⌒:::  ヾ;     はっきり言ってこんなの
  |  ^       | i   `⌒´-'´  u;  ノ;;     未定義と不定と実装依存を足して
  |          | \ヽ 、  ,     /;      3で割ったようなもんだと思うお
  |  ;j        |/ \-^^n ∠   ヾ、
  \       / ! 、 / ̄~ノ __/ i;
  /      ⌒ヽ ヽ二)  /(⌒    ノ
 /       r、 \ /  ./   ̄ ̄ ̄/
0708デフォルトの名無しさん2009/05/28(木) 18:09:28
>>706
その定義はC++やJavaなどに毒されているんじゃないか
オブジェクトに対するメッソッドじゃなくて
オブジェクト間のメッセージが本流だろ
0709デフォルトの名無しさん2009/05/28(木) 18:19:33
有名なまとめ
http://d.hatena.ne.jp/sumim/20040525/p1
0710デフォルトの名無しさん2009/05/28(木) 18:28:37
>>709を読むと、>>642がいかにAlan Kayの言う「オブジェクト指向」に
毒されているのが良く分かるな。
0711デフォルトの名無しさん2009/05/28(木) 18:35:37
オブジェクト指向の定義を決めるところから始めなきゃいけないのか
0712デフォルトの名無しさん2009/05/28(木) 18:52:15
>>710
逆だろw >>642がイメージしているのはKay的OOとは正反対だ。
0713デフォルトの名無しさん2009/05/28(木) 19:05:10
俺定義:
オブジェクト指向:ツリー型
0714デフォルトの名無しさん2009/05/28(木) 19:12:34
>>712
それはまったく違うぞ。
>>642の脳内での「オブジェクト指向」の定義はKay的OOだが、
オブジェクト指向「プログラミング」はC++的なものだと思ってるってことだ。
0715デフォルトの名無しさん2009/05/28(木) 20:31:55
"メッセージ"とかご大層なもののように言うけど、単に遅延束縛だろ。いや、ちがう、メッセージとはメタファーでゴニョゴニョとか言うなよ、あくまでプログラミングが便利になる機能かどうかの話だからな。
0716デフォルトの名無しさん2009/05/28(木) 20:37:05
メッセージなんて単にシンタックスシュガーに過ぎん。所詮は関数呼び出し。
0717デフォルトの名無しさん2009/05/28(木) 21:09:35
>>715
> "メッセージ"とかご大層なもののように言うけど、単に遅延束縛だろ。
うんにゃ、メッセージってのは、「ノイズも含めて」ただの信号だ
信号処理系をどうデザインするかは、手法によって変わるんだろうけど

少なくともOOAとかOODって言ってる奴等は
「ノイズも信号のうち」
って、当たり前の事実が分かってない

0718デフォルトの名無しさん2009/05/28(木) 21:11:26
メッセージってどうやって送んの?>>716の言うように関数呼び出し?
0719デフォルトの名無しさん2009/05/28(木) 21:14:03
>>718
単なる関数呼び出し。Objective Cのコードとか見てみろって。
0720デフォルトの名無しさん2009/05/28(木) 21:14:27
>>717
うけねらい?それともOO信者お得意のメタファー?
ネタなら、ごめん。意味分からん。
たとえ話なら、そんなのいいからプログラミングの機能の話がしたい。
0721デフォルトの名無しさん2009/05/28(木) 21:22:30
>>720
OO信者というより、通信理論や信号処理をかじった奴が能書き垂れてるだけだろ。
とんだお笑いものだがな。
07227172009/05/28(木) 21:24:39
>>720
いや、厳然たる事実

OOA とか OOD とかやってる連中って、やたら例外を作る
「ノイズも信号のうち」と考えてデザインすると
物事はもっと簡単になったりする

# もとハード屋のつぶやきだ
0723デフォルトの名無しさん2009/05/28(木) 21:36:16
>>722
じゃあどう簡単になるのか設計の具体例を挙げてみてよ
0724デフォルトの名無しさん2009/05/28(木) 21:57:14
722じゃないが
nullで例外出さないでNullableで演算を最後まで通してしまうとかかな
07257172009/05/28(木) 22:38:47
>>724
ソフト的に考えたらそうなんだろうけど

ノイズそのものも評価対象にいれるってゆうか…

ハードつくる場合って例外事象への対応はとってもコストが
かかるんで、伝達関数書くときに外乱を意味する変数を作って、
それも一緒に処理の中に含めるってゆうか…

外乱とかノイズとかも最初から入力の一つの要素として扱う
ってのが、賢いハード屋
0726デフォルトの名無しさん2009/05/28(木) 22:52:03
>>725
だからソフトウェア開発でお前の言った方法論が適用出来る具体例を挙げろよ
07277172009/05/28(木) 22:54:55
だからゆってんじゃん
例外扱いしなきゃいいって
0728デフォルトの名無しさん2009/05/28(木) 22:57:51
言ってねーだろうが

具体的に何を例外扱いせずにどう処理するんだよ
07297172009/05/28(木) 23:08:14
>>728
例外事象も入力のうちって捕らえたら
out = f (in, exception-case)
の関数だよな. 内部の状態は適当に隠蔽するとして…

後はカリー化して1入力-1出力の関数になるだろ?
0730デフォルトの名無しさん2009/05/28(木) 23:09:03
>>699
製造業や建設業における設計が、ソフトウェアでは設計+実装に当たるから。
ソフトウェア産業での「製造工程」ってのは、ビルドフェーズになる。
つまり、既に自動化されている。
0731デフォルトの名無しさん2009/05/28(木) 23:10:42
例外モナドですねわかります
0732デフォルトの名無しさん2009/05/28(木) 23:30:30
nullをNullableで通すっていうのは、maybeモナド
0733デフォルトの名無しさん2009/05/28(木) 23:37:20
exception handling considered harmfulとかありそうで無い
0734デフォルトの名無しさん2009/05/28(木) 23:53:16
>>729
だから入力がfで処理できないようなものだったらどうするのか、ってことなんだが。
0735デフォルトの名無しさん2009/05/29(金) 00:06:34
>>732
C#だとNullableがあってもRoundなどNullable用のメソッドがないから
自分で作っていたが
もしかしてMaybeモナドってそんなことしなくてすむようになるんかな
だとしたらHaskellすごい
0736デフォルトの名無しさん2009/05/29(金) 00:06:38
>>729
で、それがオブジェクト指向とどう関わりがあるんだ?
0737デフォルトの名無しさん2009/05/29(金) 00:11:44
OOってさ、データ構造と手続きを一緒にして何が嬉しいの?
カプセル化?データ構造や内部関数の隠蔽ならMLのモジュールでもできるよ。
逆にデータ構造と手続きを分離できないから、visitorパターンなんていうばかばかしい
テクニックを使わなきゃいけなくなる。
データと手続きを一緒にする意義ってあるの?正直ナンセンスだよ。
0738デフォルトの名無しさん2009/05/29(金) 00:20:18
オブジェクト指向って意味がわかんないんですけど、
サブルーチンのカタマリにしてくってことですか?
0739デフォルトの名無しさん2009/05/29(金) 00:23:32
>>737
カプセル化だけがOOだと思ってるなら勉強不足にも程がある
0740デフォルトの名無しさん2009/05/29(金) 00:25:13
そうそう、そんな感じ。実際にはもっと難解で無意味だから近寄らないほうがいいよ。
おっと、こんな時間にだれかk(ry
0741デフォルトの名無しさん2009/05/29(金) 00:25:57
>>737
データと手続きを分離した場合、無制限に操作を許すと
「システムとして有り得ない状態」を作り出しやすいんだよね。
もしくは、状態を多数つくって管理が破綻するとか。
敢えて制限をかけることで制御のし易さを得ることができるというわけ。
0742デフォルトの名無しさん2009/05/29(金) 00:26:33
構造化言語や構造化設計の経験からOOやOOPに入ったら。
OOの方がいいと思うけど。OOから入った人は、OOが当たり前に有るから。
その欠点しか見えないかもしれないね。これもゆとりの・・・
0743デフォルトの名無しさん2009/05/29(金) 00:26:47
>>739
OO信者最強の武器「勉強不足」www
0744デフォルトの名無しさん2009/05/29(金) 00:27:47
>>741
ジェネリックプログラミングは型の型による制約で分離しつつもそれを防いでいる
0745デフォルトの名無しさん2009/05/29(金) 00:30:13
>>743
アホか?信者じゃねーぞ
批判するならOOを知った上でないと>>737みたいな勘違い批判になるってことだ
0746デフォルトの名無しさん2009/05/29(金) 00:34:04
カプセル化は結果だと思っている
0747デフォルトの名無しさん2009/05/29(金) 00:37:59
>>745
737は勘違いなのか?データと手続きは分離したままで、「システムとして有り得ない状態」
が出ないように隠蔽できるというMLの型システム(モジュール)を知っての上での批判だと思うが。
0748デフォルトの名無しさん2009/05/29(金) 00:38:22
>>744
ジェネリックプログラミングとOOは排他的な概念じゃなかろうもん。
0749デフォルトの名無しさん2009/05/29(金) 00:43:41
MLでも依存型とか型族持ってこない限り力不足は否めないけどな
その意味ではコンストラクタとデストラクタ間で制約を設けられるような類のOO言語の方が有利な場合もある
0750デフォルトの名無しさん2009/05/29(金) 00:45:50
>>747
そんなことは言っていないぞ。

MLのモジュールシステムは基本的に関数やデータタイプを個別の名前空間に閉じ込める
だけだから、「システムとして有り得ない状態」を防げるわけではない。

> データと手続きを一緒にする意義ってあるの?正直ナンセンスだよ。
なんて言う時点で勘違い。
0751デフォルトの名無しさん2009/05/29(金) 00:48:52
>>749
力不足というのは同位
>コンストラクタとデストラクタ間で制約を設けられるような類のOO言語の方が有利
ここ、もちょっとkwsk
0752デフォルトの名無しさん2009/05/29(金) 00:52:39
>>750
>MLのモジュールシステムは基本的に関数やデータタイプを個別の名前空間に閉じ込める
>だけだから、「システムとして有り得ない状態」を防げるわけではない。
そこまで知ってるなら、なぜシグネチャーを知らない?
0753デフォルトの名無しさん2009/05/29(金) 01:15:35
>>750
当然知ってるが。シグネチャは結局モジュールの受け付ける型を制限するだけで
あって、静的型チェックはC++やJavaでもやってること。
0754デフォルトの名無しさん2009/05/29(金) 01:29:43
>>753
http://www.geocities.jp/m_hiroi/func/ocaml09.html
「シグネチャとデータ抽象」あたりを読むべし。
0755デフォルトの名無しさん2009/05/29(金) 01:40:41
>>754
何が言いたいんだ?3行で説明してみろよ。
0756デフォルトの名無しさん2009/05/29(金) 01:53:37
こういうリンクだけ貼って自分の言葉をもってないようなのは人として駄目だよね
せめて引用したい部分だけでも貼れって思う

仮に
>>754
http://www.ntv.co.jp/sekaju/student/20050115/03_0201.html

とかやったら俺のいうことを理解できるまで上記リンクを最後まで読むんだろか?w
0757デフォルトの名無しさん2009/05/29(金) 04:46:28
メッセージ送信と関数呼び出しの区別がつかない人はLuca Cardelliを読め。
0758デフォルトの名無しさん2009/05/29(金) 05:04:48
>>757
違いを具体的に説明出来ないのなら、それは理解していないのと何ら変わりない。
0759デフォルトの名無しさん2009/05/29(金) 05:13:29
>>758
違いはinclusion polymorphismだ。あとは自分で調べろカス
0760デフォルトの名無しさん2009/05/29(金) 05:25:46
>>759
結局説明できないんだな。知ったかのクズが
0761デフォルトの名無しさん2009/05/29(金) 07:18:41
>>759でちゃんと説明になってるだろ。どこまでゆとりなんだ?
0762デフォルトの名無しさん2009/05/29(金) 07:32:24
用語を一つ挙げただけで説明になると思ってるとは、おまえがゆとりそのものだな
曖昧さのないように3行で説明してみろやボケが
0763デフォルトの名無しさん2009/05/29(金) 08:35:29
>>762
人にモノを訊くときにはまず自分で調べてからにしろ。クズ。
0764デフォルトの名無しさん2009/05/29(金) 08:59:42
何度もクソレスする暇はあるのに、単なる定義の違いについて説明するのを
ここまで渋るとは、お前は本当に説明出来ないんだな。
だったら最初から偉そうな物言いをするなよ。

人の名前や述語を挙げて後は調べろで煙に巻くような輩に碌な人間はいないな。
0765デフォルトの名無しさん2009/05/29(金) 09:02:34
かといって、何から何まで教えてくれる暇人がいるとでも?
最低限の知識を踏まえていない人間が議論で相手にされるとでも?
0766デフォルトの名無しさん2009/05/29(金) 09:17:07
>>757のように決して広く一般的に認識を共有されているとは思えない主張を
するのならその根拠を説明するのは当然だろうが。そんなことも理解できないのか?
0767デフォルトの名無しさん2009/05/29(金) 09:23:03
ここまで来ると正直うざいわ
もう>>757は嘘ということで終わりな
0768デフォルトの名無しさん2009/05/29(金) 09:23:40
Luca Cardelliのどの論文を指すのか
0769デフォルトの名無しさん2009/05/29(金) 09:45:54
今のプログラミング言語では Erlang とかの一部の例外を除けば、メッセージングと
称される機構は、ちょっと回りくどい関数呼び出しに過ぎないですよ。それは Smalltalk も同じ。

Smalltalkはあくまで暫定的な仕様のシステムだったのだけれども、いろいろあって途中で変化を
やめてしまった。にも関わらず、それを完成された形と勘違いした多くの言語作者が
この関数のことをメソッドだとかその呼び出しをメッセージ送信だとか、ひそみに倣い
はじめたからおかしな事になったわけです。

ただやっかいなことに、しくみは古いままでも、それをメッセージングだと見なしてプログラミングしたり
そうした思考や行為をサポートする主にメタな機構・ツール・環境を充実させてみると、(領域によっては)
目を見張る生産性を発揮することも分かった。暫定ダイナブックOSとしてのSmalltalkはその実証でもあるわけです。
20年以上再起動することなしに動き、拡張され続けているシステムって、メッセージングのアイデアの
源でもあるインターネットシステムを除けば、Smalltalkの他にないのではないでしょうか。

そんなケイが「メッセージング」を介して本来目指したものや、Smalltalkによって得られた成果についての
ケイ自身の総括みたいなものはここで読めます。
http://metatoys.org/oxymoron/oxymoron.html

以上、長くなりましたがケイの「メッセージングのOO」の参考まで。
0770デフォルトの名無しさん2009/05/29(金) 10:06:10
>>757は真っ赤な顔をしてこのスレから去っていきました
0771デフォルトの名無しさん2009/05/29(金) 10:14:06
>>705
リンク先にもきちんと書いてあるだろ?
元々 well-defined じゃない。
0772デフォルトの名無しさん2009/05/29(金) 13:46:01
アラン・ケイの言うメッセージングなんて、OSに必要なもので、言語に求めるものじゃないだろ
0773デフォルトの名無しさん2009/05/29(金) 17:53:53
カーデリの代表作といったらアレしかないだろw
0774デフォルトの名無しさん2009/05/29(金) 18:44:54
いや代表作とかどうでもいいから関数、
メッセージングの違いとかinclusion polymorphismの話題を含むやつを具体的に
0775デフォルトの名無しさん2009/05/29(金) 18:52:36
アランケイはオブジェクト指向の発起人じゃないよ。
0776デフォルトの名無しさん2009/05/29(金) 19:29:22
OO批判の連中は、どいつもこいつもイニシャル実装の事しか考えて無いんじゃなかろうか。
『作った後で要求がガンガン変わる』という事例にまで頭が回っていないように見える。
0777デフォルトの名無しさん2009/05/29(金) 20:35:28
>>776
http://www.ntv.co.jp/sekaju/student/20050115/03_0201.html
0778デフォルトの名無しさん2009/05/29(金) 20:52:40
OOの考え方って、メッセージングだとかメタファーだとか、とにかくサイエンスやテクノロジーの土俵にのらないから嫌い。
0779デフォルトの名無しさん2009/05/29(金) 20:52:55
結局偉そうなこと言う奴って付け焼き刃だってことが良く分かった。
0780デフォルトの名無しさん2009/05/29(金) 21:48:23
アスペクト指向についてどう思ってる?
あれは、メッセージングの仕組みはオブジェクトの責任分担について一方面しか切り出せず、
横断的な関心事に無力であり、その不便を解消したいという問題意識と捉えると、メッセージ
ングの本質的な弱点を指摘していると思う。
0781デフォルトの名無しさん2009/05/29(金) 22:29:59
>>780
アスベスト?
0782デフォルトの名無しさん2009/05/29(金) 22:53:45
解消できないから横断的って言うんですよ
0783デフォルトの名無しさん2009/05/30(土) 00:13:04
>>778
純粋サイエンスのまま実用的になった技術って正規表現くらいじゃね?
0784デフォルトの名無しさん2009/05/30(土) 00:29:04
正規表現のどこがサイエンスですか。
あれはただの技術ですよ。
0785デフォルトの名無しさん2009/05/30(土) 00:32:01
ム板で語れるサイエンスって数学しかないような。
0786デフォルトの名無しさん2009/05/30(土) 00:42:01
メソッドやらメッセージングやらを見てると
再利用性云々の話は眉唾に聞こえてきてしまう

型エラーにならなけりゃとにかく使いまわせる関数型アプローチにはそういう意味ではかなわないなと
0787デフォルトの名無しさん2009/05/30(土) 00:44:05
>>784
お前ネタで言ってるのか?
正規表現は数学者Kleeneが数学用のツールとして考案したものだ。
0788デフォルトの名無しさん2009/05/30(土) 00:49:01
>>783
サイエンスまでいかなくても、まっとうな議論ができる土台でコンピューター技術に
応用されているものをぱっと思い付きで挙げると、
λ計算、オートマトン、関係代数、述語論理、π計算、圏論、グラフ理論
0789デフォルトの名無しさん2009/05/30(土) 00:53:56
オブジェクト指向=文系
0790デフォルトの名無しさん2009/05/30(土) 00:59:32
>>787
> ツール
科学じゃねーじゃん
0791デフォルトの名無しさん2009/05/30(土) 01:01:39
>>788
それそれ。
メッセージングだとか多態性だとかカプセル化だとか、本質的にはオブジェクトを物とみなしてだとか、
OOは全然サイエンス的な議論ができないじゃん。だから嫌い。
0792デフォルトの名無しさん2009/05/30(土) 01:03:26
えーと、結局、継承はオブジェクト指向自体とは無関係って事でOK?
0793デフォルトの名無しさん2009/05/30(土) 01:04:57
科学=解き明かし体系化された概念
0794デフォルトの名無しさん2009/05/30(土) 01:28:20
>>790
馬鹿か?Kleeneの論文読んでこい。
0795デフォルトの名無しさん2009/05/30(土) 01:35:17
あのね、決まり事を作るのは科学じゃないのね。
科学っていうのは解き明かすことが重要なの。
0796デフォルトの名無しさん2009/05/30(土) 01:41:17
>>791
そうか、だからOOはなんとなく宗教チックなんだ。言うことがいちいち大袈裟だし。
長年のもやもやがスッキリした。
0797デフォルトの名無しさん2009/05/30(土) 01:46:19
>>795
お前が言っていることは、数学は科学で無い、と同じ位荒唐無稽な主張だ。
正則表現の定義から導き出される数々の定理を知った上で言っているのか?
0798デフォルトの名無しさん2009/05/30(土) 01:49:03
>>791
まぁエンジニアリング上の問題だからな。
どうしても人間による認識が入ってくるのは仕方ない。
■ このスレッドは過去ログ倉庫に格納されています