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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2009/03/22(日) 06:57:59
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1198822420/
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
オブジェクト指向が形式的にモデル化できていない現状では何ともいえない。
関数型言語は明確にモデル化されている。
0899デフォルトの名無しさん2009/05/30(土) 15:36:27
OO分析は非形式的にも程がある手法
0900デフォルトの名無しさん2009/05/30(土) 15:39:20
言語と設計手法と要件を混同してないか?
0901デフォルトの名無しさん2009/05/30(土) 15:39:56
ソースが仕様(笑)
0902デフォルトの名無しさん2009/05/30(土) 15:41:50
>>896
構造化⊆オブジェクト指向
0903デフォルトの名無しさん2009/05/30(土) 15:42:27
テストコードが仕様(笑)
仕様→実装 (笑)
型が仕様でコードは証明(笑)
0904デフォルトの名無しさん2009/05/30(土) 15:43:12
つまり、構造化がウンコならオブジェクト指向もウンコ
0905デフォルトの名無しさん2009/05/30(土) 15:44:47
>>896
う〜ん、実績があるにせよOO云々を駆逐するほど普及しないのには
何か見えないコストや難点があるんでないの?
人材コストっていう説明でもよい。その場合の解決策は教育システム
と言うことになるから。一体何なんだろう。
0906デフォルトの名無しさん2009/05/30(土) 15:46:11
ここの人達ってOO嫌いで関数型大好きみたいなんだけど
ふだんどんなプログラム作ってんの?
HaskellとかでOSSのアプリ作ってる人達ばっかなの?
0907デフォルトの名無しさん2009/05/30(土) 15:46:38
>>905
> 何か見えないコストや難点があるんでないの?
あるよ。
ただ単純に、仕様記述言語の書き方が理解できる奴が少ないってこと。
仕様記述そのものがプログラムに見えなくもない。
0908デフォルトの名無しさん2009/05/30(土) 15:53:50
仕様記述言語による記述に要件とのずれがあったらどうするんだろう。
0909デフォルトの名無しさん2009/05/30(土) 15:55:28
>>906
Haskellは使うけど、型クラスは使わないんだろうなw
0910デフォルトの名無しさん2009/05/30(土) 15:56:58
先にC言語の工数見積もられてオブジェクト指向ならN分の1にできる?
って言われてNが2以上にできたら勇者だよね
0911デフォルトの名無しさん2009/05/30(土) 15:58:40
C言語でオブジェクト指向が出来ないような物言いだ。
0912デフォルトの名無しさん2009/05/30(土) 15:58:50
>>907
人材も揃わないような技術は使い難いなぁ。正直サイズの合わない
ネジみたいなものじゃん。

あと「理解出来る奴が少ない」と言うのは単にマイナーだから?
あるいは高度な訓練や素養が必要だから?
前者なら単に教育のマスを増やせば解決するけど、後者だとすると
なかなか人材コストが下がらないから結局普及は難しいような。
0913デフォルトの名無しさん2009/05/30(土) 15:59:34
>>910
開発工数は言語や方法論よろもまず技術者の質がモノを言う。と答える。
0914デフォルトの名無しさん2009/05/30(土) 16:07:59
>>911
グダグダな設計を、OO的にまともなものに変更してメンテナンス工数を1/5にしたことならあるよ
0915デフォルトの名無しさん2009/05/30(土) 16:40:42
>>914

それは OO を使わなくても可能な範疇だろ?
実質的には OOA とか OOD とかって全然こなれてないじゃん

OOP は使いどころによっては結構役に立つけど, C++ とか Java みたく
関数がファーストクラスじゃない言語だと, あちこち不細工になるじゃん
0916デフォルトの名無しさん2009/05/30(土) 16:46:19
>>914
OO的ではないがまともな設計に直してたら1/6になってたりして。
いずれにしても工数が減らせるかどうか説得力のある説明をするのって
難しいよね。
(過去の事例からデータを取るのも難しいし、実験するにもコスト、時間がかかりすぎる。)
0917デフォルトの名無しさん2009/05/30(土) 16:49:00
>>914
OO的ではないがまともな設計に直してたら1/6になってたりして。
いずれにしても工数が減らせるかどうか説得力のある説明をするのって
難しいよね。
(過去の事例からデータを取るのも難しいし、実験するにもコスト、時間がかかりすぎる。)
0918デフォルトの名無しさん2009/05/30(土) 16:49:31
とても大事な事だから
0919デフォルトの名無しさん2009/05/30(土) 17:15:07
>>914
以前動いていたシステムの設計を変更して、その後でもちゃんと動くかどうか保証できるのか?
09209142009/05/30(土) 17:23:23
そのためのテストパターンだろ。
設計変更するついでに既存コードにあるバグもけっこう見つかったけどな。
レス数が900を超えています。1000を超えると表示できなくなるよ。