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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/03/22(日) 06:57:59
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1198822420/
0799デフォルトの名無しさん2009/05/30(土) 01:49:57
>>797
> 正則表現の定義から導き出される数々の定理を知った上で言っているのか?
知らないので教えてくださいw
0800デフォルトの名無しさん2009/05/30(土) 01:50:54
>>791
OOはベースになる理論が弱すぎるからな。
あと、いい加減なことを言う商売人が多すぎるのも問題。

その点、関数型は理論に裏打ちされていて良い。
0801デフォルトの名無しさん2009/05/30(土) 01:56:52
>>799
正則表現と有限オートマトンの等価性
Pumping Lemma
0802デフォルトの名無しさん2009/05/30(土) 03:02:31
>>800
OOにベースとなる理論なんてあるの?
基本的に経験則から導き出されたノウハウ的なものだと捉えてるんだけど?
0803デフォルトの名無しさん2009/05/30(土) 03:13:01
つーかOOもそうだがソフトウェア工学全般が胡散臭いっていうか
大した成果が出てないっていうか。研究するには筋の悪い分野だな。
0804デフォルトの名無しさん2009/05/30(土) 05:25:21
>>794
Kleeneのどの論文か言わないとCardelli厨と同一判定されますよw
0805デフォルトの名無しさん2009/05/30(土) 07:46:37
ML系の言語(Haskell, Standard ML, OCamlなど)はλ計算、論理学、圏論を
土台にきちっとした議論ができるから好き。
0806デフォルトの名無しさん2009/05/30(土) 07:49:43
>>804
突拍子もない主張ではないのだからCardelli厨と一緒にするのはやめてくれ。

これが当該の論文だ。わざわざpdfのリンクまで貼ってやったのだから
>>790はこれを読んで荒唐無稽な主張を取り下げること。

KLEENE, S.C.
Representation of events in nerve nets and finite automata.
In Automata Studies, C. E. Shannon, and J. McCarthy, Eds,
Princeton University Press, 1956, pp. 341.

http://www.soe.ucsc.edu/classes/cmps130/Spring09/Papers/kleene_1956.pdf
0807デフォルトの名無しさん2009/05/30(土) 08:58:15
理論が正しくても、それが必要とは限らない。そこで騙される人間もいる。
0808デフォルトの名無しさん2009/05/30(土) 09:10:37
>>792
ほぼOKだけど、文脈による。

ケイのOO(メッセージング指向のOO)やプロトタイプベースのOOでははなから関係ない。
クラスを含め、あってもいいが、無くても成り立つ。

http://www.purl.org/stefan_ram/pub/doc_kay_oop_en


ストラウストラップのOO(クラス指向のOO)では当初中核をなす概念だったが、クックらの指摘で
クラス継承だけでは型安全性が確保できないことが知られるようになってからは
インターフェイス継承や、委譲に軸足が移っている。

http://www.research.att.com/~bs/whatis.pdf
http://ctp.di.fct.unl.pt/mei/talmp/docs/InheritanceIsNotSubtyping.pdf
0809デフォルトの名無しさん2009/05/30(土) 10:03:16
>>805
確かにそうだけど、そこまで理解している人となら何について話しても
論理的な議論が出来そうだな。
0810デフォルトの名無しさん2009/05/30(土) 10:24:00
議論の余地がないから論理的って言うんですよ
0811デフォルトの名無しさん2009/05/30(土) 10:30:55
>>810
また馬鹿が湧いたのか?
0812デフォルトの名無しさん2009/05/30(土) 10:35:12
サイエンスができる人はλ計算や論理学を使ってちゃんとOOの意味を探ろうとしているのに、
OOの定義にしがみついているやつらときたら不毛な論争ばかり。
いい加減気づけよ。
0813デフォルトの名無しさん2009/05/30(土) 10:41:56
お前は妄想もいい加減にしろ。俺は>>800を書いたわけだが。
そもそもラムダ計算でどうやってOOの意味を探るんだ?

> 議論の余地がないから論理的って言うんですよ
一体>>809のどの部分に対して言っているんだ?
0814デフォルトの名無しさん2009/05/30(土) 11:10:42
設計には正解がないから難しいという考え方と
正解を導く理論を知らないだけだという考え方がある。

前者の立場では、非論理的な部分こそが議論のテーマになるってことかな。
0815デフォルトの名無しさん2009/05/30(土) 11:41:01
>>814
正解を導く理論を知ろうとしないから前者の立場になるのでは?
0816デフォルトの名無しさん2009/05/30(土) 12:49:54
>>813
まあ、型システムの整合性とかはよく型付きラムダ計算で論じられるけどね。

ともあれ、抽象データ型タイプのOOについてはそれこそカーデリのシグマ計算、
メッセージングについては方向性が変わってしまうけれどアクター理論とかパイ計算がある
ってあたりで勘弁してくれよ。
0817デフォルトの名無しさん2009/05/30(土) 13:16:06
俺はOOできるてるって奴にかぎって

型付きラムダ計算もそカーデリのシグマ計算もアクター理論もパイ計算も

*知らない*のはなぜ?
0818デフォルトの名無しさん2009/05/30(土) 13:18:58
メジャーなOOPLには
本流の計算科学を勉強しなくてもいい製品が作れる方法を
という目的の元育ってきたという側面もあるから
0819デフォルトの名無しさん2009/05/30(土) 13:19:00
道具としての技術と
学問としての技術のちがい?
みたいな?
0820デフォルトの名無しさん2009/05/30(土) 13:19:17
「できるてる」ってどういう意味だ?

つまり、情報系の学科出てない奴等がOOを異常に信奉してるんだろ。
0821デフォルトの名無しさん2009/05/30(土) 13:22:17
>>820
そんな感じがするね。
自分にも最新の技術がわかる→計算機科学なんて大したことないw
と思ってる奴が多すぎる気がする
0822デフォルトの名無しさん2009/05/30(土) 13:25:36
OOのユーザーだから。

おれ自動車の運転上手いって奴にかぎって古典的なニュートン力学も
燃焼工学も制御理論も知らないのは何故?って説いても無意味でしょ。
その制御理論を知る人に対して、何で数多の制御デバイスを実装する
半導体物性論も知らないの?と聞くのもまた無意味。世の中分業だし。

なので知っている人はそういう数学的な理屈を上手くラップして
そういうものを知らない人でも広くOOを利用出来るようにデザイン
してあげると良いんじゃないのかな。それが工学ってものでしょ。
0823デフォルトの名無しさん2009/05/30(土) 13:27:04
>>822
> おれ自動車の運転上手いって奴にかぎって古典的なニュートン力学も
> 燃焼工学も制御理論も知らないのは何故?
全然話が違う
0824デフォルトの名無しさん2009/05/30(土) 13:28:05
知らなくていい、というのも恩恵。
0825デフォルトの名無しさん2009/05/30(土) 13:28:25
>>823
どう違う?
0826デフォルトの名無しさん2009/05/30(土) 13:29:10
>>823
そうだよな、うまく載れてないもんな
0827デフォルトの名無しさん2009/05/30(土) 13:29:36
>>825
たとえが全く違う。的外れ。
0828デフォルトの名無しさん2009/05/30(土) 13:31:17
電子工学科では制御方面に行く人間も半導体物性の初歩は学ぶヨ
あと職人って言うような類の人でも理論的な事も勉強してる人は多い
表向きは「勘でやってる」とか言ってるような旋盤工のおっさんでも、
本棚にはボロボロになるまで使われた金属学の専門書があったりする
0829デフォルトの名無しさん2009/05/30(土) 13:31:42
>>827
だからどういう文脈で的を外しているのか、それを聞きたいのだが。
0830デフォルトの名無しさん2009/05/30(土) 13:31:44
怒らないでマジレスしてほしいんだが

型付きラムダ計算やらカーデリのシグマ計算やらが出来たら
もっと上手くOOPできるようになんの?
0831デフォルトの名無しさん2009/05/30(土) 13:34:15
世間で言われてるようなOOPはできないかも知れんがOOPの目的は達成できるようになる
そういう手法を自分で構築できるようになる、それを他人に教えることもできる
0832デフォルトの名無しさん2009/05/30(土) 13:36:40
>>822の例えの良し悪しは置いておくとしても、素人談義に首を突っ込んでも
時間の無駄ってことだけは言えそうだな。
0833デフォルトの名無しさん2009/05/30(土) 13:39:14
設計と実装を分業してたらOOPのメリット無いかも。
実装をラクにするために、柔軟に組んでいけるように、設計を工夫するんだろ。

肝心の実装を人任せにするんなら、設計はもはや他人事。

実際に実装で悶々しながら設計し、
実装で手ごたえを感じてまた設計に反映させる。

これが一番おいしいOOPじゃないかな。
非OOPでももちろん設計と実装の関係は同じことが言えるけど、
OOPならそこから先にまだちょっと伸びしろがあり、そこが醍醐味。
0834デフォルトの名無しさん2009/05/30(土) 13:41:13
>>830
まず、OOPを支持すること自体が無学の証というわけなんだよ。
全然形式化されていない手法を支持するって怖くないの?
形式化されていないということはその先の発展性が無いんだよ、OOPは。
0835デフォルトの名無しさん2009/05/30(土) 13:41:30
>>831
世間で言われてるようなOOPが出来ないってことは
既存のOOP言語使えなくなるんと違うの?
0836デフォルトの名無しさん2009/05/30(土) 13:44:26
言語はあくまで道具だ
0837デフォルトの名無しさん2009/05/30(土) 13:46:30
>>834
>全然形式化されていない手法を支持するって怖くないの?

全然。

>形式化されていないということはその先の発展性が無い

形式化されていないこととその後の発展性の因果がよく
分からない。
そもそも何をもって「発展」とするのか、形式的な定義が
与えられていないのでよく分からない。
0838デフォルトの名無しさん2009/05/30(土) 13:48:49
いったんOOで作ったらあとは部品を使い回すだけで
楽できるのに。
0839デフォルトの名無しさん2009/05/30(土) 13:49:22
>>837
「形式化」という言葉も理解できていない様子ですね。
0840デフォルトの名無しさん2009/05/30(土) 13:51:37
>>838
というのはセミナー屋のプロパガンダに過ぎないね。
どうも洗脳されている奴が多すぎて困る。
ちゃんと計算機科学を勉強して博士号を取得した奴以外喋るなよ。
0841デフォルトの名無しさん2009/05/30(土) 13:51:51
このスレで、計算機科学勉強した人でOO信者いる?
0842デフォルトの名無しさん2009/05/30(土) 13:53:26
>>840
そうそう、セミナー屋とか似非コンサルタントに騙されてる奴等多すぎ。
まあこのスレがどの板にあるのか考えたら仕方ないのかもな。
0843デフォルトの名無しさん2009/05/30(土) 13:55:22
この業界、セミナー屋がずいぶん幅をきかせてるよな・・
流行って全部セミナー屋が作ってるようなもんだし。
今度は関数型言語が食い物にされるのか・・ ウザ
0844デフォルトの名無しさん2009/05/30(土) 13:57:00
>>839
うん。説明してみて。
0845デフォルトの名無しさん2009/05/30(土) 13:59:50
>>844
大学院行って勉強してこい
0846デフォルトの名無しさん2009/05/30(土) 14:01:13
>>845
それは高等教育を受けた者の姿勢としては負けだと思うな。
理解しているのなら、説明できるでしょ。
0847デフォルトの名無しさん2009/05/30(土) 14:03:31
>>846
じゃあググれ
ここで書けるぐらいのことならググった方が早い
ここで書けないぐらいのことなら大学院で勉強しろ

以上
0848デフォルトの名無しさん2009/05/30(土) 14:04:58
日本でHaskellが流行ったといっても、その何割がWadlerやFokkingaの名を知っているのかとか考えると
食い物にされる可能性は高いだろうね
0849デフォルトの名無しさん2009/05/30(土) 14:05:26
院生連投頑張り杉
0850デフォルトの名無しさん2009/05/30(土) 14:06:43
誰が何をどうやって食い物にするんだよ。
で、それによって誰がどういう原理で困るんだよ。困らないのか?
0851デフォルトの名無しさん2009/05/30(土) 14:11:47
>>847
ケチだなぁ。お薦めのポインタすら貼らないとは。
学んだことを社会に還元できなくっては、国が高等教育に予算を
注ぐ意義も無くってよ?

>>848
WadlerやFokkingaとか知っているとどうして食い物にならないの?
0852デフォルトの名無しさん2009/05/30(土) 14:11:53
>>850
プロパガンダで信者を増やす→信者が信者を増やす→セミナー屋がっぽり
0853デフォルトの名無しさん2009/05/30(土) 14:16:31
目的の違う人間同士で”俺の目的の方が正しい、お前の目的は間違ってる!”って訳ですね判ります
0854デフォルトの名無しさん2009/05/30(土) 14:18:10
>>834
形式化されてないと嫌だってのは、ナイーブに過ぎるな。
それと、形式化されている手法を使ったとしても
いいプログラムが書けるとは限らないことも知っておこう。
0855デフォルトの名無しさん2009/05/30(土) 14:19:41
OOって一言で言ってもいろんな文脈がある。全然一緒に語るのは無理がある。

"勉強してこい"って言っている人は、学問的には通じるのかも知れないが、エンタープライズアプリにはきっと誰も耳をかしてくれない。想像力を働かせて簡潔な説明がないと普及しない。
0856デフォルトの名無しさん2009/05/30(土) 14:32:51
>>855
> エンタープライズアプリ
の現場が、破綻してるからこんなにスレが延びてるんちゃうの?
0857デフォルトの名無しさん2009/05/30(土) 14:36:52
>>856
同意
0858デフォルトの名無しさん2009/05/30(土) 14:37:35
>>855
計算の可能性に興味があって金儲けには全く興味なし。
0859デフォルトの名無しさん2009/05/30(土) 14:38:57
>>858
そういう貴方にスレの大半の住民は興味なし。
0860デフォルトの名無しさん2009/05/30(土) 14:41:54
>>856
それは違うぞ、きっと………

OO やりたい奴は、意地でも OO したいらしい

ある FX がらみのシステムで数学的にちゃんとしたバックグラウンドが
あって、発注側から実現するために必要な要素がほとんどすべて、数式
で与えられたのにもかかわらず、OO 分析しますとか言ってる奴もいるから
0861デフォルトの名無しさん2009/05/30(土) 14:42:06
もう素人には勝手にあーだこーだ言わせとけばいいよ。
正則表現を技術だなんて言うくらいなんだから、理論的な話をしても無駄。
0862デフォルトの名無しさん2009/05/30(土) 14:47:28
もう院生さんには勝手にあーだこーだ言わせとけばいいよ。
理論を実践に応用する議論をする気も皆無だろうから、現場的な話をしても無駄。
0863デフォルトの名無しさん2009/05/30(土) 14:48:41
関数型言語で意地でもポイントフリーで書くのとか
証明で背理法使えば楽なのに意地でも使わないで証明するのと似ている
自分の慣れた理解しやすい世界で処理した方がわかりやすいからなるべくそうしたい
ってのは誰にでも、どんな世界にでもある傾向だよ
0864デフォルトの名無しさん2009/05/30(土) 14:48:55
>>860
数式計算を実装するのと、システムを設計するのはまったく別の話しであることがわからないの?
0865デフォルトの名無しさん2009/05/30(土) 14:53:19
形式化なんか必要ないと思っているOO信者が沸いているようだが、
形式化は計算機科学の進歩の要であって非常に重要なことだぞ。
というのも、なぜ形式化をするかというと、要はプログラムのデバッグを自動化したり、
プログラム自体を自動的に生成したりしたいからなんだよ。
金儲け主義のプログラマさんだってバグ探しとか大変でしょ?
バグ探しにしてもプログラムの解析が必要だけど、
もし形式化されていなかったらプログラム自体を解析するプログラムをどうやって作ればいいのかわからないよね。
0866デフォルトの名無しさん2009/05/30(土) 14:53:59
>>864
言っとくけど、数値計算的な意味での数式じゃないからな

顧客が要求する、システムの振る舞いが数式出来ていされているのに
それを OO 分析してなんか意味があるの?

「お前らはこれを実装しろ」と、顧客は言ってるのに
知恵たらずの OO 分析溶かしても意味ないじゃん
0867デフォルトの名無しさん2009/05/30(土) 14:56:31
>>863
ポイントフリーで書けないHaskellプログラマは頭が悪いと見なされて差別の対象になります
0868デフォルトの名無しさん2009/05/30(土) 15:01:53
OOってデザインのメソッドだからね。

例えば、建築デザインの手法について議論する場で、
「そんな理論的裏付けの貧弱な手法より、この建築構造の方が理論として優れている」
と言われても、切り込み方がおかしいとしか思えないのと同じだな。
0869デフォルトの名無しさん2009/05/30(土) 15:02:58
OO議論の時もOOPを指すのかOOAとかOOMを指すのかはっきり
させろというツッコミが多かったが、形式さんも何の形式化の事を
話しているのかはっきりして欲しい。
0870デフォルトの名無しさん2009/05/30(土) 15:04:47
>>869
オブジェクト指向の数学的モデル化
0871デフォルトの名無しさん2009/05/30(土) 15:05:39
ソフトウェア開発そのものが形式化(キリッ!
0872デフォルトの名無しさん2009/05/30(土) 15:06:12
よく分からんが
関数も、変数も、定数も、なんもかんも全部オブジェクトなんじゃないの?
0873デフォルトの名無しさん2009/05/30(土) 15:06:51
>>872
オブジェクト(物体)なら触れるはず
つまりオブジェクトなんて最初から無かったんだよ!
0874デフォルトの名無しさん2009/05/30(土) 15:07:46
>>870
その「数学的にモデル化されたオブジェクト指向」とやらで設計された
プログラムが本当に用件から見て正しいのか、どう確認すればよいのか。
0875デフォルトの名無しさん2009/05/30(土) 15:07:57
ではワタシはこちらで構えておりますので、
どうぞ屏風からOOを追い出してください。
0876デフォルトの名無しさん2009/05/30(土) 15:08:38
>>862
コピペはお断りします。
0877デフォルトの名無しさん2009/05/30(土) 15:09:35
オブジェクト指向のオブジェクトって鋳造とか言う意味じゃないの?
物体なんて捉えてたら、理屈が通らないと思うのだけれども
0878デフォルトの名無しさん2009/05/30(土) 15:10:36
>>874
要件 ね。
要件自体を形式的に定義できる手法が存在する。
その要件とプログラムに整合性があるかどうかを検証するプログラムを使えばいい。
でもオブジェクト指向だとどんな風にそんなプログラムを作ればいいのかまだ誰も解らない。
0879デフォルトの名無しさん2009/05/30(土) 15:12:22
要件を叙述可能な形にする段階までが要件定義
08808782009/05/30(土) 15:14:06
俺が言っていることは実際にJRのシステム開発で行われたことがあるんだよ。
08818782009/05/30(土) 15:14:48
JRじゃないな。旧国鉄か・
0882デフォルトの名無しさん2009/05/30(土) 15:15:39
>>877
オブジェクトは多くの場合クラスまたはインスタンスを指す曖昧な言葉
mayerのOOSCの最初の7章あたりの議論にその辺の問題に関するmayerの見解が詳しく載っている
0883デフォルトの名無しさん2009/05/30(土) 15:17:34
>>880
ひょっとしてProlog使って実装したシステム?
0884デフォルトの名無しさん2009/05/30(土) 15:18:49
>>883
そうそう
0885デフォルトの名無しさん2009/05/30(土) 15:21:00
>>878
要件だね。
>要件自体を形式的に定義できる手法が存在する。
うん。なので聞いた。どこの形式化を指しているのか。

でも、この仕組みで行くと要件自体が形式化されていないと
「数学的にモデル化されたオブジェクト指向」とやらには現場的
にはまるで意味が無いじゃない。移行コストが面倒なだけで。

鶏と卵でいけば要件はソフトウェアを作る上であからさまに鶏
なので、そっちにも積極的にツッコミを入れないと。
ただ現場で使われている方法論を叩いたところで賛同は殆ど得ら
れないと思う。実益無いんだもん。
0886デフォルトの名無しさん2009/05/30(土) 15:22:31
>>882
だから、鋳造という言葉なんでしょ?
鋳造という言葉だけでは、鋳型の作成なのか、鋳造物なのか、鋳造物を作る工程なのかさっぱり解らないでしょ
0887デフォルトの名無しさん2009/05/30(土) 15:22:32
>>881
古い話みたいだけど、その開発手法が何故普及しなかったか
分析とかは無いの?
0888デフォルトの名無しさん2009/05/30(土) 15:23:17
lojbanが標準語になってかつ述語論理の概念を全員が共有できればあるいは…
0889デフォルトの名無しさん2009/05/30(土) 15:26:33
>>885
実益はある。
曖昧な仕様で開発を始めると仕様バグに悩まされることになるぞ。

仕様バグだけでなくプログラムのバグに関しても、
変なところで無限ループしていたり、デッドロックしていたり、いろいろあるけど
そういうバグの解析にも形式的モデル化が役に立つね。
0890デフォルトの名無しさん2009/05/30(土) 15:27:15
>>887
失われた10年
0891デフォルトの名無しさん2009/05/30(土) 15:28:11
要件が形式的に表現される案件では有効かもな。そんな案件はめったにないけど。
0892デフォルトの名無しさん2009/05/30(土) 15:30:51
>>891
原因は一つ。
SEが無学な文系だったということ。
0893デフォルトの名無しさん2009/05/30(土) 15:32:03
つまり誰にも現状と実現可能な理想が見えてないような状況で開発が行われている…と
そりゃ方法論以前の状態だな
0894デフォルトの名無しさん2009/05/30(土) 15:32:17
要件をいかにして形式的に表現するかに知恵絞るのがまっとうな設計屋なのでは?

かりに、今抱えてる案件でなおかつ今の俺では力足らなくてもだ
0895デフォルトの名無しさん2009/05/30(土) 15:33:58
形式的なモデル化と、OOによる設計は対立する概念じゃないだろ。
0896デフォルトの名無しさん2009/05/30(土) 15:34:31
JR総研は今でもVDMなどの形式手法を取り入れている。
OOにしろFMにしろ、否定する奴はバズワードふり回して
「こんなのはバズワードだ」とトートロジーかます奴が多い。
その手の輩が20年前に現われていたら構造化を否定していただろう。
0897デフォルトの名無しさん2009/05/30(土) 15:35:25
>>895
全く矛盾しないどころか、現代的な形式的手法の多くにはOO拡張が存在する。
0898デフォルトの名無しさん2009/05/30(土) 15:35:26
>>895
オブジェクト指向が形式的にモデル化できていない現状では何ともいえない。
関数型言語は明確にモデル化されている。
■ このスレッドは過去ログ倉庫に格納されています