板検索:
オブジェクト指向は愚かな考え。この世は計算式 ★3 (1566)
まとめビュー
重複読み込みスレ:このスレは、2重読み込みでレスが重複している可能性があります。修復する場合はこちらをクリックしてください。
1
デフォルトの名無しさん[sageteoff]   投稿日:2016/01/05 02:10:25  ID:hJUQcrkl.net(2)
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
https://twitter.com/ProgrammingMono/status/665702678006140928

研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・
コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。

生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった
秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な
酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な
枝分かれ構造をとっています。

これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の
動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。

今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、
隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制
されていることを世界に先駆けて実証しました。

興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の
動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる
ことをコンピュータシミュレーションで実証しました。
http://www.jst.go.jp/pr/announce/20151120-2/#YOUGO3

前スレ
オブジェクト指向は愚かな考え。この世は計算式 ★2
コメント6件


2
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/05 02:40:11  ID:3cj4CitF.net(2)
>1 = ハゲ
>3-1000
ゴミ


死ね
コメント2件

3
デフォルトの名無しさん[sage]   投稿日:2016/01/05 08:10:47  ID:WVEw1bNF.net(2)
相変わらず気が狂ってるね
コメント2件

4
デフォルトの名無しさん[]   投稿日:2016/01/05 21:54:42  ID:8fihq/Cm.net(2)
オブジェクト指向は直観に反するんだよな。
こいつを見てくれ。
http://pbs.twimg.com/media/CW4jn4jUkAAqIlA.jpg

Coffeeオブジェクトに振る舞いがある。これはオブジェクト指向的に完全に正しい。
しかし、現実にコーヒーを飲むのは人間だ。コーヒーは人間によってカップに注がれる存在だ。
これが思考を混乱させる。オブジェクト指向に従うとよくわからないソースコードのできあがりだ。
データに振る舞いを持たせるのは大失敗だと言わざるを得ない。
コメント16件

5
デフォルトの名無しさん[sage]   投稿日:2016/01/05 22:44:58  ID:zW6slUa6.net(4)
空かどうか判定するEmpty()を定義したCupクラスとLiquidクラスを継承したCoffeeクラスを作って、HumanクラスにRefill(Cup,Liquid),Drink(Cup)を定義すればいいだけだ

if(cup.Empty())
{
human.Refill(cup,coffee);
}
else
{
human.Drink(Cup);
}
コメント6件

6
デフォルトの名無しさん[sage]   投稿日:2016/01/05 22:47:52  ID:i0IFFoJB.net(6)
コーヒーの属性定義が広範囲すぎる
量をのオブジェクトに突然、実態コーヒーを入れている
量のオブジェクトの範囲のクラスを作っる
コーヒークラスに量をコンポジションさせる
設計の間違え

7
デフォルトの名無しさん[sage]   投稿日:2016/01/05 22:51:39  ID:GCWuNCn0.net(2)
>4
単純。

コーヒーはただの量であり、人間オブジェクトの一変数だ。
いや、コーヒーはオブジェクトであり、生成からの時間により温度変数の値が変わる。
いや、コーヒー生成の時刻を保持するのは人間であり、コーヒーの温度を計算するのは人間である。
いや、コーヒーはコーヒーサーバーオブジェクトの変数であり、、、、

8
デフォルトの名無しさん[sage]   投稿日:2016/01/05 22:55:26  ID:i0IFFoJB.net(6)
>5
ま^、これでもいいがこれをオブジェクト指向と思っている時点で
何をやっても後が大変。
コメント2件

9
デフォルトの名無しさん[sage]   投稿日:2016/01/05 23:02:31  ID:zW6slUa6.net(4)
>8
目的次第としか言えんわ
直感的なコードが求められるなら>5ってだけ
コメント2件

10
デフォルトの名無しさん[sage]   投稿日:2016/01/05 23:15:31  ID:i0IFFoJB.net(6)
その直感が、直感的だと思う時点
斜め直感にしか見えん

11
デフォルトの名無しさん[]   投稿日:2016/01/05 23:33:07  ID:QVqdPGfo.net(2)
すまん、自動で口にコーヒー注いでくれない前時代のコップ使ってる雑魚おる?

12
デフォルトの名無しさん[sage]   投稿日:2016/01/06 00:33:16  ID:73ZB/O6z.net(2)
胃瘻はかなり前に技術だが

13
デフォルトの名無しさん[sage]   投稿日:2016/01/06 02:56:11  ID:MPHK5bs1.net(2)
>5
おまえはカップを飲むのかw
コメント2件

14
デフォルトの名無しさん[sage]   投稿日:2016/01/06 06:53:26  ID:UF966QGg.net(2)
現実をそのままモデル化してOO否定って5周くらい遅れとるで
コメント2件

15
デフォルトの名無しさん[sage]   投稿日:2016/01/06 07:15:47  ID:QNndC4zW.net(4)
形式主義ではコーヒーを椅子に置き換えても成り立つってことをいいたいんじゃないのか。

16
デフォルトの名無しさん[sage]   投稿日:2016/01/06 08:11:16  ID:xFxLYqzC.net(2)
>14
>4は現実をそのままモデル化できていない。
大事なのは、そのままモデル化するのではなく、どうモデル化するかなのだ。

17
デフォルトの名無しさん[sage]   投稿日:2016/01/06 08:45:38  ID:/XlzX9bH.net(2)
人間は現実を直接みてるわけじゃないからね

18
デフォルトの名無しさん[sage]   投稿日:2016/01/06 08:58:13  ID:9xF4ChVe.net(2)
まー初心者(OOだけでなくプログラミング全般の初心者)向けのオブジェクト指向の解説とかでよくある説明だよね。
「オブジェクトとは日本語で物、対象物などという意味です」みたいなさ。とっかかりとしては平易なためによく使われているけど、
数学の定義のように後生大事にするべき、応用の効く、正しいイメージじゃない。


19
デフォルトの名無しさん[]   投稿日:2016/01/06 11:11:49  ID:wCEM/hYT.net(2)
>1

20
デフォルトの名無しさん[]   投稿日:2016/01/06 11:14:02  ID:Nukx80Um.net(2)
クラスは原子陽子中性子くらいから完璧に継承すべき

21
デフォルトの名無しさん[]   投稿日:2016/01/06 11:15:12  ID:nQqbz+/u.net(6)
メソッドに何かやらせるのはやめて全て物理演算で動作を決めるべき

22
デフォルトの名無しさん[]   投稿日:2016/01/06 11:19:28  ID:dAXQ+tnq.net(2)
コンピュータ内でシミュレートするのではなく実際の分子原子を用いるべき

23
デフォルトの名無しさん[sage]   投稿日:2016/01/06 11:34:29  ID:KjcuT4OL.net(2)
そんなことしたら分子原子の仕様変更で全てがひっくり返るぞ

24
デフォルトの名無しさん[]   投稿日:2016/01/06 11:54:24  ID:nQqbz+/u.net(6)
メソッドコールのかわりにオブジェクトに対するフォースとトルクを搭載した言語を作ればいい

25
デフォルトの名無しさん[]   投稿日:2016/01/06 11:57:30  ID:nQqbz+/u.net(6)
>13
これ、どう表現すべきなのか?
コメント4件

26
デフォルトの名無しさん[sage]   投稿日:2016/01/06 12:01:41  ID:QNndC4zW.net(4)
beDrank, beRefilledにかえればいいだけだろ。

27
デフォルトの名無しさん[sage]   投稿日:2016/01/06 12:26:10  ID:HvQ48C0N.net(2)
>25
drinkに渡すのはcup.contentsとかにする?

28
デフォルトの名無しさん[sage]   投稿日:2016/01/06 13:44:41  ID:ZUCJrGIg.net(2)
>4は一般的なコーヒーのモデル化じゃなくて
コーヒーの消費が常態化したマの皮肉じゃないの
最後にコメント付いてるし

29
デフォルトの名無しさん[]   投稿日:2016/01/06 21:55:30  ID:kAnzyWXR.net(2)
オブジェクト指向は無理

30
デフォルトの名無しさん[]   投稿日:2016/01/06 21:55:58  ID:zRcw+KQb.net(2)
まったく直感的ではないな

31
デフォルトの名無しさん[]   投稿日:2016/01/06 21:56:37  ID:fWGpYiip.net(2)
こうしてクソみたいなソースコードが溢れた

32
デフォルトの名無しさん[]   投稿日:2016/01/06 21:57:33  ID:ljmmccCR.net(4)
>25-27
こんな議論になる時点でオブジェクト指向はヤバいだろ

33
デフォルトの名無しさん[]   投稿日:2016/01/06 21:58:49  ID:ljmmccCR.net(4)
>2
死ね

34
デフォルトの名無しさん[]   投稿日:2016/01/06 22:00:48  ID:vTtwKBx3.net(2)
>9
そこまでしてオブジェクト指向にこだわる意味がわからない。
そんなもんperlやrubyのワンライナーですませろよ

35
デフォルトの名無しさん[sage]   投稿日:2016/01/07 00:25:26  ID:idw/W9gn.net(2)
オブジェクト指向も結局はコミュニケーションというか
メソッド(関数)指向という方が正しい。
結局はメソッド(関数)をどのように呼ばれるか、まとめられるかってことだから。

36
デフォルトの名無しさん[sage]   投稿日:2016/01/07 01:03:06  ID:Spe75WNW.net(4)
メソッドは関数ではない
メソッドとは特定のオブジェクトにのみ適用可能な手続きであり、
関数とは特定のオブジェクトに依存しないものである
特に純粋関数は状態にも依存せず、参照等価性が成り立つものである

ところでオブジェクトが状態を持たず、メソッドを持たなければ、
それは単なるデータ(例えばハッシュマップ)と同じである
従ってオブジェクトというものは状態、及びメソッドの存在を暗示している

オブジェクト志向とは全てのものを変更可能なデータ(言い換えればエンティティ)とメソッドで表そうという観念である
関数型はそれに反して極力多くのものを変更不可能なデータ(値)と関数で表そうとする
ここの話はいわゆるドメイン駆動設計にも絡んでいる

どちらが、現実世界の捨象に有用であるかということが問題なのである
コメント2件

37
デフォルトの名無しさん[sage]   投稿日:2016/01/07 01:15:30  ID:Spe75WNW.net(4)
オブジェクト志向で実装可能なことは、原理的に関数型でも実装可能であり
関数型で実装可能なことは原理的にオブジェクト志向でも実装可能なはずである

関数はオブジェクト志向においては、staticクラスを使えば実装できる
メソッドは関数型においては、第一引数によって動作を変更するポリモーフィズムとして実装できる

問題はどちらが汎化に適しているかということなのである
関数型にはオブジェクト指向では綺麗に実装できない麗としてマルチメソッドというものがある
これは第一引数及び第二引数+・・・の型を持ってして動作を変更するという技であるが、
特定のオブジェクトに依存しているオブジェクトにおいてはこれはif文を内包したディスパッチをする他に実装する方法はないだろう

一方staticクラスによる関数のパッケージ化は煩雑である
必要な関数だけをインポートするには、その関数を内包したstaticクラスをインポートする必要がある
もしここで厳密なカプセル化を適用するならば、
1つの関数のために1つのクラスを使う必要がある、さもなくば利用可能でない関数も同時にインポートしてしまう

カプセル化もまた、オブジェクト志向の特権ではないのである
関数型は関数をカプセル化しているのである
そして変数のカプセル化もまたクロージャで実装できる

オブジェクト志向での変数のカプセル化は容易ではあるが、本当に変数はカプセル化されるべきか
それが私の問いなのである
コメント2件

38
デフォルトの名無しさん[sage]   投稿日:2016/01/07 01:40:36  ID:6wDD5ILY.net(2)
>37
その問いにおける「変数」とは状態のことであるから、
それは構造化・カプセル化によってアクセス制限されるべきなのは明らか。

39
デフォルトの名無しさん[]   投稿日:2016/01/07 02:02:35  ID:EDvZlrKk.net(2)
>1>4
結局のところ、この問題に誰もが納得するシンプルな回答を示せない奴が設計するからデスマーチになるんだろ。

40
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/07 03:17:27  ID:VBUUQOGk.net(2)
自分も参加してるプロジェクトでデスマが起こるなら多分自分にも原因があるんだと思うよ

41
デフォルトの名無しさん[sage]   投稿日:2016/01/07 03:22:02  ID:Y5yasR7+.net(4)
>4
そもそもなんでコーヒーに命令するとコーヒーが自分で動作してんだよ。
そんなコーヒーがあるかw
いきなり設計段階から間違ってるじゃねーか

どう考えても最後の"//I am a software developer"って時点で
そういう設計をやらかす>4みてぇなバカを揶揄したセルフパロじゃんかw
コメント2件

42
デフォルトの名無しさん[sage]   投稿日:2016/01/07 04:03:14  ID:Y5yasR7+.net(4)
ああ、ジョークまで完全に見えた
>4は「プログラマがコーヒーを飲む」じゃなくて
「コーヒーがプログラマに飲まれる」って逆転ジョークで
絶え間なくコーヒーが自動的にプログラマに注がれ続ける
おかしな逆転コードでプログラマジョークになってんだ。

「こいつをみてくれ」じゃねーよ!プププ

43
デフォルトの名無しさん[sage]   投稿日:2016/01/07 04:17:18  ID:boatvz1E.net(2)
>36-37 が大嘘であることはOCamlの存在が証明している

44
デフォルトの名無しさん[sage]   投稿日:2016/01/07 14:46:08  ID:Geoe+pHe.net(2)
こういう根本的に理解できてないのが大量に居る時点で、オブジェクト指向は愚かな考えw

45
デフォルトの名無しさん[sage]   投稿日:2016/01/07 15:46:48  ID:bWvRU875.net(4)
コーヒーはどうでもいいけど、
2.log() とか数に数学的関数計算をくっつけるってどうなのよ?
気持ち悪いったらありゃしねえ。
コメント2件

46
デフォルトの名無しさん[sage]   投稿日:2016/01/07 18:04:34  ID:nwSyjPdt.net(2)
数学みたいにlog(2)でいいと思うが。
その()は何のためにあるんだと言いたい。
コメント2件

47
デフォルトの名無しさん[sage]   投稿日:2016/01/07 19:24:41  ID:bWvRU875.net(4)
大分昔だけどフリー関数は気持ち悪くて、1.sin()とか1.cos()とか書けるのが本来の在り方だ、といった
痛い記事を読んだ記憶がある。Rubyがらみだったかなあ。
今ちょっと検索すると見つからないから俺の妄想なのかもしれん。

48
デフォルトの名無しさん[sage]   投稿日:2016/01/07 19:33:58  ID:LLMMv1AA.net(2)
数字は計算をしないからそう書いちゃいかんのだけどな

49
デフォルトの名無しさん[sage]   投稿日:2016/01/07 19:53:48  ID:wknU54yj.net(2)
+ 1 2

50
デフォルトの名無しさん[sage]   投稿日:2016/01/07 21:42:11  ID:a7kpSA/c.net(4)
死ね括弧

51
デフォルトの名無しさん[sage]   投稿日:2016/01/07 21:57:00  ID:sG4YEGv+.net(2)
(スズ)

拝承

52
デフォルトの名無しさん[sage]   投稿日:2016/01/07 22:18:47  ID:a7kpSA/c.net(4)
>46
> 何のため
関数そのものなのか、関数を呼び出した結果なのかを区別する括弧。
括弧がなければ関数そのもの、あれば関数呼び出しの結果。
括弧がなければlogという関数そのもの、あればlog(hoge)の計算結果。
かどうかは言語による。

53
デフォルトの名無しさん[]   投稿日:2016/01/09 14:00:07  ID:8eWGVEYX.net(4)
>45
こういう主語述語みたいなくだらない議論に陥るのがオブジェクト指向の最大の問題点だな
どっちでもいいからそのためのテストなりサンプルコードをがつがつ作ってくれれば問題ないんだが
糞みたいな議論ばっかりふっかける輩を生むところが最大の問題点だな。
コメント4件

54
デフォルトの名無しさん[]   投稿日:2016/01/09 14:37:25  ID:hdqMNonU.net(2)
>53
何も考えずに作業こなすだけの社畜 VS 議論ばかりやる頭でっかち ファイッ!!
コメント2件

55
デフォルトの名無しさん[]   投稿日:2016/01/09 16:12:34  ID:8eWGVEYX.net(4)
>54
極論煽るだけのカスも大概だけどな

56
デフォルトの名無しさん[sage]   投稿日:2016/01/09 17:15:53  ID:3kY/wzgi.net(4)
>53
ドット構文を変な風に使うバカの問題であってオブジェクト指向関係ないな。

57
デフォルトの名無しさん[sage]   投稿日:2016/01/09 18:23:24  ID:oGyr6/WF.net(4)
主語述語っていうけど、オブジェクトは目的語だからね

58
デフォルトの名無しさん[sage]   投稿日:2016/01/09 19:25:35  ID:oGyr6/WF.net(4)
昔ながらのfunc( obj ); 形式だと、オブジェクトを主語と考える人はいないだろうし
obj.func(); は↑が変形したものにすぎないから同じ理屈だよね
しかも時期C++ではfunc( obj )でもobj.func()でもどちらの形式でも呼び出せるようにするって
C++の超偉い人がやる気満々だし、見た目は最早重要ではないよね

普通に考えると、主語はコンピュータや処理系だね
プログラミングを全然知らない人でも、主語は誰?って聞いたらコンピュータって答えるだろうね

何するにしても、結局実行するのはコンピュータだからね
これが全く現実世界でおこっている物理現象なのに、あえてオブジェクトを主語という風に
ひねくれた別な観点で考え直す必要は無いね

現実世界に合わせて、主語をコンピュータ、オブジェクトを目的語、関数を述語、と捉えると
それで多態や継承が出来なくなるっつーんなら困るけど、そういうわけではないからね
だったら現実世界で起こっていることに合わせて考えたほうが自然だね
コメント4件

59
デフォルトの名無しさん[sage]   投稿日:2016/01/09 19:39:23  ID:OrUjMMRy.net(2)
メッセージングのオブジェクト指向の言い方で言うと、
主語はメッセージのレシーバであり、文の残りはメッセージだ

60
デフォルトの名無しさん[sage]   投稿日:2016/01/09 23:40:46  ID:3kY/wzgi.net(4)
>58 チンパンジーのアイちゃんかな?

61
デフォルトの名無しさん[sage]   投稿日:2016/01/09 23:55:42  ID:CpCNnIMM.net(2)
>58
x.sin() では x がオブジェクトで、sinというメソッド(もしくはメッセージ?)を処理していて、
sin(x) では sin がオブジェクトで、xという入力を処理している。

どちらかの方がよりオブジェクト指向的だという序列なんかない。
数学関数それ自体をオブジェクトと認めようとしない思想(?)の根源は何なんだ?

62
デフォルトの名無しさん[]   投稿日:2016/01/10 00:13:34  ID:MD/fGeTk.net(2)
ポーランド記法嫌いそう

63
デフォルトの名無しさん[sage]   投稿日:2016/01/10 00:21:12  ID:sdj7zt3O.net(8)
演算子前置のポーランド記法は嫌いだなぁ
存在する意味がわからないレベルで嫌い。
演算子後置の逆ポーランドじゃないとね。

64
デフォルトの名無しさん[sage]   投稿日:2016/01/10 00:34:49  ID:0XznusY4.net(2)
> 存在する意味がわからないレベルで嫌い。

なんで?

> 演算子後置の逆ポーランドじゃないとね。

なんで?

65
デフォルトの名無しさん[sage]   投稿日:2016/01/10 00:40:13  ID:hoksOuY6.net(2)
Add 3 to 5, then multiple it by 2.

66
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:09:07  ID:UgGJRpwk.net(2)
逆ポーランドの方が実装しやすいと思う。
人それぞれの範疇だが。

67
デフォルトの名無しさん[]   投稿日:2016/01/10 01:11:54  ID:MiN6/z6v.net(2)
>逆ポーランドの方が実装しやすいと思う。

意味がわからん。
構文木作るのに一番前と後でなんか変わるか?
AST作らずにそのまま逐次実行するならスタックに
積むだけでいい逆ポーランドの方がいいかもしれんが

68
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:16:08  ID:+l1yiqNW.net(8)
x.sin() では x がオブジェクトで、sinというメソッド(もしくはメッセージ?)を処理していて、
sin(x) では sin がオブジェクトで、xという入力を処理している。

どちらかの方がよりオブジェクト指向的だという序列なんかない。
数学関数それ自体をオブジェクトと認めようとしない思想(?)の根源は何なんだ?

違うよな
どちらがオブジェクト志向的かといえばx.sin()でしょ
xというオブジェクトにsin()というメソッドが属しているという考えなんだから
sin()は関数に対してxというオブジェクト、あるいは単にデータを引き渡しているだけ

後者は明らかに関数的な考え方、動詞優位
コメント2件

69
デフォルトの名無しさん[]   投稿日:2016/01/10 01:27:11  ID:hZikTLMs.net(14)
関数へのエイリアスのようなメソッドはドットで繋ぐのでなく、
別の文字にした方がいいよな。

70
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:29:17  ID:sdj7zt3O.net(8)
釣りじゃなくて単に本当にあたまおかしいのかな?
Xはデータであって演算ではない。Xは演算しない。
Xをオブジェクトとして扱った場合、その操作として実装されるメソッドは
データのゲットセットなど内部状態を隠蔽するためのメソッドと
可変不変などのデータ状態をあらわすメソッド。

まだお前の脳内じゃおまえがコーヒーを飲むんじゃなくて
コーヒーが勝手に口に飛び込んで来てんのか。

71
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:29:19  ID:Ch7U5rc3.net(2)
x.sin()は手続き言語的だと思うけどなあ
もちろんsin(x)も。
オブジェクト指向ならメッセージを送るような記述の方が自然では

72
デフォルトの名無しさん[]   投稿日:2016/01/10 01:52:12  ID:hZikTLMs.net(14)
現実世界をオブジェクト指向に当てはめるやついるけど馬鹿だよなー

コーヒーが勝手に口まで運ばれてくる機能をコーヒにつけただけじゃんw
ついでにコーヒーがしゃべる機能もつけたよ。

問題がないからそういう設計にしたんですよ
コメント2件

73
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:53:23  ID:+l1yiqNW.net(8)
どちらがより汎化されているかではなく
具体例で語ろうとする人間は、プログラムを実装したことがないのでは?

具体的な手続きによる具体的な文字通りのプログラムを書きたいなら
Cでかいてどうぞ

74
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:59:31  ID:+l1yiqNW.net(8)
オブジェクト指向だろうと関数志向だろうとやってることは変わらない

オブジェクトはメソッドの第一引数でしかない

コーヒーを飲むという行為を書くためには手続き的に書くしか無い
コーヒーが俺の口の中にあるという結果を宣言的に書きたいのに
その手続きを丹念に描写したいならそうすればいい

I.drink(coffee)と書けばいいんだよ
I.drink(coffee)とyou.drink(coffee)は飲み方が違う!というのならそう実装すればよい

モデリングとは物事を単純化する行為、汎化する行為であって具象化する行為ではない
Iとyouの違いがモデルのキーポイントなら、Iとyouという(メソッドの第一引数)をパラメータに加えればいいし
そうでないなら含まないほうがモデルがシンプルに保たれる

数学ができない自称モデラーはプログラムを手続き的に書いたらいいんだよ
コメント4件

75
デフォルトの名無しさん[]   投稿日:2016/01/10 02:00:42  ID:hZikTLMs.net(14)
特化させたいのに汎化する必要ある?
狭い世界で使うなら特化させていい。
広い世界で使うなら汎化させる。

それだけ。

76
デフォルトの名無しさん[]   投稿日:2016/01/10 02:03:41  ID:hZikTLMs.net(14)
汎化と特化させるもんを決めるのが設計な

77
デフォルトの名無しさん[]   投稿日:2016/01/10 02:42:12  ID:JhCLPk/2.net(12)
>74
言ってることはわかるがコーヒーを主語に対象を汎化なら
coffee1.drunkBy(me);
coffee2.drunkBy(you);
だろ

78
デフォルトの名無しさん[]   投稿日:2016/01/10 03:01:38  ID:JhCLPk/2.net(12)
>72
普通モデリングなんて想定される実装の多さや効率の問題で変えるものだからね
感性にまかせる初心者ほど文脈や抽象に拘って依存性の上下を無視するよ

79
デフォルトの名無しさん[sage]   投稿日:2016/01/10 04:22:46  ID:sdj7zt3O.net(8)
アクセル→エンジン→ギア→タイヤじゃなくて
タイヤ.回転で自動車設計してそうだなおまえら。
コメント4件

80
デフォルトの名無しさん[]   投稿日:2016/01/10 05:12:47  ID:JhCLPk/2.net(12)
>79
そうやって現実の構造を想定している時点でもう駄目なんだよ
コメント2件

81
デフォルトの名無しさん[]   投稿日:2016/01/10 05:20:12  ID:JhCLPk/2.net(12)
ちうかこれオブジェクトが目的語とか言ってる人か?
英語とプログラミングのobject混同とかとてもまともとは思えないよ

82
デフォルトの名無しさん[sage]   投稿日:2016/01/10 05:34:14  ID:97NQyWJD.net(2)
>74
JavaScriptだと実際foo.barは第0番目の引数を指定するための糖衣構文でしか無い
オブジェクト指向は別にそんな大したものでも、手続き型と相容れないものでもない
指向とは言うが実際の所スタイルの一部だね
コメント2件

83
デフォルトの名無しさん[sage]   投稿日:2016/01/10 08:13:48  ID:86WjwACC.net(2)
いいえ、自転車.操業で設計しています

84
デフォルトの名無しさん[sage]   投稿日:2016/01/10 08:49:55  ID:jS8+hJYw.net(10)
>82
そういう嘘をまき散らさないでもらいたいなあ。
毛の人といい、技術の普及は嘘との戦いだな。
オブジェクト指向は嘘つきが多すぎた。
コメント2件

85
デフォルトの名無しさん[sage]   投稿日:2016/01/10 09:36:41  ID:AcnVMiQc.net(12)
>68
いいえ。
sin(x) と書いたときのsinは十分オブジェクトに見えるでしょ。
xとsinは違う階層(空間)に属するモノだけど、後者の方が階層としては高い。
x.sin()と書くと、あるオブジェクトが自分より高い階層のオブジェクトを所有しているように見えてしまう。
これは俺にとっては不自然なので好きになれない。
コメント2件

86
デフォルトの名無しさん[]   投稿日:2016/01/10 09:42:21  ID:KeJgEHCD.net(6)
オブジェクト指向は手続き型と直行する概念だと理解してないのが何人かいるな

87
デフォルトの名無しさん[sage]   投稿日:2016/01/10 09:44:41  ID:sdj7zt3O.net(8)
>80
"現実の構造を想定しちゃダメ"て
おまえの作るシステムはどんな現実離れした
脳内妄想ベースなんだよ。
コメント4件

88
デフォルトの名無しさん[]   投稿日:2016/01/10 09:52:56  ID:Itquv6VW.net(8)
sinは関数だろね。
テーブルを持つためにクラスを使わなければならない言語があったとしても、
極力、ユーザーにとって関数に見えるように実装するべきじゃないのかな。

89
デフォルトの名無しさん[sage]   投稿日:2016/01/10 10:08:13  ID:jS8+hJYw.net(10)
関数がオブジェクトじゃ何か困ることでも?

90
デフォルトの名無しさん[sage]   投稿日:2016/01/10 10:09:40  ID:jS8+hJYw.net(10)
>79
君が設計する自動車ではエンジンブレーキが効かないようだな。

91
デフォルトの名無しさん[]   投稿日:2016/01/10 10:29:26  ID:hZikTLMs.net(14)
ブレーキなんてのは外部から
ベクトルの力を操作するんだから
後付けで全然構わないんだが。
コメント2件

92
デフォルトの名無しさん[sage]   投稿日:2016/01/10 10:41:27  ID:AcnVMiQc.net(12)
関数を手続きだと思ってるならそれでいいけど、名前が関数ってだけで数学関数をそういうカテゴリーのものとするのは不適当でしょうね。
コメント2件

93
デフォルトの名無しさん[sage]   投稿日:2016/01/10 11:09:22  ID:hXY04te0.net(2)
クロージャーって、関数なの?オブジェクトなの?
rubyだとProcのインスタンスでしかないよね

94
デフォルトの名無しさん[sage]   投稿日:2016/01/10 12:33:30  ID:jS8+hJYw.net(10)
>91
わからないなら無理に口を挟まないほうがいいよ。

95
デフォルトの名無しさん[]   投稿日:2016/01/10 13:26:28  ID:Itquv6VW.net(8)
>92
関数が状態を持つべきかどうか考えると自ずと答えが出るのではないだろうか。
コメント2件

96
デフォルトの名無しさん[sage]   投稿日:2016/01/10 13:37:48  ID:UyzGSaeg.net(4)
sin(x)は関数の値であって関数ではないよな。 関数は∀x∈double.sin(x)のことだよな。

97
デフォルトの名無しさん[sage]   投稿日:2016/01/10 13:51:03  ID:ainPuYsM.net(14)
>85
実装がどうあれ、OOPではメソッドはオブジェクトに属するものとして考えるから、
x.sin(value)の表記は不自然じゃ無いだろ。sinはオブジェクトxに属している。
コメント6件

98
デフォルトの名無しさん[]   投稿日:2016/01/10 14:13:06  ID:Itquv6VW.net(8)
>97
それは不自然な考え方じゃないかな。
原点に立ち返ってみると、オブジェクト志向とはコード再利用に際して
コンポーネント化の要求から発生したもの。
現実に存在する物のように、ディスプレイ上のウィンドウに四角形を
描画しろとメッセージを送るというようなシンプルなものだ。
この場合、四角形自体がオブジェクトであることは問題が無いように感じる。
これは、四角形が状態を保持しているからかもしれない。
一方、数値に対してsinを要求するのは突拍子もないように感じる。
これは、数値を日常いたるところで使用していて、数値がメッセージを受け取る性質を
もたないと良く知ってるからではないだろうか。
あるいは計算機オブジェクトに対してsinを要求するなら不自然に感じないのかもしれない。
どうだろうか?

99
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:14:35  ID:CDx7UjTI.net(4)
この種のくそ議論って恣意的な答えしかないんだから、
議論するだけ無駄なんだけどねぇ。

100
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:15:24  ID:AcnVMiQc.net(12)
>95
状態をもつかどうかは実装しだい。
関数を初期化するとき係数のセットを与えるとかあると思う。

関数がグループとしてまとまって環をなすとか

101
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:17:25  ID:ainPuYsM.net(14)
つか、sin(x)ってなんやねんw
引数無しのメソッドの話か? それならsinは例として不適当だ。

sinを例にするなら、x.sin(value) か、sin(x, value) だろ。
コメント2件

102
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:17:26  ID:AcnVMiQc.net(12)
>97
そりゃメソッドはオブジェクトに属するだろ。
メソッドとして位置付けるのが適切かどうかの議論をしてるんだよ。
コメント2件

103
デフォルトの名無しさん[]   投稿日:2016/01/10 14:17:31  ID:Itquv6VW.net(8)
こういうシンプルな考えに基づくと、四角形と三角形は形状クラスから
派生すると思われる。
しかし、四角形オブジェクトと三角形オブジェクトの合成メソッドは、形状クラスあるいは
その派生クラスにあってはならないように感じる。
それは形状合成器クラスに、あるいは単純な関数であった方が良いように感じる。

104
デフォルトの名無しさん[]   投稿日:2016/01/10 14:21:04  ID:JhCLPk/2.net(12)
>87
物理的構造物とは違うんだよ
それすら理解できないならもう向いてないとしか

105
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:21:57  ID:UyzGSaeg.net(4)
属すじゃなくて依存するだと思うが。
コメント2件

106
デフォルトの名無しさん[]   投稿日:2016/01/10 14:25:29  ID:JhCLPk/2.net(12)
例えばゲームでキャラクターが特定のアイテムを使用するモデル
キャラ.使う(アイテム)はもらうアイテムによってメソッドの動作を変える必要があるが
設計としてはアイテム.適用(キャラ)のが遥かに取り回しやすい
なのにあえて前者のクソ設計を選ぶのが>87のようなオバカさん

107
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:26:22  ID:ainPuYsM.net(14)
>102
それならOOPの議論じゃないな。

>105
いや、属する/所有するという概念の方が適当だと思う。(実装は違うが)
実際クラスを書くときそう書くだろ。

108
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:44:22  ID:AcnVMiQc.net(12)
>101
現実の姿を模すという意味だとsinなどは連想配列であって、sin(x)という書き方はそのまんまだよね。
実装においては計算手続きだろうけど。

109
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:48:45  ID:jS8+hJYw.net(10)
Smalltalkerが引き上げたらもう初心者しか残ってないのかよ

110
デフォルトの名無しさん[sage]   投稿日:2016/01/10 15:22:03  ID:yvIOv1as.net(4)
そもそもクラスだってオブジェクト指向とは直接関係ない
>84
嘘ではなく現実だ

111
デフォルトの名無しさん[sage]   投稿日:2016/01/10 15:23:27  ID:yvIOv1as.net(4)
美少女が云々言うのも一般的なクラスベースは融通が効かないねという話であって
オブジェクト指向とは直接関係ないし
コメント2件

112
デフォルトの名無しさん[]   投稿日:2016/01/10 15:44:15  ID:KeJgEHCD.net(6)
>111
ほう、それならウンコをしない美少女をオブジェクト指向で設計して貰おうか
コメント4件

113
デフォルトの名無しさん[sage]   投稿日:2016/01/10 15:50:56  ID:AcnVMiQc.net(12)
>97
見逃したいたが、x.sin(value)の value って何だい?
コメント2件

114
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:06:27  ID:ainPuYsM.net(14)
>113
引数だよ。
クラスxのメソッドsinに渡す引数。
俺はそういう話をしてると思ったから。

115
デフォルトの名無しさん[]   投稿日:2016/01/10 16:18:07  ID:hZikTLMs.net(14)
xって中身は例えばfloatのデータ自身だぞ?
だから、引数は必要ないんだぞ?
コメント2件

116
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:26:17  ID:ainPuYsM.net(14)
>115
理解した。
それなら、x.sin() なんて形が出てくる余地は無いよな。

117
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:29:21  ID:CDx7UjTI.net(4)
一般に sin に必要な引数は、 pi/2 とかの実数(もしくは複素数) かな。
あとはいくつまでの級数和をとるとか何桁まで計算するとかが引数になるんじゃないかね。
その辺をあいまいなまま value とか x がクラスだの引数だの言ってることに何か意味があると思ってんのかね。
コメント2件

118
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:34:25  ID:ainPuYsM.net(14)
>117
いや、sinの引数がオブジェクトの場合はあるよ。
実数や10進型をクラスで表現したりするし、俺も実際やる。
xがそういうオブジェクトなら、sin(x)でいいし、x.sin()はおかしい。
まあ絶対におかしいとか無理ってわけじゃないけどなw

119
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:54:55  ID:yIre7PYR.net(4)
新しいC++ではsin(x)でもx.sin()でも、どちらの方法でも統一的に呼び出せるようになる予定だから
こんな議論は全く意味ないんだよ?

呼び出す側からしたら、sinがメンバ関数だろうが外部関数だろうが、何であれ、知ったことではないからね
気にしなければならないのは実装する側だけ
だからどちらの方法でも呼び出せるようになる、らしい

どちらの方法でも呼び出せるんだから、喧嘩する必要ないし、気にする必要ないよね

120
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:57:47  ID:yIre7PYR.net(4)
どちらの方法でも呼び出せるんだから
どちらの方が、よりオブジェクト指向的か、考えるのは意味がないんだよ
等しいわけ、等価と考えてよい
見た目が違うだけ
大した問題じゃない

121
デフォルトの名無しさん[sage]   投稿日:2016/01/10 17:00:24  ID:ainPuYsM.net(14)
なんか違うような気がするなw

122
デフォルトの名無しさん[]   投稿日:2016/01/10 17:07:10  ID:fbwGqbCo.net(8)
こんなにややこしいプログラムがオブジェクト指向を使って
こんなに簡潔になりましたって事例が欲しい
コメント2件

123
デフォルトの名無しさん[sage]   投稿日:2016/01/10 17:12:10  ID:1042xGua.net(2)
>112
思うんだけど、
うんkをしないというのが、
意思を持ってひたすら我慢して(人の目がある場所では)しないのか、
それとも腸内の美少女菌のおかげでする必要が無いのか、
もしくは他の何かなのかによってイメージが変わってくると思う。
でもしないにしろする必要がないにしろ、排便メソッド自体は備わっててもなんら問題ないと思う。
逆に、腸内やなんかの問題を解決せずに、排便メソッドだけ外して他を流用するということは、
オブジェクト指向的であろうがなかろうが不可能だと思う。
それこそ亞人として設計しなおして全ての手続やメソッドを別に用意することが妥当かもしれない。
だから結論を言うと、この例はそもそも良くないと思う。

124
デフォルトの名無しさん[sage]   投稿日:2016/01/10 17:51:06  ID:QPFpTdMb.net(2)
>122
サイズを持っていてくれるのですら俺は嬉しいと思う
文字列や配列を扱うとき
int string::size() {return strlen(data);} // 数える関数を使うって例
↑こーいうのじゃなくて
int string::size() {return end - begin;} // 簡単な計算(ポインタの差分)で返す
int string::size() {return size;} // 内部でケアしていたprivate変数を返す
こういう実装をしうるのが嬉しい
使うときに
a = s.size * s.size / s.size % s.size
みたいにいっぱい呼び出しても安心
逆に言うとせっかく用意されたsizeメソッドが内部で数えなおしてる場合はつまらないと思う
コメント2件

125
デフォルトの名無しさん[]   投稿日:2016/01/10 19:10:53  ID:fbwGqbCo.net(8)
>124
なるほどねー。

126
デフォルトの名無しさん[]   投稿日:2016/01/10 19:16:06  ID:fbwGqbCo.net(8)
>112
美少女はマーカーインターフェースであり、
美少女として扱うとき排便は隠蔽される。

interface 美少女 {
}

class おっさん implements 美少女 {
 void 排便() {
 }
}
コメント2件

127
デフォルトの名無しさん[sage]   投稿日:2016/01/10 20:20:59  ID:VQDMXfno.net(2)
>126
それは「何もしない」という排便メソッドを持つ
持たない,ではない
コメント2件

128
デフォルトの名無しさん[]   投稿日:2016/01/10 20:34:00  ID:fbwGqbCo.net(8)
>127
何を言うてんの?排便メソッドを持つのはおっさんだよ。

129
デフォルトの名無しさん[]   投稿日:2016/01/10 20:41:36  ID:KeJgEHCD.net(6)
聖水メソッドもないのに美少女とか笑わせんなよw

130
デフォルトの名無しさん[sage]   投稿日:2016/01/10 21:17:46  ID:+l1yiqNW.net(8)
オブジェクト志向の考えだと
大便ableインターフェースを実装するんだろ

131
デフォルトの名無しさん[sage]   投稿日:2016/01/10 21:57:06  ID:Hm2sxH4v.net(2)
美少女クラスを欲する奴が美少女のウンコがついたぱんつを欲しがらないかと考えると
これは要件定義から間違っているような気がしてならない。

132
デフォルトの名無しさん[sage]   投稿日:2016/01/10 22:05:43  ID:zd2SpHtU.net(2)
実装からメソッド設計を考えるより使い方から設計したほうが上手く行くと思う
つまり美少女がうんこ出来るのか、出来ないのかで考えるのでは無く美少女にうんこをさせたいのか、うんこさせたくないのかで考える

133
デフォルトの名無しさん[]   投稿日:2016/01/10 22:12:58  ID:hZikTLMs.net(14)
肛門はコンポーネントとしてアタッチする。
美少女は肛門をインプリメントしていない

134
デフォルトの名無しさん[]   投稿日:2016/01/11 02:57:08  ID:87Jnvcw4.net(2)
あのさ、どんな美少女もウンコするんだけど?
コメント2件

135
デフォルトの名無しさん[sage]   投稿日:2016/01/11 03:08:27  ID:Rwcs8mHW.net(4)
真の美少女は実在しない

136
デフォルトの名無しさん[sage]   投稿日:2016/01/11 03:18:02  ID:4rCdY4Yq.net(2)

137
デフォルトの名無しさん[sage]   投稿日:2016/01/11 04:26:03  ID:3eUcyomA.net(2)

138
デフォルトの名無しさん[sage]   投稿日:2016/01/11 14:41:47  ID:GiqteBDS.net(4)
関数型言語っていい点もあるけど、変更に弱過ぎない?
ちょっと動作を変えるのにかなり見直さないといけない
コメント2件

139
デフォルトの名無しさん[sage]   投稿日:2016/01/11 16:00:11  ID:Rwcs8mHW.net(4)
作りようだね

140
デフォルトの名無しさん[]   投稿日:2016/01/11 17:41:31  ID:d9M93+6h.net(14)
>138
関数型言語を使えば完璧なプログラミングが可能なので後から変更する必要が無い。
コメント2件

141
デフォルトの名無しさん[sage]   投稿日:2016/01/11 17:50:34  ID:KkwWauMD.net(2)
>140
完璧なプログラミングは出来ても
将来の仕様の変化を完璧に予測することは出来ないでしょ?
コメント2件

142
デフォルトの名無しさん[sage]   投稿日:2016/01/11 17:53:14  ID:GiqteBDS.net(4)
仕様変更できないって実用上ヤバくないですか

143
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:03:26  ID:RUBsLBHi.net(2)
オブジェクト指向は細かい修正で済むと手を抜き続けた結果メチャクチャ悲惨なことになる
全て書き直すくらいがちょうどいい

144
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:08:52  ID:hbMmOduf.net(2)
> メチャクチャ悲惨なこと

たとえば?
コメント2件

145
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:13:38  ID:rz35E4wE.net(8)
>144
全て書き直すはめになる

146
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:18:05  ID:V0AQQEoP.net(2)
関数型言語は仕様変更のたびにめちゃくちゃ悲惨なことをしなければならないのか

147
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:31:28  ID:KoUNfQqa.net(2)
言語の問題でなくて作ってる奴が馬鹿なだけでは?

148
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:59:27  ID:A5Rx7ofK.net(2)
ただのリスト操作を関数型と呼んでいる可能性

149
デフォルトの名無しさん[]   投稿日:2016/01/11 19:14:51  ID:d9M93+6h.net(14)
>141
関数型なら完全に未来を予測できる。
コメント2件

150
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:37:40  ID:ugQF1NqL.net(2)
そらすげーわ

151
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:38:18  ID:rz35E4wE.net(8)
>149
そういうのいいから

152
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:43:22  ID:XhrtL63c.net(4)
関数型言語はコンパイルした瞬間全てが完了される。

153
デフォルトの名無しさん[]   投稿日:2016/01/11 19:46:13  ID:d9M93+6h.net(14)
コンパイルが通ればバグが無いことを保証される。
コメント2件

154
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:47:17  ID:rz35E4wE.net(8)
>153
それもいいから
コメント2件

155
デフォルトの名無しさん[]   投稿日:2016/01/11 19:49:39  ID:d9M93+6h.net(14)
>154
お前関数型馬鹿にしてんの?
コメント2件

156
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:53:45  ID:XhrtL63c.net(4)
関数型言語にとって型とはプログラムの設計図なのである。

157
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:55:09  ID:rz35E4wE.net(8)
>155
関数型じゃなくてお前を馬鹿にしてるんだよw
コメント2件

158
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:55:15  ID:eiYfk44d.net(4)
1000近くなった雰囲気だな

159
デフォルトの名無しさん[]   投稿日:2016/01/11 20:02:18  ID:d9M93+6h.net(14)
ヨハネの手紙にも関数型が登場する。

160
デフォルトの名無しさん[sage]   投稿日:2016/01/11 20:05:53  ID:eiYfk44d.net(4)
鶏が鳴く前に三度、関数型など知らないと言う

161
デフォルトの名無しさん[]   投稿日:2016/01/11 20:09:36  ID:d9M93+6h.net(14)
マタイの福音書、関数型が世界を平和に導く。

162
デフォルトの名無しさん[]   投稿日:2016/01/11 20:40:32  ID:d9M93+6h.net(14)
>157
ああそう、なら良いんだ。
関数型馬鹿にしたら唐沢弁護士に頼んで勝訴しちゃうからね?

163
デフォルトの名無しさん[]   投稿日:2016/01/11 22:15:27  ID:qSBpiVnS.net(2)
関数型に不可能はない。関数型は神にのみ扱える至高の言語
関数型を疑ってはならない。汝の実力を疑え

164
デフォルトの名無しさん[sage]   投稿日:2016/01/11 22:48:28  ID:CMbhymom.net(2)
毛の壁の臭いがするな。

165
デフォルトの名無しさん[sage]   投稿日:2016/01/12 01:32:19  ID:SYPJaqWI.net(2)
広く使われてて実用的な言語は多かれ少なかれマルチパラダイム
関数型っていうのも結局は作者がそう言ってるかどうかの線引でしか無い
理想的な関数型gwンゴを想定してなにか言うのはあまり意味が無い

166
デフォルトの名無しさん[sage]   投稿日:2016/01/12 01:34:43  ID:uMvEa0J7.net(4)
関数型ンゴwwwwwwwwwwwwwwwwwwwwwwwwwww

167
デフォルトの名無しさん[sage]   投稿日:2016/01/12 08:42:46  ID:V5bMIqIZ.net(2)
関数型グワンゴ

168
デフォルトの名無しさん[sage]   投稿日:2016/01/12 09:12:48  ID:/ZqCERvo.net(2)
今時は大学とかでも言語比較とか講義しているのかな。

169
デフォルトの名無しさん[sage]   投稿日:2016/01/12 19:38:37  ID:7kdSKUGZ.net(2)
lisp は関数型ですか?

170
デフォルトの名無しさん[sage]   投稿日:2016/01/12 22:56:29  ID:uMvEa0J7.net(4)
いいえ、変態型です

171
デフォルトの名無しさん[sage]   投稿日:2016/01/14 06:56:24  ID:/XPEQoow.net(2)

172
デフォルトの名無しさん[sage]   投稿日:2016/01/16 23:50:44  ID:vrXiOUCa.net(2)
美少女は天使クラスに属している。
排便しない。

173
デフォルトの名無しさん[sage]   投稿日:2016/01/20 11:46:14  ID:HskUHurd.net(2)
「オブジェクト指向プログラミングの例を挙げましょう。2000年代には、オブジェクト指向プログラミングは、企業向けプログラミングにおける基盤的技術の地位を確立したと思われていました。
しかし今では、私を含めて多くの人が、この潮流は20年間に渡って本流から逸れていたものであり、そのほとんどが間違いだったと考えています。」

コーディングを学ぶこと、それはあなたが考えるよりも大変です
http://postd.cc/learn-to-code-its-harder-than-you-think/
コメント4件

174
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:33:48  ID:CF7z5V/R.net(6)
>173
記事のベースはイギリスのプログラマ教育のあり方と社会地位の話で
"大学で教えていることが現場で役に立たない"ことと
"高級技術者としてのプログラマの社会的地位の低さ"について
そして、前者関連の話で「教えるべき技術は次々と移り変わる」例として
オブジェクト指向を挙げてみてるが、筆者があまり理解してる感じではないなぁ…
20年前なら単語そのまま「構造化プログラミング」に置き換えて書かれた
単なる流行りワードの扱いだわな。

175
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:39:59  ID:CF7z5V/R.net(6)
また、書かれている内容のとおりイギリスのプログラミング技術のほとんどが
学校教育ではなく「独学」で学ばねばならないもので、その上でガチで
『しかし今では、私を含めて多くの人が、この潮流は20年間に渡って
本流から逸れていたものであり、そのほとんどが間違いだったと考えています。』
と、思ってるとしたら本当にイギリスのプログラミング業界界隈の危機は
深刻なものだと考えざるをえない…

176
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:41:46  ID:uqyd4S+p.net(2)
日本も似たようなもんじゃないの? 違うの?
コメント2件

177
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:58:06  ID:CF7z5V/R.net(6)
>176
>173のリンクを読んだ感じではイギリスではどうも国を挙げて
学校や社会人教育で「無償で国民にプログラミングを学ばせる」事業をやってたっぽい
で、たぶん日本でやってもそうなるだろうけれど
みんな合格するようなレベルの簡単な内容なので
わざわざ教える意味がない的な事態になったっぽい?

大学の情報学科だったら日本でもまぁ直でコーディングの役には立たんが
逆に大学レベルの情報工学理論面を広く教えるから
オブジェクト指向なんて〜って池沼はでないだろう(皮肉

178
デフォルトの名無しさん[sage]   投稿日:2016/01/20 21:59:54  ID:ftWUH7Q0.net(2)
オブジェクト指向は思考パターンを破壊されるよ

179
デフォルトの名無しさん[sage]   投稿日:2016/01/20 22:38:38  ID:KK1TC/Qj.net(2)
コードの奇麗さはなになに指向とかとはいつだって無相関だよ。
コメント4件

180
デフォルトの名無しさん[sage]   投稿日:2016/01/20 23:28:45  ID:lyH/JRhU.net(2)
>179
その評価はとても健全

181
デフォルトの名無しさん[sage]   投稿日:2016/01/21 12:15:51  ID:pkb4zgJk.net(2)
>179
「奇麗」なコードってどんなの?
コメント2件

182
デフォルトの名無しさん[sage]   投稿日:2016/01/21 16:38:21  ID:OmENn3Ct.net(2)
>181
測定するツールがある。

183
デフォルトの名無しさん[sage]   投稿日:2016/01/22 08:41:08  ID:jWLszG8x.net(2)
それはツールに設定したルールを守ってるかの判別器でしか無いな。
本当に一般的に綺麗なコードとやらを図るには、
統計を集めて機械学習でもさせる必要があるだろう。

もしくは綺麗というのが、編集しやすいということなら
最低きちんとした理論と根拠を元に基準を決めるべき。
今の基準の多くはただ作者の信念だったり、狭い範囲での多数はを取っているだけ。
コメント2件

184
デフォルトの名無しさん[sage]   投稿日:2016/01/22 10:24:46  ID:BOI0ua8w.net(2)
>183
コードコンプリートでもよんだら?

185
デフォルトの名無しさん[sage]   投稿日:2016/01/22 12:53:49  ID:NE1Xg/XG.net(2)
コードとは言語だから、綺麗な英語と置き換えてみればわかる。 学校で教えられるのは全部綺麗な英語だから実際の外人の喋ってることなんか一つも役に立たない。 汚いコードを書いてどんな汚いコードも読めるようになるのが大切。
コメント4件

186
デフォルトの名無しさん[sage]   投稿日:2016/01/22 13:21:50  ID:p0qaIBjS.net(6)
実際に効果があるかそっちのけで、主観的な綺麗さばっかり気にしてルールを
固定化しようとするやつなんなの?
どことなく自閉症的で気味が悪い。
コメント2件

187
デフォルトの名無しさん[sage]   投稿日:2016/01/22 13:23:33  ID:p0qaIBjS.net(6)
あ、このスレの発言のことじゃないです。リアルの話。

188
デフォルトの名無しさん[sage]   投稿日:2016/01/22 14:33:54  ID:IejezU7v.net(2)
コードコンプリートを書いたのはマイクロソフト()だぞ
林檎がビューティパーフェクトコードを書くまで待て

189
デフォルトの名無しさん[sage]   投稿日:2016/01/22 22:02:12  ID:SlI41mNc.net(2)
>185
こういう人が職場にいたらきついお

190
デフォルトの名無しさん[sage]   投稿日:2016/01/22 22:17:23  ID:jXHHn5ty.net(2)
>186
ルールなんて誰でもわかってると思うけどな。

・重複する処理はかかない。
・同じことに関する値を重複して定義しない。
・計算で求められるものは計算でだす。
・ある処理に関するコードは一箇所にまとめる。
・条件分岐を減らす。
・ループを減らす。
・設計とファイル名やディレクトリ構造を一致させる。
・役割毎に関数やクラスを分ける
・関数やクラスはなるべく短くする
・テストしにくい所を減らす
・適切な名前(グローバルに近いほど長く、ローカルに近いほど簡単な名前)をつける。
・十分にテストされた信頼性が高いライブラリを使用する。独自実装しない。
・コーディングスタイルに適合すること
・メトリクス(複雑度等)が悪いものは認めない

これらは主観じゃないので、このルールにしたがえば、
誰でも良い方がどちらかわかる。
コメント2件

191
デフォルトの名無しさん[sage]   投稿日:2016/01/22 23:23:12  ID:p0qaIBjS.net(6)
>190
それらは効果があるとわかるものだから問題ないよ。

192
デフォルトの名無しさん[sage]   投稿日:2016/01/23 03:52:18  ID:qPctTKOa.net(2)
Smalltalker達がいなくなったら途端に初心者スレ化w

193
デフォルトの名無しさん[sage]   投稿日:2016/01/23 14:01:47  ID:xYcOlVg1.net(2)
Smalltalkの人はボコボコにされて
Smalltalkに自信を失って帰っちゃったからな

実際全然使われていない現実なわけだから
何を言っても説得力皆無だし机上の空論になるし
こいつマゾと思って皆で玩具にしたが
言うほどマゾじゃなかったのかもね

194
デフォルトの名無しさん[sage]   投稿日:2016/01/23 19:33:03  ID:qHL6kF89.net(4)
7 minutes of Pharo Smalltalk for Rubyists
https://www.youtube.com/watch?v=HOuZyOKa91o

Pharo - Welcome to Pharo!
http://pharo.org/

195
デフォルトの名無しさん[sage]   投稿日:2016/01/23 19:36:10  ID:qHL6kF89.net(4)

196
デフォルトの名無しさん[sage]   投稿日:2016/01/23 22:09:12  ID:Sj7C6OsA.net(2)

197
デフォルトの名無しさん[sage]   投稿日:2016/01/30 19:31:26  ID:ZdxrrRsd.net(2)
>185
どんな汚いコードも読めることは大切だが
汚いコードは書くなよ…

まあその汚さをある程度許されるようになるオブジェクト指向は嫌いじゃない
コメント2件

198
デフォルトの名無しさん[sage]   投稿日:2016/02/02 15:15:07  ID:Kj5oXuy8.net(2)
>197
いや、それでも人間クラスに
排便メソッドは必要だ。
コメント2件

199
デフォルトの名無しさん[sage]   投稿日:2016/02/02 21:15:38  ID:7zvF4Jbc.net(2)
刈羽 かりわ JR越後線

200
デフォルトの名無しさん[sage]   投稿日:2016/02/03 00:10:39  ID:JLgoV6RT.net(2)
>198
そんな汚いコード書くと人間クラスを継承した美少女クラスで不都合が生じる
コメント6件

201
デフォルトの名無しさん[sage]   投稿日:2016/02/03 08:41:03  ID:LaxmbkTJ.net(6)
>200
だから美少女クラスは天使クラスを継承するのだと何度説明すれば...

202
デフォルトの名無しさん[sage]   投稿日:2016/02/03 08:41:21  ID:LaxmbkTJ.net(6)
>200
だから美少女クラスは天使クラスを継承するのだと何度説明すれば...

203
デフォルトの名無しさん[sage]   投稿日:2016/02/03 08:41:50  ID:LaxmbkTJ.net(6)
>200
だから美少女クラスは天使クラスを継承するのだと何度説明すれば...

204
デフォルトの名無しさん[sage]   投稿日:2016/02/03 08:42:43  ID:v0iZc+aq.net(2)
2回連投はよくみるけど3回は珍しいw

205
デフォルトの名無しさん[]   投稿日:2016/02/03 08:57:53  ID:ffzzO4R/.net(2)
あのさ…… どんな美少女もウンコするんだけど?

206
デフォルトの名無しさん[sage]   投稿日:2016/02/03 12:29:23  ID:8IxY+gWE.net(2)
人間クラスを継承せずに、
必要に応じて肛門を持たせればいいのでは?

この問題は、設計を誤ると修整が容易ではないと言ってるの?
論点は何?
コメント2件

207
デフォルトの名無しさん[sage]   投稿日:2016/02/03 23:54:09  ID:NwkI7iYf.net(2)
インスタンス化もせずにスレたてとな?

208
デフォルトの名無しさん[sage]   投稿日:2016/02/04 01:07:49  ID:K1JlKV3Z.net(2)
>206
メンバーの種類を制限したり、メンバー間に何らかの制約を入れたクラスが欲しいときの
ベストプラクティスはっていう話かい?
言語によるけれど c++ のテンプレート使った方法が「Modern C++ Design」に書いてあった気はする。
有用かどうかは知らん。

209
デフォルトの名無しさん[sage]   投稿日:2016/02/04 21:35:19  ID:RsO5DH3N.net(2)
天使クラスを継承するともれなくおちんちんがついてくるぞ

210
デフォルトの名無しさん[sage]   投稿日:2016/02/04 23:19:55  ID:NzupaiZw.net(2)
滑ったな
どうすんのこれ

教えてよ
今すぐあんたが教えてよ

211
デフォルトの名無しさん[sage]   投稿日:2016/02/04 23:57:46  ID:+xOonDYt.net(2)
この板にいたなら知ってる人も多いだろうけど
このスレタイで建てる前に延々「オブジェクト指向は〜」ってスレ建てては
毎回、議論についてけなくなると「美少女クラスはうんこしない」みたいなこと書いて
荒らし逃げしてんだよこいつは。
んで、またそれ始めたから知ってる人々がサーッと逃げた。
コメント2件

212
デフォルトの名無しさん[sage]   投稿日:2016/02/05 01:20:03  ID:tLv00hAm.net(2)
そんな糞みたいな議論に持ってがれる時点でオブジェクト指向って切り口は何か問題があるんだろう。
もう少しバズワードと距離とれるスタンスが必要だったんじゃないのかね。
コメント2件

213
デフォルトの名無しさん[sage]   投稿日:2016/02/05 10:03:42  ID:BBqIJr5G.net(2)
継承とオブジェクト指向は直行してるんだけれどね

214
デフォルトの名無しさん[sage]   投稿日:2016/02/05 11:35:17  ID:oOuE6OCl.net(2)
美少女の件は、キモオタクラスからは美少女の排便参照不可にすれば解決。
また、キモオタクラスからは他のどの処理を呼んだ場合にもキモ例外が発生することにすれば万全。

215
デフォルトの名無しさん[sage]   投稿日:2016/02/05 18:19:15  ID:PpryQyj4.net(4)
>212
美少女クラスはうんこしない(議論)

216
デフォルトの名無しさん[sage]   投稿日:2016/02/05 18:21:10  ID:iF+JFr5E.net(2)
排便量を0に設定すればいいだけだろ
コメント2件

217
デフォルトの名無しさん[sage]   投稿日:2016/02/05 19:07:26  ID:PpryQyj4.net(4)
排便量を(オブジェクト指向について僕ができる最大の議論)

218
デフォルトの名無しさん[sage]   投稿日:2016/02/06 18:12:26  ID:T0MFScki.net(2)
>216
排便メソッドの引数にいちいち排便量足すのかよ…

219
デフォルトの名無しさん[]   投稿日:2016/02/06 22:09:32  ID:64Pydz+a.net(2)
排便量は流石にインスタンス変数で管理するだろ
トイレに行って半分だけ出すとかいうマニアックな機能をつけたいならともかく

220
デフォルトの名無しさん[sage]   投稿日:2016/02/07 00:09:19  ID:smcac5RE.net(6)
get_unko を仮想関数にして美少女クラスは 0 を返すようにすればよい。

221
デフォルトの名無しさん[]   投稿日:2016/02/07 01:39:26  ID:R4NvrNxp.net(6)
便秘のババアもget_unko()が0を返す件

222
デフォルトの名無しさん[sage]   投稿日:2016/02/07 11:30:22  ID:smcac5RE.net(6)
では君は美少女に何を返して欲しいのかね?

223
デフォルトの名無しさん[sage]   投稿日:2016/02/07 12:40:45  ID:Dv+rVFbe.net(2)
ワンチャン便秘のババアクラスを継承しても美少女クラスは成り立つのではないだろうか

224
デフォルトの名無しさん[]   投稿日:2016/02/07 13:03:58  ID:R4NvrNxp.net(6)
コーラックが欠かせない美少女w

225
デフォルトの名無しさん[sage]   投稿日:2016/02/07 13:35:31  ID:fu54F6yL.net(2)
美少女は便秘じゃない‥

226
デフォルトの名無しさん[sage]   投稿日:2016/02/07 15:37:37  ID:TdnGwusc.net(6)
日本の現場は永続化層が糞すぎてオブジェクトにマッピング出来ない
これじゃまともにOOPは出来ないから関数型でやらざるをえないんだね
別に関数型がOOPより優れてるという事ではなかったんだね
コメント2件

227
デフォルトの名無しさん[sage]   投稿日:2016/02/07 16:37:33  ID:q/UCYgzT.net(2)
>226
Do you 意味?
コメント2件

228
デフォルトの名無しさん[sage]   投稿日:2016/02/07 17:52:18  ID:TdnGwusc.net(6)
>227
OOPが愚かなのではなくDB設計者が愚かだったという事

229
デフォルトの名無しさん[sage]   投稿日:2016/02/07 18:21:09  ID:smcac5RE.net(6)
永続化層が糞でも関数型なら上手く行くならOOPより優れてるってことになるんでは?
コメント2件

230
デフォルトの名無しさん[sage]   投稿日:2016/02/07 18:38:59  ID:AJ8T19vA.net(2)
RDBにオブジェクトをそのまま永続化できないように、
RDBに関数を値として永続化できないんなら同じじゃん

231
デフォルトの名無しさん[sage]   投稿日:2016/02/07 19:08:05  ID:v13MCL4I.net(2)
永続化層に日本と海外で差があると?
コメント2件

232
デフォルトの名無しさん[sage]   投稿日:2016/02/07 19:24:56  ID:TdnGwusc.net(6)
>229
うまくいくからやるというかそうせざるをえないからやる
そして一見うまくいっているように見えるが保守性も拡張性も悪い
製造が進むほど歪みが大きくなり破綻に近付く
OOPなら最後まで破綻しないが永続化層はOOPに譲歩して合わせなければならない
しかし日本ではDB中心のアプローチしか出来ない老害が支配的だからそれが出来ない
OOPが優れているのに足を引っ張る老害のせいでOOPはダメだという風評被害を受けている

233
デフォルトの名無しさん[]   投稿日:2016/02/07 19:35:10  ID:R4NvrNxp.net(6)
>231
便秘が永続化するババアがいるのは日本だけだぞ?知らんかったんか?

234
デフォルトの名無しさん[]   投稿日:2016/02/12 08:39:25  ID:NbTuOgvl.net(2)
このスレもついに終わりか

235
デフォルトの名無しさん[sage]   投稿日:2016/02/12 11:27:46  ID:3qOWj7pc.net(2)
ウンコしない美少女のせい。

236
デフォルトの名無しさん[sage]   投稿日:2016/02/16 21:31:50  ID:utvP1D7N.net(4)
Mutableなオブジェクトは糞

237
デフォルトの名無しさん[sage]   投稿日:2016/02/16 21:34:55  ID:utvP1D7N.net(4)
DBには関係代数という理論的バックボーンが存在するからやり方の是非に真偽をつけられるが
Mutableなオブジェクトを許容するオブジェクト指向にはそれが無い
何でもできるかわりに何でもアリすぐる
コメント4件

238
デフォルトの名無しさん[sage]   投稿日:2016/02/17 01:36:09  ID:quKaVBpr.net(2)
>237
日本語

239
デフォルトの名無しさん[sage]   投稿日:2016/02/17 02:04:23  ID:zhj6/FLZ.net(4)
美少女のこと語ろうよ。

240
デフォルトの名無しさん[sage]   投稿日:2016/02/17 07:33:48  ID:UG2kvZqb.net(2)
>237は日本語としての意味はとらえやすいが

241
デフォルトの名無しさん[sage]   投稿日:2016/02/17 08:52:29  ID:zhj6/FLZ.net(4)
mutable なオブジェクトは糞。
美少女はウンコをしない。

オブジェクトの値が破壊的に変更出来てしまっては、
並列的な処理に容易に分割できないから、
マズイだろってな的話じゃないか?

242
デフォルトの名無しさん[sage]   投稿日:2016/02/17 20:12:53  ID:sobQnjjW.net(4)
例えばC++の入門書で必ずと言って良いほど載ってる複素数クラスComplexだけども、
たいてい代入演算詩(かコピーコンストラクタ)とか定義していやがる

藻前はa+2iに3+4iが代入されるのを見たことがあるのかっていうか、
Complexはもはや複素数ではない何か別の異形のものを表してしまっているのではないか、
コメント2件

243
デフォルトの名無しさん[sage]   投稿日:2016/02/17 20:14:41  ID:sobQnjjW.net(4)
スマンorz;
誤1:詩
正1:子

誤2: a+2i
正2: 1+2i

244
デフォルトの名無しさん[sage]   投稿日:2016/02/17 21:34:07  ID:ZZNKbDIQ.net(2)
1+2i + 3+4i = 4+6i

意外と便利かもしれないww

245
デフォルトの名無しさん[sage]   投稿日:2016/02/17 22:13:27  ID:BpXyDkaJ.net(2)
>242
右辺値に対するoperator = をdeleteすればいいんでしょ?

246
デフォルトの名無しさん[sage]   投稿日:2016/02/17 22:14:08  ID:xErgmETY.net(2)
関数型とかいう産廃はイベントがないから使い物にならない
最近の大規模システムはみんなイベントがないと始まらない

247
デフォルトの名無しさん[sage]   投稿日:2016/02/18 12:36:55  ID:9ZrwZ5jU.net(2)
破壊的うんこが何だって?

248
デフォルトの名無しさん[sage]   投稿日:2016/02/18 15:25:24  ID:eyX5WM+u.net(2)
破壊的激臭は副作用を伴います。

249
デフォルトの名無しさん[sage]   投稿日:2016/02/19 14:34:33  ID:hr949zjY.net(2)
ちょっとだけ期待してスレひらいてみたら美少女のうんこ
λ計算すらないのかよ

250
デフォルトの名無しさん[]   投稿日:2016/02/19 23:39:47  ID:Tb8XgjPy.net(2)
良スレ、age!

251
デフォルトの名無しさん[]   投稿日:2016/02/20 12:33:38  ID:njY71FFO.net(2)
「美少女はうんこしない」という話を「美少女のうんこ」の話だと理解してしまうようなおっちょこちょいが
オブジェクト指向を理解出来るわけがない

252
デフォルトの名無しさん[sage]   投稿日:2016/02/21 00:15:17  ID:Xn8BbX8n.net(2)
unko.suru( bisyoujo );

253
デフォルトの名無しさん[sage]   投稿日:2016/02/21 13:27:24  ID:82b/sWYC.net(2)
うんこが美少女にナニをするのか

254
デフォルトの名無しさん[sage]   投稿日:2016/03/10 04:27:45  ID:+d/NDXY7.net(2)
依存型とか見てみると結局行き着く先は同じなんだなと思うけどどうよ

255
デフォルトの名無しさん[sage]   投稿日:2016/03/11 08:07:36  ID:eLvrEEzR.net(2)
どうしてハスケラってみんなキモいアニオタなの?

256
デフォルトの名無しさん[sage]   投稿日:2016/03/11 11:26:20  ID:Kt9+s/wp.net(2)
美少女はウンコするのかしないのか。
それでみんな行き詰まる。

257
デフォルトの名無しさん[sage]   投稿日:2016/03/27 21:21:44  ID:N7IGtcj3.net(2)
うんこをした時点で美少女ではない
しかし、うんこを我慢している美少女は萌えるのだ

258
デフォルトの名無しさん[]   投稿日:2016/03/27 23:58:39  ID:9N4B8hjZ.net(2)
うんこをしないのにうんこを我慢するわけないだろ
絶対にしないから美少女のうんこには底知れぬ価値があるのだ

259
デフォルトの名無しさん[sage]   投稿日:2016/03/28 00:59:02  ID:oM2XJFW1.net(2)
スコープだったり変数の生存期間を気にしたりってのは関数型だろうとオブジェクト指向だろうと
同じように気にする。
要はまとめ方ってだけの話。

260
デフォルトの名無しさん[sage]   投稿日:2016/03/28 02:53:49  ID:T6p957gW.net(2)
「野球もサッカーも球技だからおなじようなもの!」いただきましたw

261
デフォルトの名無しさん[sage]   投稿日:2016/03/28 04:13:13  ID:soILvqz+.net(4)
オブジェクト指向は役に立っている。
関数型言語はトイプログラムしか作れない。

262
デフォルトの名無しさん[]   投稿日:2016/03/28 10:46:29  ID:U1rG/r8A.net(2)
うんこの話題についてこれない人達が必死ですねw

263
デフォルトの名無しさん[sage]   投稿日:2016/03/28 10:53:32  ID:Et7Dc3iM.net(2)
うん、この話についてこれないよ

264
デフォルトの名無しさん[]   投稿日:2016/03/28 12:55:38  ID:IcMNxByb.net(2)
 僕みたいな芸人とか人前に出る人は、多かれ少なかれちょっとした発言や態度がネットで炎上したり、
罵詈雑言を浴びせられたりします。けれど、僕はそんなのにまったく腹も立たないし、
むしろオブジェクト指向を“カチャカチャ”してる人のほうが可哀想やなあ、と思うんです。

エラい人たちは、オブジェクト指向で時間を使うことはないでしょう。
だから僕は子どもにも「金持ちやエラい人のマネせえ、幸せな人のマネをせえよ」と言うようにしています。

はい、ここで問題です。オブジェクト指向でカチャカチャしてる人とそうでない人、どっちが幸せですか? 
そんなの100%、カチャカチャじゃないほうですよ。カチャカチャばっかしてたら不幸になることは、みんなわかってる。
 
「あの人幸せそう、エエ人やわ」と評判の20人のおばはんをモニタリングしてみてください。
ちゃんと挨拶して、言葉遣いも優しくて、お店でもエラそうな態度をとらない、とか共通項があるはずです。
逆に「あの人意地悪いわ、不幸やわ」と言われてる20人のおばはんを見ると、絶対カチャカチャみたいな行動をしてるはずです。
 
オブジェクト指向をカチャカチャして、クラスのインスタントを参照して「やったった感」を持ってるのかも
しれんけど、それでハッピーエンドの人生が待ってると思いますか? それよりも、もっとお友だちと
おしゃべりするとか、勉強するとか自分が幸せになる方法を考えるのがいいんじゃないですか。
 
オブジェクト指向をカチャカチャするのは、自分から不幸になりに行ってるようなものですよ。
あまりに生産性がなさすぎる。それを考えると可哀想やなと思えてくるんです。
僕は「日本は沈没しかけとる。こりゃどエラい時代が来るぞ……」とゾッとしたもんですが、
今まさにそれが当たり前のどエラい時代になりましたね。

265
デフォルトの名無しさん[sage]   投稿日:2016/03/28 15:14:15  ID:qcCtZJbO.net(2)
関数型は「このわかりにくい書き方をすればある問題が絶対発生しない!」だからなぁ…
いや、わかりにくいって時点でダメじゃんっつか。
コメント2件

266
デフォルトの名無しさん[sage]   投稿日:2016/03/28 17:25:44  ID:soILvqz+.net(4)
>265
問題が絶対に発生しないなんてあるわけねえだろ
Haskellだってランタイムエラー出るときは出るわ

267
デフォルトの名無しさん[sage]   投稿日:2016/03/29 08:53:21  ID:69Hzy87b.net(2)
○○は学習コストがーとかわかりにくいってよく聞くけど、仕事でやってる人なら誰でもすぐわかるような(もしくはわかったつもりになれるような)技術だけ使い続けるより安心じゃね? 覚える価値があるなら特に。

268
デフォルトの名無しさん[sage]   投稿日:2016/03/29 12:04:28  ID:4NQ/4meq.net(2)
誰でもわかる

コストがかからない

人気がある

衰退しない

269
デフォルトの名無しさん[sage]   投稿日:2016/03/29 12:45:16  ID:mGK48Xag.net(2)
誰でもわかる

バカが混入する

コードが荒れてプロジェクトが燃える

マトモな技術者が新しい言語に逃げ出す

今、関数型言語界隈がstep 2のど真ん中w

270
デフォルトの名無しさん[]   投稿日:2016/05/01 09:43:39  ID:tKi6j9CT.net(2)
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません

271
ャfフォルトの名末ウしさん[]   投稿日:2016/05/11 13:16:12  ID:Knti35lY.net(4)
オブジェクト指向って別に世の中の色んな事を記述するためのものじゃないよねw
pcの制御を記述するためのものじゃん

たぶん世の中 = pcって偏狭な人間が混乱してるだけなんじゃない?

272
デフォルトの名無しさん[sage]   投稿日:2016/05/11 14:16:15  ID:1ZZ8JGEs.net(4)
手続き型の一部に関数型っぽい書き方するのがカコイイという風潮が強くなってきて
熱心な子が意気込んで本格的なものに手を出してみるがわけわからなくて
酷い目に遭って帰ってきました、という感じじゃない?

273
デフォルトの名無しさん[sage]   投稿日:2016/05/11 15:35:01  ID:l/Aku55r.net(2)
誰でもわかる

コストがかからない

人を集めやすい一方、単価が下がる

人気が減る

274
デフォルトの名無しさん[]   投稿日:2016/05/11 16:50:49  ID:Knti35lY.net(4)
関数型言語って狭義のプログラミング言語じゃない気がするよ
アルゴリズムをシステマティックに表現するスクリプトに近い
コンピュータが手続きの連鎖で動いている以上、普通は関数を中心に記述するのはオーバーヘッドが大きすぎる
アルゴリズムが最適化される事で最終的な手続きが減るほど複雑なロジックを組む人が使えばいいと思う

275
デフォルトの名無しさん[sage]   投稿日:2016/05/11 17:31:14  ID:DbNWRsPF.net(2)
言語はJavaでもC#でも良いけど、凡人はデータとロジックは分けて扱う方が良いと思う
デザインパターンも、多少スキルのある人に任せて、自分では手を出すべきではない

アホが好き勝手に弄った挙げ句トンズラこいた、巨大でインスタンス変数やstatic変数を弄りまくる分岐とループにまみれたクラスの継承元と継承先を飛び回るのは、とてもツラい
何をもって安心すれば良いのかわからない
仕事戻りたくない

276
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:14:51  ID:1ZZ8JGEs.net(4)
名前空間で分けられるOOの方が構造化プログラミングより安全だ
バカを隔離するためにクラスを作ると昔の人は言った
コメント2件

277
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:20:32  ID:4+flospS.net(2)
おお、そのとおりだよw
末端のクラスは融通の効かないバカに作る。
そうすると見通しがいい。

278
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:55:02  ID:AR7pBoGw.net(2)
「言われたことをちゃんとこなすように」が正解。
途中途中で権限委譲しておかないと
上流がすべての決定をしなきゃいけなくなるので破綻する。

279
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:56:37  ID:PuRMzRqm.net(2)
バカは2chに集めて隠蔽

280
デフォルトの名無しさん[sage]   投稿日:2016/05/21 10:17:37  ID:ikuIjUYo.net(4)
>276
藻前の悩みは名前空間の汚染しかないのカヨ…
クラスにして良いのはふるまいに状態を持たせる覚悟のある奴だけ

281
デフォルトの名無しさん[sage]   投稿日:2016/05/21 10:19:56  ID:ikuIjUYo.net(4)
もしくはクロージャとかfunctorを作りたいときとかだが
C++で作るクロージャとかfunctorは
クロージャとかfunctorですよみたいな顔して状態を隠し持ちかねないところが恐ろしい…

282
デフォルトの名無しさん[]   投稿日:2016/05/23 09:30:38  ID:KJgou+2q.net(2)
c++のクロージャってレキシカルスコープ以外の状態を持つのか?
後 functorもクロージャって全然違わない?

283
デフォルトの名無しさん[sage]   投稿日:2016/05/23 13:11:00  ID:WJyvxaEH.net(2)
Objectから派生したものは、メンバ変数とメソッド、つまり状態と処理を持つ

クラス・ラムダ・クロージャ・無名関数・Functor・ブロック・Proc、
どういう名前を付けようと、First Class(第1級)オブジェクトである

第1級オブジェクトとはオブジェクトなので、newできて、
簡単に持ち運びできるし、カプセル化してアクセス制御もできる

関数の引数として渡せて、戻り値にもできる
コメント2件

284
デフォルトの名無しさん[sage]   投稿日:2016/05/23 20:08:36  ID:amMcSQyA.net(2)
>283
なにその中学生がぐぐりながら書いたような文章

285
デフォルトの名無しさん[]   投稿日:2016/05/24 22:30:45  ID:uzPl1U54.net(2)
ポケモンってオブジェクト指向が出て来たら
これで効率よくやってそうだよな

286
デフォルトの名無しさん[sage]   投稿日:2016/05/24 22:33:07  ID:CFKzRNjb.net(2)
モンスターは物じゃない
物じゃないんだ、友達なんだ

287
デフォルトの名無しさん[sage]   投稿日:2016/05/24 22:40:40  ID:TKpsNxtt.net(4)
ゲームはオブジェクト指向が適しているだろうが、
それでもやっぱり思考ロジック部分はオブジェクト指向じゃないさ。
ロジックを固めるフレームワークに設計は適している。
コメント4件

288
デフォルトの名無しさん[sage]   投稿日:2016/05/24 23:09:50  ID:2+VBUZih.net(4)
>287
なにその小学生がヤフりながら書いたような文章
コメント2件

289
デフォルトの名無しさん[sage]   投稿日:2016/05/24 23:11:07  ID:TKpsNxtt.net(4)
>288
こっちへおいでw

オブジェクト指向システムの設計 [無断転載禁止]©2ch.net
オブジェクト指向システムの設計

290
デフォルトの名無しさん[sage]   投稿日:2016/05/24 23:33:41  ID:2+VBUZih.net(4)
100レス位まで読んだけどクッソどうでもいい事をぎゃーぎゃー言い合ってるだけやんけ

291
デフォルトの名無しさん[sage]   投稿日:2016/05/25 23:21:16  ID:fBBvLnfI.net(2)
>287
はっきり言ってゲームにオブジェクト指向なんて適してない
すべてのオブジェクトをエクセルの縦の列に並べて
すべてのパラメータを横の列にすべて書き出す
こういう感じでチェックできるプログラムにしないと完成しない

292
デフォルトの名無しさん[sage]   投稿日:2016/05/26 13:53:37  ID:gY5ZvMkJ.net(2)
オブジェクト指向なんて意味ないよな
スーパーマリオもテトリスもプレイに必要なのはエクセル

293
デフォルトの名無しさん[sage]   投稿日:2016/05/26 20:55:10  ID:cAjDmLh7.net(2)
ネタとしても面白くないなぁw
オブジェクト指向が使われてるのを
目の前にして適していないと言われてもねw

294
デフォルトの名無しさん[]   投稿日:2016/05/26 22:03:14  ID:cgICe8ci.net(2)
ここからオブジェクト指向を見た事がない人だけがオブジェクト指向を批判出来るスレになります

295
デフォルトの名無しさん[sage]   投稿日:2016/05/26 23:27:22  ID:NlrO/xzC.net(2)
オブジェクト指向は重複したメソッドが発生する。こういうのは無駄。

coffee.owner=human
coffee.drink()
human.drink(coffee)

296
デフォルトの名無しさん[sage]   投稿日:2016/05/27 00:14:26  ID:miERtZSj.net(2)
>coffee.owner=human
>coffee.drink()
いやいやいや

297
デフォルトの名無しさん[sage]   投稿日:2016/05/27 04:22:09  ID:WrCIRuds.net(2)
オブジェクト指向
「白痴の面倒までみれねーよww」

298
デフォルトの名無しさん[sage]   投稿日:2016/05/27 10:57:13  ID:q3bsRKFz.net(2)
オブジェクト指向が面倒を見なくても
白痴はオブジェクトらしきものをプロジェクトに残してくんだ・・・

299
デフォルトの名無しさん[sage]   投稿日:2016/05/27 11:13:57  ID:y0JFsOhL.net(2)
すべては名前
きちんとした、名前
名前、名前、名前
名前思考でお願いします
機能と名前が違うのがありすぎ
国語力の欠如した人のプログラムでは
反対語で書く奴もいるし
動詞を、名詞で隠す奴

300
デフォルトの名無しさん[sage]   投稿日:2016/05/27 12:19:19  ID:bYLZABmN.net(2)
正しくオブジェクト指向を使ったMacOSXは16年間で11回メジャーアップデートし
オブジェクト差し替えでiOSに派生しiPhoneやiPad、果てはAppleTVにも使われ

一方、間違ったオブジェクト指向を使ってしまったWindowsは
15年間で5回しかアップデートできない上に不具合オンパレードで阿鼻叫喚
ユーザが一つ前のバージョンしか信用しないので常に5年前のバージョンが大半
そして強硬策「いま入れますか、あとにしますか?」地獄へ。

後者をオブジェクト指向だと思ってる奴はそりゃ全力で否定せざる負えないわな。
コメント2件

301
デフォルトの名無しさん[]   投稿日:2016/05/27 12:22:01  ID:IqC0GNPs.net(2)
ここオブジェクト指向スレやで
国語力ないんかな

302
デフォルトの名無しさん[sage]   投稿日:2016/05/27 12:23:05  ID:DRPbKmeh.net(2)
iOSとかMacのメジャーアップデートって完全に人柱じゃないですかヤダー

303
デフォルトの名無しさん[sage]   投稿日:2016/05/27 12:53:43  ID:sJ1qkk5q.net(2)
最近推し激しいが今のiOSっていいのか?
まぁiOS使うくらいならLinux使うけどw

304
デフォルトの名無しさん[sage]   投稿日:2016/05/28 21:36:07  ID:COiCoXN6.net(2)
どうなんだろうか。
「お前のは本当のオブジェクト指向じゃない」だとか不毛な論争の火種にしか
なってない気はする。

もうちょっとコードベースのモジュール化やコードの隔離方法なんかを議論した方がよっぽど建設的。

305
デフォルトの名無しさん[sage]   投稿日:2016/05/29 05:26:16  ID:uH1/jPAH.net(4)
>300
> 一方、間違ったオブジェクト指向を使ってしまったWindowsは

最近2週間で一回ぐらいのペースで、開発者版リリースが行われてる。
これはMSアカウントを作るだけで一般の人が入手できる。
これって正しくオブジェクト指向を使ったからだろうね。

306
デフォルトの名無しさん[sage]   投稿日:2016/05/29 08:08:38  ID:1ogDAOAr.net(4)
何とも言えんね
ぶっちゃけいまのmsのアップデートはデバッグをユーザに押し付けてるようにしか見えんし
よくわからない用語で煙に巻くって点がオブジェクト指向だね

307
デフォルトの名無しさん[sage]   投稿日:2016/05/29 12:54:56  ID:uH1/jPAH.net(4)
オブジェクト指向だから早くリリースしてるんでしょ?w

308
デフォルトの名無しさん[sage]   投稿日:2016/05/29 13:01:06  ID:1rU4/WXO.net(2)
既存のクラスはなるべくいじらずそのまま静かに置いておく
オブジェ思考

309
デフォルトの名無しさん[sage]   投稿日:2016/05/29 13:23:11  ID:1ogDAOAr.net(4)
私のオブジェクト指向は54万です

310
デフォルトの名無しさん[sage]   投稿日:2016/05/29 14:34:58  ID:aa6iTjg/.net(6)
"クラスとは構造体に操作する関数がついたもの"と
"クラスはメッセージコマンドを受けて動く"の違い。
前者はプログラマが陥りがちなタイプ数が少ない暗号みたいなパーツの組み合わせと
責任の所在がわからない動作をぜひ作り込んでくれと言わんばかりのジャンクで
まさにそのとおりのジャンクができた。
コメント2件

311
デフォルトの名無しさん[sage]   投稿日:2016/05/29 14:40:26  ID:EevS3JTU.net(2)
>310
クラスと(そのインスタンスとしての)オブジェクトとの区別がつかない人間は永久にROMってろ

312
デフォルトの名無しさん[sage]   投稿日:2016/05/29 15:26:41  ID:aa6iTjg/.net(6)
きみが棲んでるジャンク界隈がそういう仕様なのは知ってるけど
こっちはクラスにメッセージ送るとクラスがインスタンス作るんだ。
うん。
コメント2件

313
デフォルトの名無しさん[]   投稿日:2016/05/29 15:50:36  ID:abg0RIhz.net(2)
>312
クラスと(そのインスタンスとしての)オブジェクトとの区別がつかない人間は永久にROMってろ

314
デフォルトの名無しさん[sage]   投稿日:2016/05/29 16:59:56  ID:aa6iTjg/.net(6)
高度すぎたか。

315
デフォルトの名無しさん[sage]   投稿日:2016/05/29 17:04:53  ID:9gAtgMOC.net(2)
いちいち()で囲まなくてもよくない?
無駄な仕事多くしてそう。(どうでもいいけど)

316
デフォルトの名無しさん[sage]   投稿日:2016/05/29 21:48:27  ID:T+KHRUkH.net(2)
クラス厨は害悪

317
デフォルトの名無しさん[]   投稿日:2016/07/08 22:17:20  ID:gy2KRr8C.net(2)
高度すぎたかwwwwwwうけるwww

318
デフォルトの名無しさん[sage]   投稿日:2016/07/08 22:29:11  ID:zZ/OP7I+.net(2)
半年ORMれ

319
デフォルトの名無しさん[sage]   投稿日:2016/07/09 11:06:02  ID:lXMMLrdi.net(2)
オブジェクト指向とかクラスが分からないのは多分メモリ周りのことが全然わからないからなんだろうな。
アセンブラからやれとは言わんが、メモリアロケータくらい自作したらオブジェクト指向がいかに理に叶ったものかわかってくるんだけど。

320
デフォルトの名無しさん[sage]   投稿日:2016/07/09 11:22:11  ID:3DBY5ZwO.net(2)
メモリアロケータを自作しないと理解できないってのもなぁ(苦笑)

321
デフォルトの名無しさん[sage]   投稿日:2016/07/09 12:11:02  ID:vM1Dv6Aj.net(2)
オブジェクト指向がわからない人は関数型を勉強してないんだろうな
手続き型はオブジェクト指向のメリットを潰してしまうから手続き型の書き方しか知らないとオブジェクト指向は身に付かない

322
デフォルトの名無しさん[sage]   投稿日:2016/07/09 12:19:20  ID:afhBOa0Z.net(2)
データのカプセル化ができてれば手続き型でもオブジェクト指向でも関数型でもいい気がするが

323
デフォルトの名無しさん[]   投稿日:2016/07/09 12:19:29  ID:EzNW6797.net(2)
分からない人がいて欲しいという強い願望w

324
デフォルトの名無しさん[sage]   投稿日:2016/07/09 13:53:33  ID:dEWSYkKq.net(4)
オブジェクト指向つっても当初の「継承で差分プログラミングうまー」
みたいなのは否定されてきたからな。

入門書だと哺乳類クラスから犬クラスと猫クラスとかやってるけど、
動物が沢山出てくるゲームや動物病院のカルテシステムを開発するとして、
いちいち動物種ごとにクラスを作ることはしないだろう。

インターフェイス以外の継承は最小限にというのを教えないと。
でも未だに入門書レベルだと著者が勘違いしている。
コメント2件

325
デフォルトの名無しさん[sage]   投稿日:2016/07/09 18:59:46  ID:akOZxrcr.net(2)
>324
かといって、というか
継承ってのがどんなものなのか「だけ」を説明するのなら
やっぱ犬猫でもいいんでねえのって俺は今は思う

継承をどう使って設計していくかってのはまた先の話
親、子A、子Bという三者の関係「だけ」示すのが動物犬猫
コメント2件

326
デフォルトの名無しさん[sage]   投稿日:2016/07/09 19:23:57  ID:dEWSYkKq.net(4)
>325
例自体は反対しないよ。
でもそれで継承というものがどういうものかは分かっても、
継承がどういうときに使うべき物なのかは分からない。
そこまで教えてる本ってあまりないね。
コメント2件

327
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2016/07/10 18:09:32  ID:RTWM7o1I.net(2)
(HP)をプロパティで持った「キャラクター」クラスを作って
それを継承した「戦士」クラスは"たたかう"、"ぼうぎょ"、"にげる"などのメソッドを持つ
これを再利用して、「武闘家」クラスを作れば
おなじ"たたかう"メソッドで武闘家はてつのつめで戦うようにできる。
さらには(MP)と"まほう"メソッドを追加で「魔法使い」クラスが…

ってこの辺りで便利さがわかると同時に
(MP)プロパティや"まほう"メソッドをどこにつけるかで混乱が始まって
継承の不便さが浮き彫りになってくるという。
全部独立パーツでそれを必要に応じて束ねて使っていればもっと取り回しが楽だったり
コメント2件

328
デフォルトの名無しさん[sage]   投稿日:2016/07/10 20:28:28  ID:4zLRjbrA.net(2)
実装の再利用は継承でやるよりtraitが便利
smalltalkで発表されて、PHPに輸入されて、後は知らないが
コメント2件

329
デフォルトの名無しさん[sage]   投稿日:2016/07/10 22:16:26  ID:/17c9zmN.net(2)
Scalaとかの静的型言語がただのmixinをあえてtraitsと呼ぶのは誤解を招くよなぁ…

330
デフォルトの名無しさん[sage]   投稿日:2016/07/10 22:21:00  ID:SLnFWOAS.net(2)
>327
> それを継承した「戦士」クラスは"たたかう"、"ぼうぎょ"、"にげる"などのメソッドを持つ
> これを再利用して、「武闘家」クラスを作れば

武闘家は戦士を継承していません。

331
デフォルトの名無しさん[sage]   投稿日:2016/07/10 22:46:02  ID:YDU79Arx.net(2)
そもそもオブジェクトの粒度が高すぎんだよ
アビリティクラス的なものを作るべき

332
デフォルトの名無しさん[sage]   投稿日:2016/07/10 23:04:09  ID:tx16mOUk.net(2)
> ってこの辺りで便利さがわかると同時に
> (MP)プロパティや"まほう"メソッドをどこにつけるかで混乱が始まって

全然混乱しないなw

どこにつけるかなんてシステム次第だが
ドラクエ方式であればMPプロパティはキャラクタークラスで
魔法メソッドなんていうのは、特技メソッドの表示名の違いでしか無い。

333
デフォルトの名無しさん[sage]   投稿日:2016/07/11 08:10:49  ID:BGpqEWk7.net(6)
継承ベースだと
キャラクター>戦士>武闘家というクラス階層で
90年代のバカみたいな継承信奉してると武闘家の後ろとかに
"魔法使い"作って泥沼に嵌まるんだよな。
継承=オブジェクト指向だから。
コメント2件

334
デフォルトの名無しさん[sage]   投稿日:2016/07/11 08:24:29  ID:DT6nTI14.net(6)
継承を使いこなせないのは要するに馬鹿なんだよ
オブジェクト指向も関係なくプログラミングの基礎が出来てないから

335
デフォルトの名無しさん[sage]   投稿日:2016/07/11 09:34:50  ID:c813o9It.net(2)
>333
> キャラクター>戦士>武闘家というクラス階層で
それはどう考えても間違った継承だろ。

継承信奉以前の問題で、継承関係にないものを
継承しているのは、お前が馬鹿だからってだけなんだが。

336
デフォルトの名無しさん[sage]   投稿日:2016/07/11 10:06:35  ID:BGpqEWk7.net(6)
「よくバカな奴が"延々と"を"永遠と"って書いてたりするよねー」
「え、おまえ"延々と"を"永遠と"って書いてんの!?バカじゃね!
俺なんか絶対そんな間違いしないね!!おまえバカだろ!バーカwww」
「えっ?」

337
デフォルトの名無しさん[]   投稿日:2016/07/11 11:14:13  ID:v8BjKTdy.net(2)
戸惑いのバカwww

338
デフォルトの名無しさん[sage]   投稿日:2016/07/11 14:14:51  ID:BGpqEWk7.net(6)
えっ?

339
デフォルトの名無しさん[sage]   投稿日:2016/07/11 21:41:33  ID:K+QqD/bm.net(2)
>326
そやねぇ
あまりないというか、見たことが無いw

あともしそれを書いてる本があっても
入門者には意外と伝わらないと思う

それを必要とする状況まで陥ってないと
デザパタ本ですらろくに伝わってない

困って、考えて、本読むという順じゃないと多分ダメ
…多分だけど

340
デフォルトの名無しさん[]   投稿日:2016/07/11 22:00:34  ID:DT6nTI14.net(6)
目的に合わせて正しく抽象化出来れば継承関係は自然に導かれるはず
継承だけに着目して教える/教わるという考えがそもそもおかしい

341
デフォルトの名無しさん[sage]   投稿日:2016/07/11 22:37:59  ID:NMj8cyvT.net(2)
概念の継承関係とコードの継承関係を同じ目線で見ると失敗する
コメント2件

342
デフォルトの名無しさん[]   投稿日:2016/07/11 22:42:17  ID:DT6nTI14.net(6)
>341
それ抽象化が間違ってるからやw
コメント2件

343
デフォルトの名無しさん[sage]   投稿日:2016/07/12 00:05:30  ID:dw2VnrEM.net(2)
>342
過度な期待期に入った新人君かな

344
デフォルトの名無しさん[]   投稿日:2016/07/12 07:21:41  ID:jrBRhCE1.net(4)
自分のモデリングの間違いを言語機能のせいにする
な?要するに馬鹿なんだよ

345
デフォルトの名無しさん[sage]   投稿日:2016/07/12 08:27:37  ID:URFMxuYq.net(2)
オブジェクト指向もずいぶん枯れたわけだし、アンチパターンの確認から入るってのも悪くはない。

346
デフォルトの名無しさん[sage]   投稿日:2016/07/12 09:41:37  ID:Q/mNeBI3.net(2)
正しく抽象化できれば正しくできる、
って意味のないこと言ってどうすんの?

その正しく抽象化する方法が問題なんでしょ?

347
デフォルトの名無しさん[sage]   投稿日:2016/07/12 09:54:02  ID:DvYXCZnM.net(2)
>328
その後は、rubyにパチモンが作られて「Rubyの偉大な発明」の仲間入りしたのでは?
コメント2件

348
デフォルトの名無しさん[sage]   投稿日:2016/07/12 10:24:32  ID:QmnH/+e2.net(2)
たとえば魔法使いと魔法という概念が"新たに生まれた"場合
それは魔法を使える魔法使いのみが使うから魔法使いクラスの固有プロパティなのか。
それとも、使えないだけですべてのキャラクターが持つ基礎パラメータなのか。
すべての基底クラスにMPデータフィールドを追加していいのか。
運を消費して奇跡を起こす聖者、MPやHPを消費して治療を行う僧侶などが
あたらしく出てきた時はどこにパラメータをつけて相互管理すればいいのか。

現実でその時は"ただしい"と思った抽象化が根底から揺さぶられることはいくらでもあって
(固定価格に追加される消費税、新たに追加される福祉控除項目、すべてを一元化しようというマイナンバー…)
まず、そういう認識すら持たずに「ちゃんとちゅうしょうかしないからだよ
ぼくならなんでもただしくちゅうしょうかできるからきみたちよりえらいのさ!」とか
うそぶいている時点で君はいま指をさして静かに嗤われてるのを自覚した方がいい。
コメント4件

349
デフォルトの名無しさん[]   投稿日:2016/07/12 12:19:52  ID:4cCOY98n.net(2)
>348
要するに正しく抽象化モデリング出来てないだけだなw
お前が馬鹿な理由にオブジェクト指向も継承も全く関係ないわw

350
デフォルトの名無しさん[sage]   投稿日:2016/07/12 12:27:09  ID:7TrvIOou.net(2)
>347
> その後は、rubyにパチモンが作られて「Rubyの偉大な発明」の仲間入り

それもありそうな話で笑えるけど、traitsに限ってはModule#mixという名前で同機構の導入が
検討されたものの、既存の機能との整合性で致命的な問題が見つかって結局断念したらしい。
www.rubyist.net/~matz/20100617.html
http://d.hatena.ne.jp/nagachika/20111003/ruby_trunk_changes_33379_3...

351
デフォルトの名無しさん[sage]   投稿日:2016/07/12 13:18:23  ID:+8oNQ71Y.net(2)
振る舞いの抽象化なら型クラスやインターフェイスを使えばいいし、実装の再利用ならtraitのような仕組みを使えばいい
継承による型の階層構造なんて邪魔にしかならんわ

352
デフォルトの名無しさん[sage]   投稿日:2016/07/12 17:45:58  ID:h4Vj1dwQ.net(2)
モデリングに間違いがなくかつモデルが未来永劫変化しないならID:4cC坊やの言い分は正しいね
そんな世界がやってくるといいね
コメント2件

353
デフォルトの名無しさん[sage]   投稿日:2016/07/12 18:38:57  ID:J7TxVIFH.net(2)
とりあえず>348で言われてることを具体的にイメージできないぐらい"疎い"ってのだけはわかるよね…
多くのクラスに関わるモデリングを変えなきゃいけないぐらい大きな変更の例が列挙されていて
オブジェクト指向の黎明期と違って、オブジェクト指向があたりまえの空気になった現代だからこそ
強力な束縛を持つ継承がシステム組み替えの際の足かせになってきてるって話の流れにまったくついていけてない。

354
デフォルトの名無しさん[]   投稿日:2016/07/12 18:53:29  ID:jrBRhCE1.net(4)
お前らのは抽象化でなく、ただのぼんやりしたイメージ
いわば妄想プログラミングだなw
お前らみたいな馬鹿がまともに設計出来ないから
言語が馬鹿を縛れるような進化が求められてるだけなんだぜ
ダメなのは言語ではないお前ら自身だ

355
デフォルトの名無しさん[sage]   投稿日:2016/07/12 20:11:55  ID:IS6BTglq.net(2)
キッズは夢を見るものさ

356
デフォルトの名無しさん[sage]   投稿日:2016/07/12 20:31:52  ID:Vv72dLZO.net(2)
継承にしろオブジェクト指向にしろ
コードを簡潔にしたり、仕様変更に強くするために利用すべき技術だから
「猫と犬は哺乳類クラスを継承する、なぜなら猫も犬も哺乳類だから」ってのは
熟練したプログラマの発想とはだいぶ離れているんだよね
熟練したプログラマは書かなければならないコードが頭に浮かんでいて
それを何処に書くかという整理整頓の意味で継承などの技術を使っているわけで
結局OOは整理整頓術で、どう整理したらプログラミングの効率が上がるかというだけの話
それ以上の意味はない
が、整理整頓は非常に奥が深い

357
デフォルトの名無しさん[sage]   投稿日:2016/07/12 23:27:20  ID:4M8hLvVe.net(4)
そもそも哺乳類と言うのが最初にあって
そこから猫や犬が生まれたわけじゃないからな。

最初に猫や犬があって、そこから共通する特徴を
もっているものを哺乳類と分類した。

どっちかと言ったら名前空間みたいなもので
継承関係じゃない。(だけど理解するのに役立つ)

で実際のプログラミングでは哺乳類がどうとかいう話とは関係なく、
継承構造は役に立つもの

358
デフォルトの名無しさん[sage]   投稿日:2016/07/12 23:28:32  ID:4M8hLvVe.net(4)
>352
> モデリングに間違いがなくかつモデルが未来永劫変化しないなら

変化するからこそリファクタリングが重要なんだよね。

リファクタリングは汚いコードを修正することじゃなくて
過去の時点では正しかった設計を、
今の時点の変化に合わせて設計を変えることだから。

359
デフォルトの名無しさん[sage]   投稿日:2016/07/13 08:17:59  ID:+CQztjRc.net(2)
継承はそういう時に身動き取れなくなるから困る

360
デフォルトの名無しさん[sage]   投稿日:2016/07/13 09:38:03  ID:NLZRxEVY.net(2)
359 名前:デフォルトの名無しさん[sage] 投稿日:2016/07/13(水) 08:17:59.46 ID:+CQztjRc
継承はそういう時に身動き取れなくなるから困る

361
デフォルトの名無しさん[sage]   投稿日:2016/07/13 12:39:18  ID:Fh2kjKhX.net(2)
大事な事だから2回言いました

362
デフォルトの名無しさん[sage]   投稿日:2016/07/14 19:03:55  ID:sG4kt79u.net(2)
割とマジで「オブジェクト指向って継承って奴だろ」な人で
言われてることがまったくわからなくてパニクってるんじゃないかと。

363
デフォルトの名無しさん[sage]   投稿日:2016/07/14 20:00:26  ID:05a8wJuJ.net(2)
原始時代じゃあるまいしそんなプログラマがいるのか?
にわかに信じがたいな

364
デフォルトの名無しさん[sage]   投稿日:2016/07/14 22:29:42  ID:mVH/XKPM.net(2)
美少女が人間クラスから継承できない問題は
どうなったんだ?
それでオブジェクト指向は破綻したときいたが。

365
デフォルトの名無しさん[sage]   投稿日:2016/07/14 23:30:26  ID:0cl6EhrX.net(2)
ぱっと思いつくだけでも

Unkoオブジェクトに量の概念をもたせて量がゼロのうんこを作るかNullObject的な対処をする

うんこしないAngelクラスを継承する

排便の概念を抽象化したメソッドを用意してうんこ以外の可能性を見出す

などなど
なんとでもなるやろ

366
デフォルトの名無しさん[sage]   投稿日:2016/07/15 05:19:16  ID:Md4pEzwy.net(2)
UnkoのサブクラスとしてOhgonクラスを実装するんや!

367
デフォルトの名無しさん[]   投稿日:2016/07/15 12:49:22  ID:L1jCNFuA.net(2)
美少女はウンコをしない
この「しない」という所が美しいんじゃないか
汚れなき乙女を全うする意志の問題だ
これが「出来ない」という物理的構造に由来する問題に成り下がってしまったら
何の味わいもなくなるだろ
チンコ勃たんわ

368
デフォルトの名無しさん[sage]   投稿日:2016/07/15 14:40:06  ID:d/Zl1fgq.net(2)
頭の悪い人の悲しいところは
頭の悪い冗談を好んで言い続けるということだ
飽きもせずに繰り返し繰り返し何度も何度も…

369
デフォルトの名無しさん[]   投稿日:2016/07/15 22:04:56  ID:iR/HdeCl.net(2)
これは頭の良い冗談に期待w

370
デフォルトの名無しさん[sage]   投稿日:2016/07/15 22:47:24  ID:ibKxDQPd.net(2)
美少年にクラスチェンジすることで破綻せずにハッテン

371
デフォルトの名無しさん[sage]   投稿日:2016/07/15 23:49:57  ID:80GKY2p2.net(2)
リフレクションで解体して色々いじりたい

372
デフォルトの名無しさん[sage]   投稿日:2016/07/16 01:53:47  ID:Bfovl8qZ.net(2)
面白くないことに気づこうね
コメント4件

373
デフォルトの名無しさん[sage]   投稿日:2016/07/16 02:59:56  ID:0ciAe/St.net(2)
というか>211で書かれてるとおりをまたワンパターンで始めただけだしな。

374
デフォルトの名無しさん[]   投稿日:2016/07/16 07:28:07  ID:CNSBQzp5.net(4)
美少女ウンコ問題は高度すぎて解決の糸口すら見つからないもんな
ついていけない奴の気持ちもわかる

375
デフォルトの名無しさん[sage]   投稿日:2016/07/16 09:09:49  ID:DegzgE4N.net(2)
ちょっとしたネタ書き込みにすら
知能やセンスがもろ出しになっちゃうから悲しいね

>372
それ言っちゃうと今度は意地になってレスし続ける可能性

376
デフォルトの名無しさん[sage]   投稿日:2016/07/16 09:38:23  ID:D3kHuod4.net(2)
>372
面白くない→顔が白くない→色白でない→実は美少女ではない→ウンコしても問題ない

なるほど要件の再定義によって解決か

377
デフォルトの名無しさん[sage]   投稿日:2016/07/16 10:06:22  ID:BhIXbiPC.net(2)
なんでよ褐色美少女最高じゃん

378
デフォルトの名無しさん[sage]   投稿日:2016/07/16 10:11:41  ID:6YOlPtSF.net(2)
ワンパターンっすなぁ

379
デフォルトの名無しさん[]   投稿日:2016/07/16 12:26:01  ID:3oB/Pjks.net(2)
解決しとらんのにワンパターンもくそもないだろ
根気のない奴だなあ

380
デフォルトの名無しさん[sage]   投稿日:2016/07/16 20:05:26  ID:kkC3KqZT.net(2)
解決できると思ってるのが間違いだと気付くといいよ

分類学的な階層を作っても「書いた人どう対象を捉えているか」というどうでもいいことしかソースに残せない
鳩クラスと鹿クラスが同じ親クラスを持ってて、ニワトリクラスとブタクラスが同じ親クラスを持ってて、
一体どうしてと思ったらジビエと畜産肉で分けてたとか、食肉加工業者の仕入れ管理ソフトだったらあり得るよ

そういう情報を一切俎上に出さずにAはBの子クラスであるべきか否かなんて話すのは無意味
そういう文脈をソースに組み込む必要があるかもまず考えないといけない
コメント4件

381
デフォルトの名無しさん[]   投稿日:2016/07/16 21:15:33  ID:CNSBQzp5.net(4)
なるほど
現状の研究成果に比べると一風変わった意見だが私は興味深く聞かせてもらったよ
つまり君はウンコをしない美少女が人間クラスから派生されるべきコンテキストについて
もっと掘り下げた議論をすべきだと言うのだな
ところで君はそういう文脈をソースに組みこむ必要があるかについては
どんな考えを持っているのかね?

382
デフォルトの名無しさん[]   投稿日:2016/07/16 21:41:47  ID:LbU9Boej.net(2)
ユーザーはうんこ機能なんか求めちゃいない。

383
デフォルトの名無しさん[sage]   投稿日:2016/07/17 01:46:14  ID:MIDkP6ou.net(2)
生成するUnkoオブジェクトのtasteフィールドが最大値になるだけ

384
デフォルトの名無しさん[sage]   投稿日:2016/07/17 05:00:03  ID:nDXHZDmA.net(2)
>380
いやねーだろw その手のシステムで種ごとにクラスを分けるわけがない。
全部同じクラスだろ。
コメント2件

385
デフォルトの名無しさん[sage]   投稿日:2016/07/17 10:38:54  ID:libZCVLZ.net(2)
まあなんでも抽象化すればいいってもんではないわな。
物質は究極的にはクォークのセットだからって、そのまま実装したらそりゃ破綻するだろうし。

386
デフォルトの名無しさん[]   投稿日:2016/07/17 12:43:31  ID:gClFyV8u.net(4)
君それは細分化やないか
美少女のウンコふりかけ食わしたろか

387
デフォルトの名無しさん[sage]   投稿日:2016/07/17 13:29:48  ID:okE8dWNU.net(2)
同じ型のインスタンスの振る舞いをポリモーフィズムさせるのは、

・継承
・委譲
・switch文
・関数ポインタ、ラムダ式
・別途スクリプトなどを用意する

などの方法がある

388
デフォルトの名無しさん[sage]   投稿日:2016/07/17 13:57:59  ID:PHnZw+de.net(2)
ウンコって言いたい年頃なんだろうな

389
デフォルトの名無しさん[sage]   投稿日:2016/07/17 15:27:54  ID:+aWd02nI.net(2)
>384
データはDB管理かもしれないしDBに沿った構成になるかもしれない
UIで必要であれば 380 の構成もありえるし
だから 380 は文脈と言ってるんだろうに
コメント2件

390
デフォルトの名無しさん[]   投稿日:2016/07/17 15:59:55  ID:gClFyV8u.net(4)
どんな文脈やねんw
肉屋の仕入れアプリでブタにダンスでもさせる気なんかw
そんなら俺はウンコを我慢する美少女の方がええわwww
何でも文脈言えばええっちゅーもんちゃうでホンマ

391
デフォルトの名無しさん[sage]   投稿日:2016/07/17 16:05:40  ID:q7clyz/N.net(2)
>389
いや、当然RDBMSでデータ管理しているという前提だが?

392
デフォルトの名無しさん[sage]   投稿日:2016/07/17 21:43:01  ID:SWVEU9WP.net(2)
クソスレじゃねーか!

393
デフォルトの名無しさん[sage]   投稿日:2016/07/20 23:08:50  ID:0oomM0jq.net(2)
計算式が面倒になったら
またどうせオブジェクト指向になるんだろ
コメント2件

394
デフォルトの名無しさん[sage]   投稿日:2016/07/20 23:42:38  ID:E+SEwayU.net(2)
>380
> 一体どうしてと思ったらジビエと畜産肉で分けてたとか、食肉加工業者の仕入れ管理ソフトだったらあり得るよ

見たこと無いが「あり得る」という話なら、
C言語でgotoばっかり使うってのもあり得るよ。

C言語なのに、オレオレライブラリとマクロを使って
COBOLみたいに使うことだって有り得るよ。

お前の大好きな言語をクソみたいな使い方する方法だって有り得るよ。
有り得るかどうかを語るのって意味なくね?

クソみたいなコードを書くのは書いた人間が悪いのであって
言語の問題でもオブジェクト指向の問題でもない。

395
デフォルトの名無しさん[sage]   投稿日:2016/07/21 02:05:10  ID:pVvcsTGR.net(2)
>393
というか、人間がプログラムをユニット単位に分けた時に
"こいつはこういうコマンドを与えれば勝手にそれをやる単位"って
分け方をすれば『人間がわかりやすい』だろう。ってのが
いまあたりまえのメソッド型オブジェクト指向なんで、
こうすれば"副作用"が出ない!って計算式の方はむしろ
問題が起きないように『機械の都合に人間が合わせる』流れで
たぶん遠からず下火になるわ、あれ。つかもうなった感じ。

むしろ、アルゴリズム解析みたいなのを開発環境がやって
こうすると副作用が最小になるっぽいですよ?って
AIがサジェスチョンするようになんじゃね?つか。

396
デフォルトの名無しさん[sage]   投稿日:2016/07/21 12:07:59  ID:gJ3egAPE.net(4)
それはどうかわからんよ
もともと機械の都合で生まれた静的型が
実は人間にも優しいってことで大人気だし
本来静的型じゃなくても動く筈の動的型言語も
どんどん静的型の機能を取り入れていくのが今のトレンドでしょ

それに、副作用の無い関数型は全然機械の都合じゃないし
あれは数学の理論とかから生まれたような理論先行のもので
コンピュータの動作原理を考えたら、むしろ副作用ありの方が
自然だと思う

副作用ありの静的型言語が一番機械の都合に合っていて
その金字塔がC言語であり、今でも使われ続けている
主にローレベルなことやOSの開発やドライバの開発などに
使われているのは、それだけ機械の都合にあっているから
昔の言語なのに破たんせずに使われ続けているのは
それだけコンピュータの動作原理を素直に表現していて
流行り廃りというものと無縁だから

397
デフォルトの名無しさん[sage]   投稿日:2016/07/21 16:36:54  ID:KvWRwuEL.net(2)
Cで書いたコードが速く動くようにCPUやOSが設計されているという面も
あるからぬ…だからって新世代の言語に合わせてCPUやOSを作り直すか?
といわれたらそんなことは起こりっこないと断言できるが
コメント2件

398
デフォルトの名無しさん[]   投稿日:2016/07/21 17:56:06  ID:9dMGMxaj.net(8)
おまいさんそれは逆ですぜ。
Cがアセンブラに馴染み易く出来てるんですぜ。
でも本来はintelの系統じゃ無くて、
モートローラとかミニコンから派生した石に馴染み易く出来てるんですがね。
まあ、Cが最初からintelの石用に作ってたら、
もう少し違った構文になってたかもね。

399
デフォルトの名無しさん[]   投稿日:2016/07/21 18:08:41  ID:9dMGMxaj.net(8)
アセンブラやってた連中が、構造化プログラミングを提唱して、
プログラムを小さな塊の組み合わせで作る様になったんで、
同時期に条文分岐やサブルーチンの扱いをマクロ処理を被せて
読み易くするのが流行ったんだよ。
それをもっと書き易くして行って出て来たのがコンパイラ言語
いわゆる高級言語だけど、簡単なアセンブラへの置き換えしかしてなかった。
今ではそこから更にそれら高級言語を分かり易く記述出来る高次な高級言語が流行ってるけどね。
コメント2件

400
デフォルトの名無しさん[]   投稿日:2016/07/21 18:19:01  ID:9dMGMxaj.net(8)
例えば、hoge+とかやれば自動的にインクリメントしてくれる仕様だって、そういうアセンブラ命令があったからなんだぜ。

401
デフォルトの名無しさん[sage]   投稿日:2016/07/21 18:38:56  ID:fNq3MD0e.net(2)
>397
>Cで書いたコードが速く動くようにCPUやOSが設計されている
何を根拠に?

402
デフォルトの名無しさん[sage]   投稿日:2016/07/21 19:51:04  ID:zfBmPUKU.net(6)
>399
時系列がぐちゃぐちゃじゃね?
最初の高級言語と呼べるものはFortranだけど、
数式を人間フレンドリーな形で記述できるのが売りだった。
Fortranはアセンブラの簡単な置き換えレベルではないでしょ。

構造化プログラミングはALGOLからだろうけど、
Fortranより後だし、Cのようなレベルに達するのはもっと先。

403
デフォルトの名無しさん[sage]   投稿日:2016/07/21 20:06:28  ID:ZXk7cAfY.net(2)
歴史しらないバカばっかw

404
デフォルトの名無しさん[sage]   投稿日:2016/07/21 20:28:04  ID:IpsfD7Z7.net(2)
自信を持って声を大きくして叫び続ければやがてそれが歴史となる

405
デフォルトの名無しさん[sage]   投稿日:2016/07/21 20:37:00  ID:m+nIkrs4.net(2)
後の人々はそれをこう呼んだ、すなわち黒歴史と……

406
デフォルトの名無しさん[sage]   投稿日:2016/07/21 21:20:03  ID:gJ3egAPE.net(4)
Cの何がすごいって、メモリに対する考え方がシンプルで凄い
構造体のメンバは単なる先頭からのオフセットだし
配列の添え字も先頭からのオフセットでしかない
しかも配列とポインタはある種の互換性がある
だから何だかよくわからないメモリブロックを
構造体にキャストしてアクセスできたり
同様に単なるメモリブロックを配列としてアクセスできたりする
メモリの扱いがとにかくシンプルでありつつ強力なアクセス方法があり応用が利く
こういうことができる言語はあまりない
C++ですらvtableが入ってたらもうオフセットずれるし
コメント2件

407
デフォルトの名無しさん[sage]   投稿日:2016/07/21 21:42:38  ID:vaQfL518.net(8)
>406
言語の実装がシンプルなのと、その言語を
使ってアプリを実装するっていうのは別の話で
なんでも一つの機能で出来てしまう言語っていうのは、
冗長で意味代わりにくいコードになりがちなんだよ。

例えばシンプルと言うのならアセンブラが一番シンプル
条件判定命令と条件ジャンプ命令だけでループを表現できてしまう。

プログラム言語っていうのは、特定のパターンに対して
専用の命令を作ることでコードの可読性を高くしてきた。
これは圧縮の仕組みにも近い。特定のパターンに短い単語を当てはめて
簡潔に書くことができるようになる。

条件判定命令と条件ジャンプ命令さえあれば十分であっても
そこからforパターンやwhileパターンを見つけ、専用の単語に
割り当てることで可読性が高くなる。
コメント2件

408
デフォルトの名無しさん[399]   投稿日:2016/07/21 22:34:35  ID:9dMGMxaj.net(8)
だからCだけが生き残ったんだろ?
大衆プログラマが望んだ形で変化した結果だからな。
コメント2件

409
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:16:46  ID:vaQfL518.net(8)
生き残ったっていうのは古い言語とくらべての話?
確かにFortlanとかPascalは消えた。
多くの優れた言語が生まれている中、今でも通用するのは
C言語ぐらいだと思うが。

410
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:17:21  ID:zfBmPUKU.net(6)
どちらも消えてねーだろw
コメント2件

411
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:21:30  ID:vaQfL518.net(8)
>410
第三者の人が検証できるランキングとかある?
そりゃどこか目につかないところではあるかもしれないが、
例えばその言語で仕事したいと思ったとき
探せ出せないような言語は消えたと思っていいだろう。
コメント2件

412
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:39:22  ID:zfBmPUKU.net(6)
>411
Intel Visual Fortran とかググッてみ。
リアルタイムで今も製品出てるのを消えたとは言わないでしょ。

413
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:45:13  ID:vaQfL518.net(8)
>408
ということで、C以外も生き残ってるんだが?w

414
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:52:22  ID:dNMEb7c5.net(2)
問題は暗黙に行う言語の動きに対してどれだけ
コンセンサスがとりやすいかってことだ。
c++ はもうその意味でどっか行ってる。

415
デフォルトの名無しさん[sage]   投稿日:2016/07/22 01:30:33  ID:znBq8w6k.net(8)
>407
俺の言いたいことはそういうことじゃなくて
ローレベルな世界ではその言語固有のオブジェクトになってない
単なるメモリブロック、データ、信号を扱わなきゃならない場面が多いんだよ
それはファイルから読み込まれるかもしれないし
ネットワーク越しにやってくるかもしれないし
ディバイスとのやり取りかもしれないし
ま、要するに単なるデータ
Cはメモリモデルがシンプルだからこういった単なるメモリブロックを扱うのに
長けているんだよ
構造体にキャストするだけでそのまま扱えるから
今でもC言語が現場で活躍しているのはこれができるから
もしこういったことが出来なかったとしたら、C言語なんかとっくに滅んでいたに違いない
メモリブロックをキャストして構造体や配列としてアクセスできないとしたら
そんなC言語に価値なんかあるか?
その一点がすごいんだよ、マジセンスある、もしくは運が良かった

416
デフォルトの名無しさん[sage]   投稿日:2016/07/22 01:46:19  ID:znBq8w6k.net(8)
そして多くの言語が見落としがちな部分でもあったんだよ
オブジェクトにしなきゃならないっつってvtable持たせたり
動的にしなきゃならないと、メンバをオフセットではなくハッシュにしたり
どんどん賢い機能を盛り込んでさ
その点C言語の構造体や配列はフラットでむちゃくちゃシンプルな作り
適当なメモリブロックをキャストしても何の問題も起きない
仕様もシンプルで分かりきってる

417
デフォルトの名無しさん[sage]   投稿日:2016/07/22 02:02:58  ID:znBq8w6k.net(8)
別に必ずしも偉い機能を盛り込むのがダメと言っているわけじゃないよ
ただ、Cが何故か生き残っていて今でも使われ続けている原因はソレということ
C言語の用途と、うまい具合にマッチしてて、いい感じに生き残っている

418
デフォルトの名無しさん[sage]   投稿日:2016/07/22 03:13:29  ID:7iYsigKa.net(2)
だからなんだよ?

419
デフォルトの名無しさん[sage]   投稿日:2016/07/22 07:29:28  ID:cZVknNWP.net(2)
構造体の先頭メンバ以外のオフセットは規定されていない
まぁ、オフセットなのでメンバアクセスでどうとでもなるわけで
構造体が定義されたままメモリ上に存在していると考えているアホ
一般的なコンパイラなら定義通りだろうけど規定されていない
規定されていない規定されていない

420
デフォルトの名無しさん[sage]   投稿日:2016/07/22 08:09:11  ID:+awE6fq0.net(2)
構造体のメンバ間のパディングは未規定だけど、オフセットが未規定って言うのは
順番も入れ替わるって言ってるの?

421
デフォルトの名無しさん[]   投稿日:2016/07/22 09:35:29  ID:+Z+w/IAX.net(6)
簡単に入れ替わるさ。
わざわざ入れ替えないでねと指定するレベル

422
デフォルトの名無しさん[sage]   投稿日:2016/07/22 10:31:03  ID:znBq8w6k.net(8)
構造体のメンバの順番が入れ替わらないのは仕様で決まっているよ
決まってないのは間に入る詰め物だけ
http://portable-c.jugem.jp/?eid=17
しかし、詰め物をどうするか、指定できるコンパイラがほとんどだから
実質的に詰め物も問題にならない
C言語プログラマーは自分の使っているコンパイラの仕様ぐらい分かって使っているからね
問題になるとすればエンディアンぐらい

423
デフォルトの名無しさん[]   投稿日:2016/07/22 12:25:18  ID:TIRA9iEO.net(2)
JIS規格だろそれ。。。

424
デフォルトの名無しさん[]   投稿日:2016/07/22 13:24:25  ID:+Z+w/IAX.net(6)
intのサイズがアーキ依存だから通信に構造体は使うなってのが常識だけどな。

425
デフォルトの名無しさん[]   投稿日:2016/07/22 13:25:41  ID:+Z+w/IAX.net(6)
ネイティヴアメリカンの件もあるしな。

426
デフォルトの名無しさん[sage]   投稿日:2016/07/22 19:29:05  ID:5OURMCtc.net(2)
cはメモリは意識するがレジスタは隠蔽するって落とし所がよかったんじゃない。

427
デフォルトの名無しさん[sage]   投稿日:2016/07/22 19:41:14  ID:jv7yTJni.net(2)
Cはパーサが複雑なのとゼロコストで導入できる便利機能が無いのを除けば悪くはない

428
デフォルトの名無しさん[sage]   投稿日:2016/07/22 22:14:58  ID:Oi2oQZIZ.net(2)
cの最大の失敗は波カッコ
ブロックのスコープがパイソン風だったら人類は1世紀以上先の進んでいた

429
デフォルトの名無しさん[sage]   投稿日:2016/07/23 00:49:12  ID:KFsxU+fY.net(2)
代入演算子=と比較演算子==だけは許されざるよ。
つうか、IDEのサジェスチョン機能実装前の
"タイプ数が減る云々"な言語はすべて滅ぶべし。
コメント2件

430
デフォルトの名無しさん[sage]   投稿日:2016/07/23 01:22:33  ID:tWjtYIW6.net(4)
C言語は特徴ある機能で生き残ることができた。
だけそのその特徴ある機能がなかったら生き残れないのか?というと
そうではない。現にその特徴ある機能がない言語ばかりだからだ。

ここから言えることは、なにもない言語は消え行く定めだが、
C言語の機能がなくとも、それに上回る機能があれば生き残るということだ。
コメント2件

431
デフォルトの名無しさん[sage]   投稿日:2016/07/23 01:27:50  ID:tWjtYIW6.net(4)
>429
IDEを使うことでタイプ数が減る機能はどうでもいいんだよね。

どうでもいいというのは、タイプ数が多くても少なくても
さほど違いはないということ。

重要なのはタイプ数じゃなくて読む文字数だから。
ただしタイプした文字数=読む文字数ではないということ。

どういうことかというと、人間は文章を読むとき
読み飛ばしをするということ。

例えばJavaでいうimportやMainクラス定義なんかは
読み飛ばす部分。だからそんなところで読む数の違いは出てこない。
また型定義は読むところではあるが、型定義だけを読むことで
型を理解できると言うメリットが有る。

これは型が書かれていないコードから、型を解析する
作業よりも読む文字数は少なくなる。

432
デフォルトの名無しさん[sage]   投稿日:2016/07/23 18:21:41  ID:6yKmk1QH.net(2)
代入演算子は要らなかった

433
デフォルトの名無しさん[sage]   投稿日:2016/07/23 23:13:50  ID:7iusE9pH.net(2)
代入は文であって値を持つべきでないと?

434
デフォルトの名無しさん[]   投稿日:2016/07/23 23:53:23  ID:zx6tBrAB.net(2)
愚か者めが

435
デフォルトの名無しさん[sage]   投稿日:2016/07/24 07:03:52  ID:L1GkLU8N.net(2)
Cが生まれた時代はな
シンタクスハイライトどころか下手すると
スクリーンエディタ(キリッ カットアンドペースト(キリッ
すら高価な機能だったんやで

436
デフォルトの名無しさん[]   投稿日:2016/07/26 15:33:00  ID:ka5+GTWz.net(2)
テキストエディタが数万円してからな

437
デフォルトの名無しさん[sage]   投稿日:2016/07/26 16:33:02  ID:dc6Ut+6F.net(2)
Cが生まれた頃にはまだコピー&ペーストはなかったぞ。

438
デフォルトの名無しさん[sage]   投稿日:2016/07/26 16:39:32  ID:qFADw225.net(2)
最初のクリップボードはAltoかな
Cが1972年でAltoが1973年

439
デフォルトの名無しさん[sage]   投稿日:2016/07/26 16:42:33  ID:P0pX8+u1.net(2)
>430
で、その、この先生きのこるのはどの言語!

440
デフォルトの名無しさん[sage]   投稿日:2016/07/26 17:29:32  ID:XfeIwbpB.net(2)
アセンブラ C Fortran Lisp の古代言語
Javascript COBOL Python
HTML PHP はなんだかんだ言って生き残るんだろな〜

あとは Java がどうなるかな
コメント2件

441
デフォルトの名無しさん[sage]   投稿日:2016/07/26 21:54:04  ID:8mWO7mKy.net(2)
言語じゃないというのはナンセンスか

442
デフォルトの名無しさん[sage]   投稿日:2016/07/26 22:19:28  ID:3gO7Ljql.net(2)
お前ら、テーマに戻れや。
なぜオブジェクト指向は愚かな考えなんだ?

443
デフォルトの名無しさん[]   投稿日:2016/07/26 22:55:12  ID:wvFbwXsy.net(6)
愚かな設計が蔓延してるってことだな

444
デフォルトの名無しさん[]   投稿日:2016/07/26 22:55:59  ID:wvFbwXsy.net(6)
>4
これがすべてじゃないの?
コメント2件

445
デフォルトの名無しさん[]   投稿日:2016/07/26 23:00:24  ID:wvFbwXsy.net(6)
初期設計を少しでも間違えたり手抜きしたら
そのシステムの成長絶望的になり死ぬ

446
デフォルトの名無しさん[sage]   投稿日:2016/07/27 02:09:24  ID:gQfYvWZ4.net(4)
>444
そして>41-42で完全に解説完了
ジョークとしてわざとオブジェクト指向として間違ったプログラム例だしてるってのに
「この通りオブジェクト指向は直感に反して〜」じゃねぇっつのw
コメント2件

447
デフォルトの名無しさん[sage]   投稿日:2016/07/27 02:12:13  ID:gQfYvWZ4.net(4)
>440
Javaは普及してるから残るだろうなぁ
なんか、いつものベストじゃないけど普及したから
ベターとして残るというプログラム史のいつもの展開というか。

448
デフォルトの名無しさん[sage]   投稿日:2016/07/27 06:54:54  ID:cUWSkWnI.net(2)
問題はそういうジョークを本気にする人が多すぎるってことだろうに。
つまりオブジェクト指向ってのは一般にコンセンサスをとりずらい概念なんだよ。
コメント2件

449
デフォルトの名無しさん[sage]   投稿日:2016/07/27 06:58:14  ID:LCC7iz/I.net(2)
おまえ等の好きそうなネタ見つけた

オブジェクト指向で料理を例える場合,chicken.cut()かchef.cut()か
https://teratail.com/questions/41875
コメント2件

450
デフォルトの名無しさん[sage]   投稿日:2016/07/27 07:29:08  ID:mL4CmQKe.net(2)
>446
コーヒーの例は単純明快だからいいけど、美少女は実際に正しく設計できるやつが日本に何人いるかってレベルだろうな

451
デフォルトの名無しさん[sage]   投稿日:2016/07/27 07:30:19  ID:+Qq3g4cQ.net(2)
>448
これをジョークだと思って実戦に挑む奴がデスマーチを引き起こす
コメント2件

452
デフォルトの名無しさん[sage]   投稿日:2016/07/27 07:32:08  ID:iBdKVqyS.net(2)
基底に近いほど修正しづらいのは事実

453
デフォルトの名無しさん[]   投稿日:2016/07/27 07:33:05  ID:8lCNqFHq.net(2)
>451
ほんとこれ

454
デフォルトの名無しさん[sage]   投稿日:2016/07/27 09:54:15  ID:8yC4YC1p.net(2)
>449
tokage.cut()

455
デフォルトの名無しさん[]   投稿日:2016/07/27 12:23:59  ID:mW7SlT40.net(2)
くだらん与太話はこれくらいにしてそろそろ全力でウンコ美少女問題に取り組むか

456
デフォルトの名無しさん[]   投稿日:2016/07/27 17:21:14  ID:8Owc4Qqf.net(2)
ウンコしない美少女は偶像
つまり人間からの派生ではない

457
デフォルトの名無しさん[sage]   投稿日:2016/07/27 17:58:49  ID:CvwlEFOq.net(2)
なんか、いっつも同じレベルの書き込みするから
自演になってないって自覚しとる?きみ。

458
デフォルトの名無しさん[]   投稿日:2016/07/27 19:55:41  ID:9bIrtjQt.net(4)
ユーザーはうんこなんて機能は求めて無いから削除しろよと

459
デフォルトの名無しさん[sage]   投稿日:2016/07/27 20:16:04  ID:YbwWr11d.net(4)
人間がウンコするのは、
ユーザーが求めているからなのか?

460
デフォルトの名無しさん[]   投稿日:2016/07/27 20:21:12  ID:9bIrtjQt.net(4)
ソフトの機能に不要な要素まで組み入れても誰も買わないだろ。
現実の要素を完全に網羅する必要は無いから

461
デフォルトの名無しさん[sage]   投稿日:2016/07/27 21:23:16  ID:dkELqw5/.net(2)
それは当たり前のことではあるな
必要な要素だけ実装すればよいからな
Humanクラスがどういった要素を持つかは案件によるし
もし人の持つすべての機能をHumanクラスに実装できるっていうんなら
そのHumanクラスにプログラムも書いてもらえばよい

よって現実の人間がうんこをするからと言って
必ずしもHumanクラスにうんこをする機能が必要かどうかはわからないし
必要な案件に出会ってから美少女クラスのうんこの扱いについて考えればよい

462
デフォルトの名無しさん[sage]   投稿日:2016/07/27 21:50:52  ID:eu5RKOJ4.net(2)
要件で一言も触れてないのに「はぁ?○○はあって当然だろ」とか言い出す顧客しかいないから
想像できるものは全て詰め込んでおく必要がある。
ウンコだろうとゲロだろうと例外はない。

463
デフォルトの名無しさん[sage]   投稿日:2016/07/27 22:27:39  ID:YbwWr11d.net(4)
肝心なことを決めずに作り込んでいく。
美少女クラスのスーパークラスは人間クラスである。
排便メソッドは関係ないからそれでいい。
だが、ある時ユーザーからの要望で人間クラスに排便メソッドを作った。
人間だもの、当たり前だ。
それでいいと思った。その時がくるまでは。
ある時私は気がついた。
これだと美少女が排便すると www

464
デフォルトの名無しさん[]   投稿日:2016/07/27 22:41:58  ID:60oYSks+.net(2)
このスレ的にはgo言語とかD言語のダックタイピングってどうなん?

465
デフォルトの名無しさん[sage]   投稿日:2016/07/27 22:47:49  ID:rlINsgdh.net(2)
ダックタイピング

由来

アヒルのの鳴きマネをする人間はアヒルに違いない

466
デフォルトの名無しさん[]   投稿日:2016/07/28 00:19:19  ID:c5ty+8F5.net(2)
ダッチワイフィング

由来

オランダの人妻はエロいに違いない

467
デフォルトの名無しさん[]   投稿日:2016/07/28 00:47:19  ID:6VZFO4sX.net(2)
オブジェクト指向は幻想

468
デフォルトの名無しさん[]   投稿日:2016/07/28 00:48:34  ID:/rI5OmsP.net(2)
COBOLからJavaへの移行で「実際に」成功した案件は存在しない
コメント2件

469
デフォルトの名無しさん[]   投稿日:2016/07/28 00:49:15  ID:LhM4XtYR.net(2)
細胞から実装しろ

470
デフォルトの名無しさん[]   投稿日:2016/07/28 00:49:41  ID:OYshXAPi.net(2)
元素から実装しろ

471
デフォルトの名無しさん[sage]   投稿日:2016/07/28 01:51:28  ID:y7xhJAs5.net(2)
>468
COBOLって単なる言語じゃなくて運用まで含めたシステムの総称だからな。かなうわけがない
とは言え、高賃金のCOBOLプログラマーもいずれ死に絶えるわけでなんとかしないといけないんだけどさ
Adaなんか勉強して損した

472
デフォルトの名無しさん[]   投稿日:2016/07/29 12:00:06  ID:TRgFQe5b.net(2)
Ocamlならあるいは

473
デフォルトの名無しさん[sage]   投稿日:2016/07/29 18:48:09  ID:POEPtDrt.net(2)
ないない
そもそもCが小文字の時点で語る資格なし

474
デフォルトの名無しさん[]   投稿日:2016/07/30 00:08:52  ID:lNYXBi4+.net(2)
ならScalaでスイス銀行の例もあるし?

475
デフォルトの名無しさん[sage]   投稿日:2016/07/30 00:35:24  ID:gkAo/Cig.net(2)
具体的に

476
デフォルトの名無しさん[sage]   投稿日:2016/07/30 15:22:29  ID:OSfj7rnr.net(6)
オブジェクト指向を考え出した人間もオブジェクト指向の解釈を誤っていたのではないか
クラスというのは人間が直感的に思い描く世界の事物をプログラムコードにマップする手段ではなくて、
プロセスという大きなチューリングマシンの中の小さなチューリングマシンを記述する手段にすぎなかった
(チューリング完全性の利用例の一つだった

クラスのコンストラクタは状態機械であるところのチューリングマシンの初期化と生存期間の始まりに相当する
デストラクタは後始末と生存期間の終わり。
メソッドはチューリングマシンにlive timeを与え、計算を進めさせる。
そんだけ

状態(mutableなデータ)を含むから関数型プログラミングとは似て非なるものだし、
数学的にカタをつけるにはチューリングマシンの一変種で無限長の磁気テープをクラスで小分けにしたもの、
としか言い様が無い
コメント2件

477
デフォルトの名無しさん[sage]   投稿日:2016/07/30 15:46:36  ID:OSfj7rnr.net(6)
こう考えると継承のしくみを使ったプログラミングが
ごく一部のデザインパターンにおいてしか成功しないことも理解できる
継承というしくみのは人間が「こうだったらイイなあ…」と思い描いて作っただけで、
>476な解釈からは必然性が出てこない
つまり継承というしくみは論理的妥当性を欠いており、
継承を下手に使ったらあちこちで矛盾が生じて話が発散していく傾向なのも仕方が無い

478
デフォルトの名無しさん[sage]   投稿日:2016/07/30 18:44:13  ID:TLvR+07H.net(4)
だいたいプログラミング業界って、

新しいものが導入される
→古いものはやめてこれ使いましょう
→新しいものも色々問題があることが分かってくる
→極力使わないようにしましょう

の繰り返しだからな。継承しかり例外しかり。
最近はテンプレート使いすぎなんじゃねーのって思うけど。

479
デフォルトの名無しさん[sage]   投稿日:2016/07/30 19:01:15  ID:TM2kAcv9.net(6)
> 継承しかり例外しかり。
継承も例外も極力使わないようにしましょうなんて
誰も言ってないが?

間違った使い方が明らかになって、
間違った使い方をしないで
正しい使い方をしましょう。

っていう結論ならばいつもそうなっている。
継承しかり例外しかり。
コメント4件

480
デフォルトの名無しさん[sage]   投稿日:2016/07/30 19:38:58  ID:XUUv9y4D.net(4)
結局、人間クラスと美少女クラスは
どうすればいいんだ?

481
デフォルトの名無しさん[sage]   投稿日:2016/07/30 20:02:32  ID:TLvR+07H.net(4)
>479
正しく使おうってのは常に真だから内容が無いのと同じだな。
できるだけ使わないようにって風潮はある。程度の差はあれgotoとかと同じ。
コメント2件

482
デフォルトの名無しさん[sage]   投稿日:2016/07/30 20:08:02  ID:OEu/5F3U.net(2)
javaはオラクルがVMを提供しなくなったら
廃れるだろ。

483
デフォルトの名無しさん[sage]   投稿日:2016/07/30 21:52:18  ID:NYI5chEQ.net(2)
>479
結局、言語の問題よりも馬鹿を入れない事のが重要ってことだろ。
そういう意味じゃ linus のやり方は正しいってことになる。

484
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:13:41  ID:TM2kAcv9.net(6)
>481
> できるだけ使わないようにって風潮はある。
無いよそんなのwww

アルアル言っていても、
嘘がホントになったりしないアルよ〜w

485
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:18:10  ID:OSfj7rnr.net(6)
(定義が論理的に妥当でなかったりあいまいだったりするとお議論が紛糾する例

486
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:23:44  ID:3WJAVcau.net(6)
多少コピペが多くなっても継承をむやみに使ってはいけない場面ってのは想定しなきゃなぁ

487
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:38:52  ID:TM2kAcv9.net(6)
なんで継承をやめたらコピペが多くなるのかそれがわからんw

正しく継承使うといういうのは、
継承以外の方法を使うべきときに、違う方法を使うという意味であって、
ならばその違う方法で、コピペを回避すれば良いんだよ。
コメント2件

488
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:44:09  ID:XUUv9y4D.net(4)
委譲を使えばいいんだろ。
肛門クラスを作って、
人間クラスと美少女クラスのプロパティに肛門インスタンスを持てばいいんだ。
排便できる肛門と出来ない肛門と。

489
デフォルトの名無しさん[]   投稿日:2016/07/30 23:06:52  ID:FiK/AfbE.net(2)
コーデングテクニックでごまかすのはアカンね
そーゆーことするから所謂ひとつのスパゲッテイー的ソースコードが出来上がるんや
デザインの問題はデザインで解決出来な一生炎上商法プログラマーのまんまやで

490
デフォルトの名無しさん[sage]   投稿日:2016/07/30 23:38:21  ID:3WJAVcau.net(6)
>487
ミックスインの手法が確立されてないってことは、継承が害悪になる場面ってのはあるんだよ。

そういう場合は、下に書かれてる通り、コンポーネント的な設計が必要。
そういう時に、コンストラクタでコピペが必要ってこと。

491
デフォルトの名無しさん[sage]   投稿日:2016/07/30 23:41:35  ID:3WJAVcau.net(6)
そうするとインタフェースの定義が必要になってくるから、結局継承が楽だし、よほどのことじゃなければそれで済ませるんだけどね

492
デフォルトの名無しさん[sage]   投稿日:2016/07/31 00:01:52  ID:VGavY/X3.net(2)
if文ですべて解決できるんじゃね

493
デフォルトの名無しさん[sage]   投稿日:2016/07/31 00:35:50  ID:UuqrLdJE.net(2)
だから、委譲というか、
デリゲート使えっていうか。

494
デフォルトの名無しさん[sage]   投稿日:2016/07/31 01:44:59  ID:LD4Pss8J.net(4)
ほんと最近、is-a関係、has-a関係っていうの
軽視されてるよな。

is-aのときに継承すれば良いんだって
昔から言われてるんだが。
これは古い概念じゃないぞw
コメント4件

495
デフォルトの名無しさん[sage]   投稿日:2016/07/31 03:56:26  ID:Wl4/o5Bb.net(8)
フリーザは美少女クラスのis-a関係

496
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:04:47  ID:xuMLlix3.net(8)
>494
is-a関係は一般に存在しない
例外なのは同値関係と包含関係が数学的に定義できて無矛盾性が担保された
(=直接証明されたか、より一般的な体系の無矛盾性に帰着できる)ケースだけだが
そんなのはスゲーまれ
いっぱいあると感じるのは錯覚

不用意にis-a関係を導入することでクラス分けにあいまいさが紛れ込み、
プログラムの設計とか簡単に壊滅する

497
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:09:00  ID:xuMLlix3.net(8)
その点ha-a関係はやりやすいなぜなら単なる集約であって分類が絡まないから
has-a関係の導入自体が矛盾を生じることは無いからだ

498
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:36:24  ID:tLh0Iyun.net(4)
is-a関係だと思っているものは全てhas-aとしても実装できる。

概念系統が複数ある場合、is-aでは多重継承もしくは、
全ての組み合わせの派生クラスを定義することが必要だが、
has-aではそういう問題は無く柔軟に設計できる。

499
デフォルトの名無しさん[]   投稿日:2016/07/31 09:41:31  ID:/E3bqgob.net(2)
OO使わない場合に
フラグとかカウンタとかステータスってのをどう管理するのかを
単刀直入に知りたい。
関数型なんかでもこの辺がよくわからない
(消せるはずはないから何か別の概念などで整理・管理されるんだとは思うけど)
コメント4件

500
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:46:59  ID:tLh0Iyun.net(4)
>499
普通の構造体でいいのでは?(Cでいうところの)

501
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:59:49  ID:p/Oh4nGe.net(2)
>499
そこでクロージャですよ

502
デフォルトの名無しさん[sage]   投稿日:2016/07/31 10:00:24  ID:P4D/j0eN.net(2)
is-a だったらliskov置換原則の方が理解し易いし、コード書くときの指針になる。

503
デフォルトの名無しさん[sage]   投稿日:2016/07/31 10:09:28  ID:xuMLlix3.net(8)
ちなステータスというのは大概I/Oを通じて外界と繋がっている事物の結果を意味し、
実時間軸上でうつろうもの(mutableなブツ)なので厳密には関数型プログラミングに存在し得ない概念

関数型プログラミングでは「1」を返す関数と、和を返す関数から「1」+「1」=「2」という演繹ステップを経て
「2」を返す関数を作る、というように演繹ステップとしての時間経過しか扱わない
これでどうやって実時間で動くシステムをプログラムするのかというと、
演繹ステップの順序と実時間軸上の物事の変化順序が一致するように関数を設計してやって、
擬似的に演繹順序を実時間軸上の順序と合わせてそれっぽい動きを実現しているわけや

例えばHDDのエラーステータスとか、昨日のステータスに対し今日のステータスが変化した、と捉えるのではなしに、
「HDDの昨日のステータス」を返す関数と、ステータスの適切な処理に対応する何がしかを返す関数とから
「HDDの今日のステータス」に対する処理に対応する何がしかを返す関数を生成する
ことでHDDの今日のステータスを処理する

504
デフォルトの名無しさん[sage]   投稿日:2016/07/31 11:53:00  ID:LD4Pss8J.net(4)
>494
女は一般に存在しない
いっぱいあると感じるのは錯覚

って言ってるようなもんだなw

一般に存在しないというのなら
存在しないと言う根拠を書け
コメント2件

505
デフォルトの名無しさん[sage]   投稿日:2016/07/31 13:06:04  ID:xuMLlix3.net(8)
>504
is-a関係は一般には存在しないと書いたのじゃ
例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう
また、なんで女クラスの派生クラスが妻クラスではいけないのか?その根拠を目下人類は手にしていない
はい論破

ちな、有限集合に関しては無矛盾性は常に証明できるから別に
 女クラス←妻クラス
でも
 妻クラス←女クラス
でも良いが、有限のケースしか想定しないんならswitch文で良いやという話で
オブジェクト指向の出る必然性がかなり減る
あくまで無限集合としてのクラスXを今数学的に正しく定義付けできるか?(X=妻 or 女 or so on)というのが問題
コメント4件

506
デフォルトの名無しさん[sage]   投稿日:2016/07/31 15:57:24  ID:Wl4/o5Bb.net(8)
is-aかどうかなんて抽象的すぎて判断の材料になんないよな。

何を持ってしてis-aとするかが大事なんだけど、そこをきちんと答えられる人は少ない。

507
デフォルトの名無しさん[sage]   投稿日:2016/07/31 15:58:19  ID:JthY0EmQ.net(2)
>505
そりゃ妻のような一時的な属性に過ぎないものををクラス化するのがそもそも間違ってる
同性婚以前に結婚離婚で既に破綻してるじゃないか
例が悪いので説明になってない、やり直し
コメント2件

508
デフォルトの名無しさん[sage]   投稿日:2016/07/31 16:07:11  ID:Wl4/o5Bb.net(8)
>507
男も改造すれば女になりうるから、男クラスのインスタンスを作ると、参照を維持したまま女クラスに変身できない。

だから、is-aなんてものは、性転換をしないという契約がなければなりたたない。

契約をしてないのにis-aなんて言いきれる訳ない。

509
デフォルトの名無しさん[]   投稿日:2016/07/31 16:07:23  ID:kxVM21o1.net(2)
妻とか女とか、単なる属性をクラスにするからワケが分からなくなる。

510
デフォルトの名無しさん[sage]   投稿日:2016/07/31 16:27:16  ID:iFqDH3lg.net(2)
いいから、肛門クラスを作って
デリケートしろ!

511
デフォルトの名無しさん[sage]   投稿日:2016/07/31 16:35:53  ID:Wl4/o5Bb.net(8)
口に肛門つけてください。
しゃべれるしうんこできるし便利だと思うんです。

512
デフォルトの名無しさん[sage]   投稿日:2016/07/31 21:22:59  ID:XDiDpvFC.net(2)
話についていけない子が
必死で面白レスしようとするのが悲痛
人間の悲しみが透けて見える

513
デフォルトの名無しさん[sage]   投稿日:2016/08/01 00:44:08  ID:E1waX2Jm.net(16)
>505
> 例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう

ならないなw
お前設計がおかしいよ。

妻をクラスするって発想がそもそも
キチガイじみてる。
コメント2件

514
デフォルトの名無しさん[sage]   投稿日:2016/08/01 00:46:25  ID:E1waX2Jm.net(16)
普通は性別は属性だよなw

人クラスがあって、名前・年齢・性別
ほら属性だ。

そのうち佐藤クラスを作るとか言いそうだwwww

515
デフォルトの名無しさん[sage]   投稿日:2016/08/01 00:52:22  ID:E1waX2Jm.net(16)
is-a関係っていうのは必要条件であって十分条件じゃないんだがw
is-aになっていれば必ず継承関係にあるってことじゃない。
継承しようと思ったとき、is-a関係を満たしていなければいけないって話だ。

516
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:01:45  ID:8BzY1j1Y.net(2)
オブジェクト指向ってどこで間違ったんだろう
途中までは良い線行ってたと思うんだけど、どこからか使いものにならなくなったよね
コメント2件

517
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:04:20  ID:E1waX2Jm.net(16)
オブジェクト指向が使われてない
フレームワークなんて無いんだが?

使い物にならなくなったという考えがそもそも間違いだな。

まあ「使い物にならなくなった」と言い続けることで
他の人に事実だと錯覚させようとする手段ニダ?w
コメント2件

518
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:06:05  ID:fJ4xvUon.net(2)
だから、継承捨てて委譲を使えっての!

519
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:41:20  ID:C6PCKyxq.net(4)
>517 本当にオブジェクト指向が必要だから使っているのか、
抽象化の手段がオブジェクト指向しか無いから使わざるをえないのか

昨今の言語なら継承以外の方法で抽象化とか再利用とかできたりする
OOは本当に最小限にして、late bindingやメッセージパッシングの妙を際立たせるとより効果的
Real World OCamlだとヘテロな型を持つ木構造を探索するのに使ってたりしたな
コメント2件

520
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:41:37  ID:E1waX2Jm.net(16)
継承捨てて委譲を使えっていうのは
マイクロソフト用語でコンポーネント指向っていうんだが、
これを意図的に取り入れたのが2000年前後に使われていたVB6なんだよな。

そのVB6も.NETになってから継承をサポートしたし、
コンポーネント指向だけではだめだということだろう。

521
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:43:39  ID:E1waX2Jm.net(16)
>519
オブジェクト指向は必要だから使うんじゃなくて
いくつもある手段の中から一番適切だから使うんだよ。

お前が例示する使い方は、単にオブジェクト指向じゃないほうが
適切だってだけ。そしてオブジェクト指向が適切だから
ほとんどのフレームワークでオブジェクト指向が使われている。
他に代替技術があるにもかかわらずだ。
コメント2件

522
デフォルトの名無しさん[sage]   投稿日:2016/08/01 02:44:42  ID:6ITirnPy.net(2)
>513
だからその設計はねーってこと言ってるんだろ。

日本語読めないの?

523
デフォルトの名無しさん[sage]   投稿日:2016/08/01 03:09:46  ID:FN/zaXKS.net(2)
>516
>どこからか使いものにならなくなったよね
C++の奇形めいたオブジェクト指向は衰退して
別方面で進化してきたObjecive-CとJavaが本流として
いま街でみかける全てのスマホアプリを支えてるけどな。

524
デフォルトの名無しさん[sage]   投稿日:2016/08/01 03:31:24  ID:cj2k2Gm/.net(2)
今はObjrctive-CじゃなくてSwiftじゃね?

525
デフォルトの名無しさん[sage]   投稿日:2016/08/01 04:29:03  ID:C6PCKyxq.net(4)
>521 適切だから使うというなら何故デザインパターンなんて出てきたのか?
デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
他の手段が使える言語なら間違いなく採用しない

他にもExpression ProblemをJavaで解決しているのとOCamlで解決しているのを比較してみるといい
OOだと論文書けるくらいには面倒な方法があるけど、OCamlのVariant使った方法と比べて圧倒的に可読性と簡潔さに劣っている
コメント4件

526
デフォルトの名無しさん[sage]   投稿日:2016/08/01 06:27:47  ID:c5RAbFYM.net(2)
JavaはC++よりレガシーな言語になってしまったが…

527
デフォルトの名無しさん[sage]   投稿日:2016/08/01 09:36:21  ID:E1waX2Jm.net(16)
>525
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、

違う。OO便利だなーって使っているうちに
設計のアルゴリズムが確立されていって、
それをまとめたのがデザパタ

528
デフォルトの名無しさん[]   投稿日:2016/08/01 10:06:54  ID:Q0J3uZmP.net(2)
いや、デザパタはOOと関係無いから。
関係あるのはOOPの方

529
デフォルトの名無しさん[]   投稿日:2016/08/01 10:50:43  ID:pyyhbxGP.net(2)
【閲覧注意】戦闘に巻き込まれて頭部を切断された少女の遺体。これがリアルなシリア。
http://dqnworld.com/archives/34.html
これが本当の戦争の恐怖。この少女には大人の戦争は関係ないですからね。巻き込まれた少女の遺体を持って何か
を訴えかけている男たちの映像です。

【閲覧注意】シリアで反体制派の兵士が顔を吹き飛ばされてしまう瞬間。
http://dqnworld.com/archives/89.html
スローモーションが怖すぎる・・・。

【閲覧注意】アッラーフアクバルを叫びながら少年を斬首する映像を公開する。
http://dqnworld.com/archives/3975.html
点滴?のようなものが見えるんだけど。助けられた少年じゃなかったのか。助けられた所を強奪されてアッラーフ
アクバル?なのかしら・・・。

【閲覧注意】磔にされた戦闘機パイロットの遺体。シリアにて。
http://dqnworld.com/archives/3996.html
今日のアッラーフアクバル動画。

妻の目の前でぶっ飛ばされた旦那さん?これは死んだかな(°_°)
http://dqnworld.com/archives/4004.html
さすがにこれだけ飛ばされたら助からないかな・・・。

【閲覧注意】あおむけでゲロを吐きまくっている男性。助けてやれよ・・・。窒息するぞ(@_@;)
http://dqnworld.com/archives/4007.html
これ結構危ないんじゃないの?撮影してないで横向きにしてやれよ。これ窒息する可能性あるだろ。

衝撃映像。事故って大回転した車から少女がポロリ。
http://dqnworld.com/archives/4013.html
この少女がどうなったのかが気になる所ですが動画の説明には何も書かれていなかった・・・。

530
デフォルトの名無しさん[sage]   投稿日:2016/08/01 10:52:18  ID:IZIdUKpU.net(2)
ここまでLSPの話題なし

531
デフォルトの名無しさん[sage]   投稿日:2016/08/01 17:10:00  ID:GD9lEFl6.net(2)
>525
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、

おしい。
デザパタはJavaやC++に適さない問題を無理やりJavaやC++で解決するためのもので、
SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。
コメント4件

532
デフォルトの名無しさん[sage]   投稿日:2016/08/01 18:06:20  ID:99zq/hjd.net(2)
smalltalk だと、人間クラスと美少女クラスの問題は
どう解決するの?
コメント2件

533
デフォルトの名無しさん[sage]   投稿日:2016/08/01 20:14:16  ID:NIKdUbwx.net(2)
Squeak Smalltalk だと、こんな感じか?

Object subclass: #人間
  instanceVariableNames: 'もろもろ'
  classVariableNames: ''
  poolDictionaries: ''
  category: '美少女-排便'.

人間 compile: '排便 ^#便'.

Trait named: #美少女 uses: #() category: '美少女-排便'.

美少女 compile: '排便 self notify: ''トイレには行きません''. ^#プリン'.

おまえら := 人間 new.
おまえら 排便. "=> #便 "

橋本環奈 := 人間 new.
橋本環奈 assureUniClass class uses: 美少女.

橋本環奈 排便. "Warning: トイレには行きません => #プリン"

534
デフォルトの名無しさん[sage]   投稿日:2016/08/01 20:39:01  ID:E1waX2Jm.net(16)
>531
> SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。

例えば、どのパターンが簡潔明瞭に記述できるの?
一番簡単なパターンでいいので書いてみて。

考えるのが面倒なら俺が出題しても良い?
Singletonは個人的につまらないので
そうだね、DecoratorはSmalltalkやSelfで書いたらどうなる?
コメント2件

535
デフォルトの名無しさん[sage]   投稿日:2016/08/02 00:07:55  ID:6KXXOitA.net(6)
>534
試しにウィキペの Decorator パターン
https://ja.m.wikipedia.org/wiki/Decorator_パターン

にある例を Smalltalk で書いてみた
http://ideone.com/Y1WAxY

けど、圧倒的に簡潔になった感じはしないな
>531 ならどんなふうに書く?
コメント6件

536
デフォルトの名無しさん[]   投稿日:2016/08/02 00:11:39  ID:xLK/JaT/.net(2)
シングルトンなんて言語に最初から組み込んでおけ(Scala信者並感)

537
デフォルトの名無しさん[sage]   投稿日:2016/08/02 00:40:29  ID:Aujbapgh.net(2)
>532
そもそもきみは継承関係=オブジェクト指向でしか発想してないから
クソ邪魔くさい継承取っ払ってモジュール自由に組み外しできるタイプの
オブジェクト指向の話にまったくついてこれてないからずっと嗤われてるわけで。

538
デフォルトの名無しさん[sage]   投稿日:2016/08/02 00:44:39  ID:flPsn8Jo.net(14)
>535
別にDecoratorじゃなくていいんだけどね。
圧倒的に簡潔かつ明瞭に記述できるっていってるから
そのコードを見たいだけ。
コメント2件

539
デフォルトの名無しさん[sage]   投稿日:2016/08/02 05:55:14  ID:wOSsX6OQ.net(6)
デコレータパターンはそもそも静的に型がつけられることからくるクラス階層への制約を誤魔化すための小手先の技術でしかない。
型が完全に動的なSmalltalkやSelfではデコレータパターン自体が不要。
コメント2件

540
デフォルトの名無しさん[sage]   投稿日:2016/08/02 10:26:45  ID:KjBiyzhL.net(2)
型が動的だと>535の例のようなコードはどうなるの?
コメント4件

541
デフォルトの名無しさん[sage]   投稿日:2016/08/02 10:29:15  ID:YMxtX/GD.net(2)
そそ
例えばアセンブリや機械語は制約がないからデコレータパターンとか要らないでしょ
それと同じでSmalltalkには何も必要ないよ

542
デフォルトの名無しさん[sage]   投稿日:2016/08/02 13:11:20  ID:KCBRtMku.net(4)
全然違うのだが。デコレータもSmallTalkも理解してないとみた。

543
デフォルトの名無しさん[sage]   投稿日:2016/08/02 13:40:40  ID:C0zGukRC.net(2)
アセンブリというかC言語だとこんな感じか。出来るには出来るけどちょっとねえ
http://codepad.org/XgRtJlQb
コメント2件

544
デフォルトの名無しさん[sage]   投稿日:2016/08/02 15:34:07  ID:lROFhaXh.net(10)
なにも知らなくても語れる。
それが Smalltalk のいいところらしい。
人間の悲しさがほの見えるな・・・

545
デフォルトの名無しさん[sage]   投稿日:2016/08/02 16:01:47  ID:wOSsX6OQ.net(6)
>540
Smalltalkはよくわからないけど、
DoublePriceとかWholesalePriceとかいうクラスを増やすより、
元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。
SmalltalkのPluggableMVCとかもクロージャで柔軟な変換を実装しているし。
コメント2件

546
デフォルトの名無しさん[sage]   投稿日:2016/08/02 16:53:22  ID:I0xQlCpI.net(4)
>545
> 元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。

こんなんでどうですかね?
http://ideone.com/d8iLSE

ついでにRuby版も書いてみた
http://ideone.com/WW8gva
コメント14件

547
デフォルトの名無しさん[sage]   投稿日:2016/08/02 17:16:35  ID:I0xQlCpI.net(4)
>543
これだと Java 版でいうところの getValue() する前に
毎回、二倍にして 利益80乗せて、また二倍にしてもう一度 利益200乗せて…とかって
いちいち書かないと 840を返せないから、結果は合っているけど要求仕様を満たしていないような気がする
コメント2件

548
デフォルトの名無しさん[sage]   投稿日:2016/08/02 18:25:05  ID:lROFhaXh.net(10)
いつになったら、
人間クラスと美少女クラスの問題に辿りつけるのかね?
悲しいの〜。
コメント2件

549
デフォルトの名無しさん[sage]   投稿日:2016/08/02 20:24:15  ID:wOSsX6OQ.net(6)
>548
とっくに解けてるじゃん
ばか?

550
デフォルトの名無しさん[sage]   投稿日:2016/08/02 20:30:55  ID:lROFhaXh.net(10)
どう解けてるんだよ。
人間の肛門と天使の肛門にコンポーネントするのか?

551
デフォルトの名無しさん[]   投稿日:2016/08/02 20:41:47  ID:UCo4tbLK.net(6)
用途も分からず闇雲に現実世界をクラス化して行ったら、一生掛かっても終わらないから無駄な事すんな。

552
デフォルトの名無しさん[sage]   投稿日:2016/08/02 20:42:03  ID:9rM4/wP9.net(2)
美少女は偶像であり人間ではない

553
デフォルトの名無しさん[sage]   投稿日:2016/08/02 20:57:34  ID:flPsn8Jo.net(14)
もうそろそろいいかな?

みんな「デコレーターパターン」をどうするか?というテーマで
会話が成り立ってるよね?

つまりこういうことさ。デザインパターンっていうのは用語。
実装じゃない。

デコレーターパターンをJavaならこう書く、SmallTalkならこう書くと
いうふうに共通認識ができてる。これこそデザインパターンの有用な所。

だからコードの書き方が決まってるわけじゃないんだよ。
設計だからね。言語が決まらない状態であっても話はできる。

デザインパターンをどういうふうに書くかってのは例でしか無いんだよ。
目的を達成できるならどう書くてもいいし、デコレータパターンを
どう書いてもそれはデコレータパターンなのさ。

SmallTalkであってもデコレーターパターンっていうのは存在する。
だからこそSmallTalkでデコレータパターンをシンプルに書くことができる!と
主張できる。
コメント4件

554
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:16:53  ID:LOKS06K+.net(6)
>553
なんでみんなより二歩も三歩も手前な意見を
そんな長文で書き込めるの?
コメント2件

555
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:20:29  ID:flPsn8Jo.net(14)
>554
言いたいことはそれだけかw

556
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:22:05  ID:LOKS06K+.net(6)
ごめんね

557
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:24:18  ID:e9gYPknx.net(4)
Smalltalk の t を大文字で書くやつは無知か知ったかぶり
コメント2件

558
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:24:35  ID:lROFhaXh.net(10)
実は誰も Smalltalk なんて知らない www

559
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:27:22  ID:flPsn8Jo.net(14)
反論あるなら待ってるよw

560
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:32:29  ID:LOKS06K+.net(6)
>557
ワロタw

561
デフォルトの名無しさん[]   投稿日:2016/08/02 21:38:39  ID:UCo4tbLK.net(6)
言語は関係無いと言う内容の話への反論が、言語名のミスプリントの指摘とか、レベル低過ぎだろw
小学生の負け惜しみかよw
コメント4件

562
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:39:26  ID:flPsn8Jo.net(14)
>561
え?それ反論だと思ってたの?
反論はまだ一つも来てませんよw

563
デフォルトの名無しさん[]   投稿日:2016/08/02 21:40:28  ID:UCo4tbLK.net(6)
うゎw
保育園だなここはw

564
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:47:57  ID:6KXXOitA.net(6)
>561
「プリント」とかまさに小並

565
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:08:58  ID:e9gYPknx.net(4)
>553
>538で「見たいだけ」って言ってるところをみると、これは反語で
>546みたいに簡潔なのが出てくるとはこの時点では考えてなかったんじゃない?
だからデザパタは用語で実装じゃない、言語は関係ないって趣旨替えしたように読むのは穿ちすぎ?
コメント2件

566
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:14:56  ID:flPsn8Jo.net(14)
>565
いやw
最初からこのために、
デコレータパターンをSmallTalkで書いたらどうなるの?って
話題を振って会話をさせたんだよ。

デコレータパターンという共通知識があり、
SmallTalkでそれを実装することができるという会話をね。

もし実装が決まっているものであれば、
SmallTalkでデコレータパターンを実装すれば
シンプルな形で実装できるんだっていう話はでてこない。
コメント2件

567
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:27:10  ID:KCBRtMku.net(4)
そもそもC++でデコレーターでもそんな難しくないでしょw
シングルトンの方がよっぽどややこしい。

568
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:30:18  ID:flPsn8Jo.net(14)
「シングルトン」だけで話が通じる所がデザインパターンの
便利なところだね。

さてシングルトンにもいろんな実装があるけど、
DIコンテナを使ってシングルトンに見せるっていう方法もあるよね。
これだと普通にクラスを作るだけで良くなる。

569
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:34:48  ID:qU1dasmj.net(2)
兄さん、そこでPythonですよ
ですしおすし

570
デフォルトの名無しさん[sage]   投稿日:2016/08/02 23:26:19  ID:QqIbwu4d.net(2)
Java8ならもっとHENTAIなコードが書けるぞ
http://ideone.com/DbIiD0
コメント4件

571
デフォルトの名無しさん[sage]   投稿日:2016/08/02 23:41:10  ID:6KXXOitA.net(6)

572
デフォルトの名無しさん[sage]   投稿日:2016/08/02 23:59:46  ID:lROFhaXh.net(10)
Smalltalk の最大の魅力は、
それが雑談に過ぎないということである。
by アラン・ケイ

573
デフォルトの名無しさん[sage]   投稿日:2016/08/03 00:45:18  ID:qJ0ntPw4.net(2)
>570
new Price((120*2+80)*2+200) を作りたいわけではなくて
new Price(120) をデコって 840 を返させるのが Decorator
だからデコったあとに setValue(100) してから getValue() すると 760 が返るはず
http://ideone.com/Z24LFA
http://ideone.com/Diod1I
http://ideone.com/x2goNr
http://ideone.com/do6fT9
コメント2件

574
デフォルトの名無しさん[sage]   投稿日:2016/08/03 11:21:17  ID:nNt8IZmK.net(2)
>566
まるでちがう。>546はデコレータパターンじゃない。
Javaではデコレータパターンを使う問題を
デコレータパターンを使わずにより簡潔に記述した例。
コメント2件

575
デフォルトの名無しさん[sage]   投稿日:2016/08/03 12:45:10  ID:XBNCNfrP.net(2)
>539
型が動的だと>535の例のようなコードはどうなるの?

576
デフォルトの名無しさん[sage]   投稿日:2016/08/03 15:55:24  ID:8J75MUHP.net(6)
SmallTalkとか

577
デフォルトの名無しさん[sage]   投稿日:2016/08/03 17:09:10  ID:R0iPm5qU.net(2)
関数型インターフェースの方が簡潔になる
http://ideone.com/6MAwKM

>573
setValue(100)してからgetValueしたら100返らなきゃバグってるだろ
setOriginalValueとかに修正するところだな
コメント2件

578
デフォルトの名無しさん[sage]   投稿日:2016/08/03 18:07:08  ID:8J75MUHP.net(6)
Wikipediaにある
> Decorator パターンの方針は、既存のオブジェクトを新しい Decorator オブジェクトでラップすることである。
がわかってない奴がいるな

579
デフォルトの名無しさん[sage]   投稿日:2016/08/03 18:17:54  ID:qhbdc1zB.net(2)
デザパタの目的とされがちであるが
常に失敗しているのが語彙の共有

いつでもつねに認識がバラバラw
コメント2件

580
デフォルトの名無しさん[sage]   投稿日:2016/08/03 18:21:38  ID:8J75MUHP.net(6)
>579
ごく一部の人間が正しく理解できてないだけで、
> いつでもつねに認識がバラバラw
は言い過ぎ

581
デフォルトの名無しさん[sage]   投稿日:2016/08/03 18:45:37  ID:9oohU77o.net(2)
>577
> 関数型インターフェースの方が簡潔になる

そんなんでいいなら Smalltalk でも簡潔に書けるけどね

http://ideone.com/RZHQ7P

582
デフォルトの名無しさん[sage]   投稿日:2016/08/03 19:57:46  ID:N9MmOijn.net(4)
Smalltalkに意味なんかないよ
登場してから30年とか40年とか経ってるのに
誰も現場で使ってない言語だからね
40年という歳月は結論を出すのに十分な時間だと思うよ
これから先もずっと使われないだろう
こんな言語についてあれこれ考えるのは時間の無駄だよ
御幣を恐れずに言うと、Smalltalkは間違っている、机上の空論
本当によくできていたなら、もうちょっとぐらい使われていてもおかしくない
少なくともRuby程度ぐらいには使われてないと話にならない
Smalltalkは実用にならないスジの悪い言語だということ
コメント2件

583
デフォルトの名無しさん[]   投稿日:2016/08/03 20:22:04  ID:M+rE/wd/.net(4)
Smalltalkは言語だけじゃダメで。
windows上では使い物にならないから仕方無い。
コメント2件

584
デフォルトの名無しさん[]   投稿日:2016/08/03 20:23:22  ID:M+rE/wd/.net(4)
要するに、windows自体がオブジェクト指向に向いてないんだよ。

585
デフォルトの名無しさん[sage]   投稿日:2016/08/03 20:29:26  ID:1jcdD/Xi.net(2)
結論。
誰も Smalltalk なんて知らない www

586
デフォルトの名無しさん[sage]   投稿日:2016/08/03 20:32:04  ID:N9MmOijn.net(4)
それは関係ない
なぜなら概念上の問題より運用上の問題のほうが大事だから
いくら概念的な素晴らしさを語ったところで
まともに運用できないならゴミ
使えない

587
デフォルトの名無しさん[sage]   投稿日:2016/08/03 20:45:27  ID:YtpqVXv4.net(2)
>574
> Javaではデコレータパターンを使う問題を
> デコレータパターンを使わずにより簡潔に記述した例。

お前は勘違いしているな。

デコレータパターンを実装しなさいというお題なんだから
それがデコレータパターンなんだよ。

Javaならこういう実装でやるが、他の言語では
その実装方法が違うだけ。
コメント2件

588
デフォルトの名無しさん[sage]   投稿日:2016/08/03 21:24:23  ID:TE6NppPB.net(2)
>582
まあ仮にSmalltalkが本当に誰も使ってなくて
処理系も失われたり、あるいは as-is で放置された言語だとしたら
そんなものに意味がないって意見は全くもって正しいよね

589
デフォルトの名無しさん[sage]   投稿日:2016/08/03 21:37:23  ID:46yxFVyN.net(2)
シングルトンやアイテレーターなどは時代が変わっても重要だろうけど、
デコレーターは継承関係への依存度が高いから微妙だな。

590
デフォルトの名無しさん[sage]   投稿日:2016/08/03 22:46:55  ID:PwtoF+FA.net(2)
>583
Smalltalkは独自のGUIもそうだけれども、もうひとつ、通常のセルフホスティング
(自身で自身を記述)にとどまらず、処理系を構成する実行時オブジェクト群を
仮想イメージと呼ばれる、ある種のオブジェクトストアに永続化して次回起動時も
継続利用する運用スタイルも毛嫌いされるよね。個人的には示唆に富んでいて好きなんだけど
コメント2件

591
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:17:31  ID:iDV12Qqy.net(10)
>587
いや?
クロージャで実装しているのだから、デコレータパターンによる実装ではないよ。
コード読めない子?
コメント2件

592
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:19:01  ID:jTAWnEUa.net(44)
> クロージャで実装しているのだから、

クロージャで "何を" 実装しているの?

593
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:24:24  ID:ClPuKc3B.net(2)
デコレータパターンを実装できてはいないんだよw

これでわかった?w

594
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:25:35  ID:jTAWnEUa.net(44)
いや、何を実装したのかを聞いたんだが?
実装したものは何?

595
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:30:18  ID:ynLXOlFE.net(2)
>590
あのあたりはむしろメモリや記憶装置いくらでも使える現代向けというか
過去にオブジェクト指向の要素をちょっとだけ輸入してみた中途半端なオブジェクト指向言語が次々出ては滅びの興亡続けてたのは
"コンパイル後のサイズが大きいじゃないか"とかいまじゃヘソが茶を沸かすような理由がメインなわけだし。
コメント2件

596
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:31:24  ID:w6fnMNqO.net(8)
デコレータパターンと同等の機能をクロージャで実装した
じゃね?

同等の機能を持った違った実装があるのは当たり前じゃね?
デコレータパターンと同じような機能をもたらすけど
デコレータパターンじゃない実装は普通にあり得るんじゃね?
コメント2件

597
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:34:51  ID:jTAWnEUa.net(44)
>595
パターンは機能じゃないよ。設計。
デコレータパターンという設計

この設計の実装はいろいろある。
決まっていない。

Javaだったらクラスで実装し
クロージャーでも実装できるってだけの話。
コメント2件

598
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:36:04  ID:jTAWnEUa.net(44)
wikipediaにすら書いてあるしw

https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%...(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

デザインパターンは、よく使われる設計を一般化された形でまとめたものに過ぎない。
そのため、具体的な実装を提供するものではなく、
あくまでもコンセプトとして参照されることが意図されている。
つまり、サンプルコードは、実装例に過ぎない。

599
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:42:01  ID:w6fnMNqO.net(8)
>パターンは機能じゃないよ。設計。

それで、その設計パターンとは合致しないけど
同等の機能や目的を満たす他の設計はあり得る
ってことでしょ?
俺の言ってることと一緒だね
コメント2件

600
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:44:00  ID:fESKb5E9.net(2)
ID:jTAWnEUaを教育してあげる義務は我々には無い
コメント2件

601
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:45:06  ID:jTAWnEUa.net(44)
>599
わざわざ複雑にしないでいいよw

やりたいことがある。
でも説明するのが面倒くさい。

じゃあ「デコレーターパターン」と呼びましょう。

これで話は通じてるじゃん。
だからこれだけの情報でコードを書くことができる。

そのデコレーターパターンを
クロージャーで実装したんでしょ?
そういえば良いんだよ。

602
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:48:34  ID:jTAWnEUa.net(44)
>600
じゃあ一緒に勉強していきましょう(笑)

http://www.techscore.com/tech/DesignPattern/foundation/foundation1.htm...#dp0-2

> 前章でも説明したとおり、デザインパターンとは、「よく出会う問題とそれにうまく対処するための設計」を
> まとめたものです。 デザインパターンを利用するメリットとして、最初にあげられるのが、
> 「再利用性の高い柔軟な設計ができる」という点です。各パターンには、多くの知恵が凝縮されています。
> これまでは、設計者の直感や経験などに依存していた設計が、デザインパターンを導入することで、
> 初心者でも先人たちが詰め込んだ「知恵」を利用した設計をすることが可能となります。
> また、先人たちの知恵を参考にすることで、設計力の向上も期待できます。
>
> 次のメリットは、「技術者どうしの意思疎通が容易になる」ことが挙げられます。
> デザインパターンを習得している技術者どうしであれば、設計について相談するとき
> 「Singleton パターンで行きましょう」とか「Strategy パターンが応用できるのではないでしょうか」と
> いうようにパターン名で設計の概要の合意を取ることが可能です。デザインパターンを
> 習得していない技術者には「こんなクラスを作って、このクラスはこんな役割を持っていて・・・。」と
> 延々と説明しなければなりません。このように、デザインパターンを学習しておくことで
> 開発者どうしの意思疎通がスムースになるのです。

あなたは何で勉強していますか?

603
デフォルトの名無しさん[sage]   投稿日:2016/08/04 01:13:23  ID:w6fnMNqO.net(8)
話をややこしくしているのはあなたです

>パターンは機能じゃないよ。設計。

↑これは君が言ったことだよね

その上で俺は、同等の機能を持った、違ったデザインなんじゃね?って言ってるわけ

機能が同じであっても、同じデザインパターンとは限らない
何故なら、デザインパターンは機能じゃないから、設計のパターンだから
↑君の言ってることと全く同じだよね

だから同じ機能だけど、違った設計パターンであり
同じデザインパターンに属さない設計は有る
ということを君は認めているということ

604
デフォルトの名無しさん[sage]   投稿日:2016/08/04 01:43:58  ID:w6fnMNqO.net(8)
デザインパターンは機能では無く、よくある設計パターンに名前を付けたもの
ってのは正に君が自分で言ったことであって
それは俺も了承している

だから同じ機能であっても、それだけで同じデザインパターンとは言えないよね
と俺は言ってるわけ
なぜならデザインパターンは機能では無いから(君の言ったことだよね)

そもそも俺とお前とのやり取りに、何のとどこおりも無い
俺は、>596で同等の機能を別の設計で実装したんじゃないか、と言い
お前は>597でデザインパターンの分類は機能で決まるものではなく設計で決まる、と言っている
合わせると、「同等の機能であっても同じデザインパターンであるとは限らない、設計で決まる」
という結論が得られる

605
デフォルトの名無しさん[sage]   投稿日:2016/08/04 01:56:34  ID:tMKvO+zV.net(2)
デコレータパターンの解決できる問題領域は他の(オブジェクト指向でない)方法でもっと簡潔に書ける、のはいいだろうか。

これと同じことが他のデザインパターンでもできるんじゃね?という主張だったと思うんだが。

Singletonは言語によって容易に達成できるものもあればそうでない言語もあるが、そう難しくは無いはず。
OCamlだったらmutable valueを持ったモジュール使えば同等のことが実現できる。
Adapterパターンも変更できない物がオブジェクトだったら関数1つで済むし、
モジュールだったらファンクタ使えば良い。

これを続けていけばデザインパターンがOOPの表現力の低さを解決する妥協案である、と示せる気がするが、
逆にOOPでデザパタ使うのが一番簡潔になる問題を探す方が難しいかもね。
コメント2件

606
デフォルトの名無しさん[sage]   投稿日:2016/08/04 03:16:53  ID:jTAWnEUa.net(44)
やっぱりデザインパターンを
実装パターンと勘違いしているとしか思えないな。

まず大前提としてデザインパターンに言語は関係ない。
だから言語は関係なく設計の話、
オブジェクト指向での設計の話を考える。

そうするとそこにデザインパターンが出てくる
ここまでで言語の話は出てこないから
当然実装の話もでてこないんだよ。

607
デフォルトの名無しさん[sage]   投稿日:2016/08/04 03:18:24  ID:jTAWnEUa.net(44)
OOPじゃなくてC言語でも当てはまる話だよね。
シングルトンやデコレータなどは。

C言語であってもオブジェクト指向で設計していれば
自然とデザインパターンは出てくる。

608
デフォルトの名無しさん[sage]   投稿日:2016/08/04 06:27:25  ID:iDV12Qqy.net(10)
>605
だから、GoFはSmalltalkなら簡単に記述できる構造や機能を
JavaやC++の表現力で解決する妥協案を集めたものなの。

JavaやC++の表現能力や抽象度が低いことを勝手にOOPの表現能力の低さにすり替えるな。
コメント2件

609
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:14:32  ID:jTAWnEUa.net(44)
>608
それはオレオレ定義ですよね。

610
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:31:36  ID:0aO0sFCL.net(26)
デザパタの実装はいろいろあっていいし、言語によって簡単に書けたりそもそも必要なかったりもする。


「オブジェクト指向における再利用のためのデザインパターン」←GoFのデザパタ提唱本ね。念のため。

プログラミング言語の選択は重要である。なぜなら、どの言語を使うかによってどのような観点でデ
ザインパターンをまとめるかが違ってくるからである。我々のパターンはSmalltalk/C+十レベルの言
語形態を想定している。その選択によって、容易に実現できることとできないことが決まる。たとえば、
もし、我々が手続き型言語を想定していれば、Inheritance(継承)、Encapsuladon(カプセル化)、
Polymorphism(ポリモルフィズム)といったデザインパターンを組み入れたであろう。また、我々のパタ
ーンの中には、あまリー般的でない言語によって直接サポートされているものもある。たとえば、CLOS
はマルチメソッドを有しているので、Visitorパターン(P.53)のようなパターンは必要性がなくなるの
である。実際のところ、SmalltalkとC十+の間にも違いがあり、どちらの言語を使うとより簡単に表現
できるかは、パターンによっても違ってくる(例としては、Iteratorパターン(P.275)を参照)。
コメント6件

611
デフォルトの名無しさん[]   投稿日:2016/08/04 09:33:28  ID:IwXa2U8x.net(6)
内容を理解してないから例にある記述方法しか受け付けないんだよ。

612
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:33:48  ID:jTAWnEUa.net(44)
> だから、GoFはSmalltalkなら簡単に記述できる構造や機能を
> JavaやC++の表現力で解決する妥協案を集めたものなの。

じゃあなんでこんな本が存在するんですか?w

Rubyによるデザインパターン-Russ-Olsen/
http://www.amazon.co.jp/dp/4894712857/

JavaScriptデザインパターン
https://www.oreilly.co.jp/books/9784873116181/

The Design Patterns Smalltalk Companion
https://www.amazon.com/dp/0201184621
コメント4件

613
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:34:24  ID:0aO0sFCL.net(26)
>610
あ。引用部分は自炊本の OCR のコピペなんで、タイポは脳内補完ねがいます。

614
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:35:44  ID:0aO0sFCL.net(26)
>612
GoF も「Smalltalk では簡単に記述できるものもある」とは言っているけど、
ぜんぶがぜんぶとは言っていないよね。

615
デフォルトの名無しさん[]   投稿日:2016/08/04 09:35:54  ID:IwXa2U8x.net(6)
>612
おまいみたいなバカに本を売り付ける為だろw
コメント2件

616
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:38:22  ID:jTAWnEUa.net(44)
>615
え?捨て台詞?w

617
デフォルトの名無しさん[sage]   投稿日:2016/08/04 10:07:48  ID:e/09ny1R.net(2)
これはまさに捨て台詞で十分な一例。

618
デフォルトの名無しさん[sage]   投稿日:2016/08/04 10:14:03  ID:0aO0sFCL.net(26)
> だから、GoFはSmalltalkなら簡単に記述できる構造や機能を
> JavaやC++の表現力で解決する妥協案を集めたものなの。

Smalltalkを好意的にとらえて持ち上げてくれるのは、狭い視野で意味なし認定しちゃう人たちよりは
ファンとしてはありがたいけど、これはさすがにオーバーエスティメートだし、
もうちょっとSmalltalkならではのアドバンテージを学んでから、適切な持ち上げ方をしてほしい…

619
デフォルトの名無しさん[sage]   投稿日:2016/08/04 10:47:43  ID:iDV12Qqy.net(10)
「GoFは、」と、「デザインパターンは、」の区別がつかない人たちと技術を語るのは非常に困難である。
コメント2件

620
デフォルトの名無しさん[sage]   投稿日:2016/08/04 11:37:47  ID:0aO0sFCL.net(26)
>619

もしそうだとしても、少なくとも>591は「GoFの(デコレーター)」と明記すべきですよね
コメント2件

621
デフォルトの名無しさん[sage]   投稿日:2016/08/04 12:27:01  ID:CY/jwgqy.net(2)
smalltalkって簡単に色々できるんでしょ?
なんで現代でメジャーじゃないの?

622
デフォルトの名無しさん[]   投稿日:2016/08/04 12:30:59  ID:IwXa2U8x.net(6)
日本語の方が優れてるのに、世界じゃ日本人しか使ってないだろ?

623
デフォルトの名無しさん[sage]   投稿日:2016/08/04 12:31:27  ID:79cTVfxr.net(2)
MSがVisual Smalltalkをつくらなかったから

624
デフォルトの名無しさん[sage]   投稿日:2016/08/04 12:57:32  ID:iDV12Qqy.net(10)
>620
GoFの定義如何に関わらず、>546はデコレータパターンの実装ではないのだが?
コメント2件

625
デフォルトの名無しさん[sage]   投稿日:2016/08/04 13:05:00  ID:rDDGHvQu.net(2)
はやく、
人間クラスと美少女クラスの問題に
たどり着いてくれよ。

626
デフォルトの名無しさん[sage]   投稿日:2016/08/04 13:16:23  ID:0aO0sFCL.net(26)
>624
だとするとちょっと分からないのですが、
あなたの言う「Smalltalkなら簡単に記述できる構造や機能」で実現された
デコレーターパターン(GoFの定義如何に関わらない)というのを提示してもらうことはできますか?
Smalltalk は書けないということでしたら、端的に方針だけ示してもらえればこちらで書きますので。

そもそも Smalltalk ではデコレーターパターンが不要(なので、実装はナンセンス)とのお考えでしたら
代替として Smalltalk 組み込みのどういう構造や機能を使うかを示してもらえればさいわいです。
コメント2件

627
デフォルトの名無しさん[sage]   投稿日:2016/08/04 14:01:27  ID:gwNa+xfa.net(10)
つか、>546のruby版って一体何?
デコレータパターンのつもり?
コメント2件

628
デフォルトの名無しさん[sage]   投稿日:2016/08/04 14:13:24  ID:0aO0sFCL.net(26)
>627
自分にはウィキペのデコレーターにあるJavaの例の要求仕様は満たしているように見えるけど。
具体的にはどこが不満?
コメント2件

629
デフォルトの名無しさん[sage]   投稿日:2016/08/04 14:41:37  ID:gwNa+xfa.net(10)
>628
あ、デコレータパターンの実装だったんだ。
同じ感じでこれ実装できる?
class Log
def output(s)
puts s
end
end

class TimeStampLog
def initialize(log)
@log = log
end

def output(s)
@log.output "#{Time.now} #{s}"
end
end

class PidLog
def initialize(log)
@log = log
@pid = Process.pid
end

def output(s)
@log.output "[#{@pid}] #{s}"
end
end
コメント2件

630
デフォルトの名無しさん[sage]   投稿日:2016/08/04 14:42:24  ID:gwNa+xfa.net(10)
log = TimeStampLog.new(PidLog.new(Log.new))
log.output 'aaa'
log.output 'bbb'

log2 = PidLog.new(TimeStampLog.new(Log.new))
log2.output 'aaa'
log2.output 'bbb'

結果:
[24968] 2016-08-04 14:41:58 +0900 aaa
[24968] 2016-08-04 14:41:58 +0900 bbb
2016-08-04 14:41:58 +0900 [24968] aaa
2016-08-04 14:41:58 +0900 [24968] bbb

631
デフォルトの名無しさん[sage]   投稿日:2016/08/04 16:18:58  ID:0aO0sFCL.net(26)

632
デフォルトの名無しさん[sage]   投稿日:2016/08/04 16:59:33  ID:gwNa+xfa.net(10)
>631
なんか実装手段が違ってきてますが・・・。

>546のruby版はいったいどういう意図なのかが知りたいんだけど。
「rubyでclosureを使えばデコレータパターン同等のことができる」とか、そういう「意図」。
コメント2件

633
デフォルトの名無しさん[sage]   投稿日:2016/08/04 17:09:10  ID:0aO0sFCL.net(26)
>632
> なんか実装手段が違ってきてますが・・・。

本質部分は変えてないでしょ
変えたのも、クラスを直にいじるか、モジュールをprependするかくらいなもので


> closureを使えばデコレータパターン同等のことができる

>540,545,546 の流れで、件のコードにそれ以外の意図を思いつくなら逆に聞きたい
コメント2件

634
デフォルトの名無しさん[sage]   投稿日:2016/08/04 17:41:28  ID:gwNa+xfa.net(10)
>633
うまく説明できないので、最後まで残っている違和感だけを説明して終わる。

WikipediaのDoublePriceクラスで、何か振る舞いを変えようと思えばDoublePriceクラスのみを変更すればいい。
DecoratorTestクラスの変更もしなくていい。

一方、>546のコードだとそうはいかない。
これを「デコレータパターンを実装している」といっていいのか?
というのが俺の違和感。
まあ、それが本質なのか本質じゃないのかはわからんが。
コメント2件

635
デフォルトの名無しさん[sage]   投稿日:2016/08/04 18:07:30  ID:iDV12Qqy.net(10)
>626
だーかーらー、

デコレータパターンという、修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで型に互換性を持たせる、というバッドノウハウは静的型OOPLのためのものにすぎなくて、
同等の機能はSmalltalkでクロージャを使った実装(当然、上記デコレータパターンの実装ではない)で実現できる。

という主張に、どうして「じゃあSmalltalkで実装したデコレータパターンはどうなんだよ」がどれだけ的外れか理解できてる?
コメント4件

636
デフォルトの名無しさん[sage]   投稿日:2016/08/04 18:33:42  ID:0aO0sFCL.net(26)
>634
> 一方、>546のコードだとそうはいかない。

単純に、ideone.com/WW8gva はデコレートをテストにハードコードしているからそうなるってだけで
http://ideone.com/HOkUN1 というふうに書いておけば、デコレーターの振る舞いを変えたければ
それを定義した decorate_price.rb だけを変えれば、decorate_price_test.rb は変更不要でしょう。

637
デフォルトの名無しさん[sage]   投稿日:2016/08/04 18:57:12  ID:0aO0sFCL.net(26)
>635
なるほど。たしかにおっしゃるとおりです。的外れなことを言ってすみません。

638
デフォルトの名無しさん[sage]   投稿日:2016/08/04 18:59:34  ID:iP1jJ0aF.net(2)
>610
iteratorはどっちが楽なの?
コメント2件

639
デフォルトの名無しさん[sage]   投稿日:2016/08/04 19:27:18  ID:0aO0sFCL.net(26)
>638
Smalltalk と C++ との比較で? それならもちろん Smalltalk です。

(同書P.289より)
Smalltalkではiteratorを明示的に定義する必要はない。標準的なコレクションクラス(Bag、
Set、Dictionary、OrderedCollection、Stringなど)で、内部iteratorのメソッドdo:を定義してい
るからである。do:はブロック(つまり、closure)を引数としてとる。

(標準的なコレクションクラスの例になぜか名前がありませんが当然Arrayも含みます。念のため。)
コメント4件

640
デフォルトの名無しさん[sage]   投稿日:2016/08/04 19:40:49  ID:HlIXxJdQ.net(4)
>639
それでいうと今のC++もSTLでイテレーターが実装されてるから、
必要ないって言ってるようなもんじゃね?
別にSmalltalkが特別ってことにはならない。
コメント2件

641
デフォルトの名無しさん[sage]   投稿日:2016/08/04 20:21:25  ID:jTAWnEUa.net(44)
>635
> デコレータパターンという、修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで型に互換性を持たせる、

修飾オブジェクトで被修飾オブジェクトでラップしてっていうのは
Javaでの実装であって、Rubyのデコレーターパターンには必須ではないよ。

642
デフォルトの名無しさん[sage]   投稿日:2016/08/04 20:23:12  ID:jTAWnEUa.net(44)
デコレータパターンは言語によっていろんな実装が有って
Javaでは修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで
型に互換性を持たせる、というバッドノウハウが静的型OOPLだから必要になるけど、
デコレーターパターンはSmalltalkでクロージャを使った実装で実現できる。
コメント2件

643
デフォルトの名無しさん[sage]   投稿日:2016/08/04 20:37:49  ID:0aO0sFCL.net(26)
>640
Smalltalkが特別ってことにはならないという点については同意します。

ただ、クロージャーを引数にとる内部イテレーターはとても簡潔な記述を可能にするので
C++がSTLを介してイテレーターが組み込みであっても、記述の負担の軽さはSmalltalk方式の方が優位かとも

とはいえ、C++のコードがどんな感じになるかははずかしながら当方ちょっと予想が付きかねますので、
もし可能でしたら、C++のSTLを使って書いてSmalltalkのと比較をさせてもらうことはできますか?

あいにくウィキペにはIteratorの例はないので、こちらの比較的シンプルなJavaの例を

http://qiita.com/jonichonpa/items/208dc2361414f93efacf

Smalltalkで書いてみました

http://ideone.com/oplhQu

もちろんSmalltalk方式を採用した言語(たとえばRuby)なら、Smalltalkと同程度にシンプルに書くことはできます
そんなわけでRuby版も念のため

http://ideone.com/xlQZqc
コメント2件

644
デフォルトの名無しさん[sage]   投稿日:2016/08/04 20:41:57  ID:jTAWnEUa.net(44)
イテレーターパターンをSmalltalkで書いてみたわけね。
コメント2件

645
デフォルトの名無しさん[sage]   投稿日:2016/08/04 20:47:45  ID:XSjm71+w.net(2)
イテレータパターンを使わずとも
既にあるイテレータを使った、でしょ

646
デフォルトの名無しさん[sage]   投稿日:2016/08/04 20:55:24  ID:HlIXxJdQ.net(4)
>643
for each (range based for)でいいじゃん。

for (auto& item : collection)
{
// print an item
}

クロージャ風がいいなら、
std::for_each(collection.end(), collection.begin(), [](auto& item){ /* print */}

アイテレーターが登場するけど昔の名残みたいなもんで、
本質じゃないだろ?(範囲を指定してるだけ)
コメント2件

647
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:08:55  ID:ILqHD9/M.net(2)
>642
クロージャを使ったらデコレータとは言わないのでは?
デコレータは継承による多態性を用いたものに限定すべき。
同じ事をやる方法なんていくらでもあるから、
そこは継承によるものと限定しておかないと意味分からなくなる。

無論、今のC++やJava、C#だってクロージャもしくは
それに類似した機能を使って同じ様なことはできるし、
Smalltalkだって継承を使ったデコレーターはできる。

言語によってできることできないことと、
各言語の流儀みたいなものは切り分けて考えるべき。
コメント2件

648
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:15:46  ID:jTAWnEUa.net(44)
>647
デコレータの説明として、インターフェイスを同一視して
動的に機能を拡張していくとは書いてあるが
継承を用いることとは書いていない。
コメント2件

649
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:21:02  ID:CmNfOhbZ.net(12)
>648
それは定義じゃないだろ。GoF本では定義はStructureのところだ。

650
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:29:07  ID:jTAWnEUa.net(44)
Structureは日本語にしたら
構造って意味ですよw
コメント2件

651
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:30:27  ID:CmNfOhbZ.net(12)
>650
んなことは分かってるだろ。そこが実質的な定義だと言ってるの。
そのあとにImplementationが来て、その構造の実装法やアレンジを述べる流れ。

652
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:33:42  ID:TDXgEb4R.net(2)
継承してないと使えないとかじゃ困る。

653
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:34:27  ID:jTAWnEUa.net(44)
> そこが実質的な定義だと(俺様が)言ってるの。


知らんがなw

お前が何を言ったところで、
Structureは日本語にしたら構造
Definition(定義)じゃない。

まさか単語の意味を強弁するとは思わなかったなw
コメント2件

654
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:39:49  ID:CmNfOhbZ.net(12)
>653
暗黙の定義ってやつだ。プログラミングしてるなら分かれ。

655
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:51:04  ID:jTAWnEUa.net(44)
説得力0w

656
デフォルトの名無しさん[sage]   投稿日:2016/08/04 21:51:55  ID:VNJ4iqic.net(2)
この場合、構造、だとしても問題無い件。
パターンの構造はこうであると定めてる。

657
デフォルトの名無しさん[sage]   投稿日:2016/08/04 22:03:13  ID:jTAWnEUa.net(44)
構造の一例ねw

658
デフォルトの名無しさん[sage]   投稿日:2016/08/04 22:10:23  ID:CmNfOhbZ.net(12)
デザインパターンなんだから特定の構造を集めたものだからな。
同じ事ができるならなんでもいいならパターンとはいわない。
まあ馬鹿は無視して議論続けてくれ。

659
デフォルトの名無しさん[sage]   投稿日:2016/08/04 22:12:49  ID:jTAWnEUa.net(44)
まさかデザインパターンがGoFの23個だけだと?
あれはパターン例だよ
コメント2件

660
デフォルトの名無しさん[sage]   投稿日:2016/08/04 22:14:24  ID:CmNfOhbZ.net(12)
>659
それこそ誰もそんな話はしていないわけだが。
国語のテストとか悪かったでしょ?

661
デフォルトの名無しさん[sage]   投稿日:2016/08/04 22:20:23  ID:jTAWnEUa.net(44)
Structureは日本語にしたら構造
Definition(定義)じゃない。

国語と英語の問題なw

662
デフォルトの名無しさん[sage]   投稿日:2016/08/04 22:24:49  ID:CmNfOhbZ.net(12)
アホの一つ覚えとはこのこと

663
デフォルトの名無しさん[sage]   投稿日:2016/08/04 22:45:18  ID:jTAWnEUa.net(44)
効いてる効いてるw

664
デフォルトの名無しさん[sage]   投稿日:2016/08/05 05:47:03  ID:Q5sCXOre.net(4)
あるプログラム片の構造がパターンカタログのものと異なっていたら、
そのプログラム片はそのパターンの実装とは言えないな。

実際問題として、このスレで出ているRuby実装は、GoFに掲載されたデコレータパターンの実装ではない。
それを無視するなら、あなた (ID:jTAWnEUa) にはデザインパターンを使うための
最低限の素地が備わっていないということ。
コメント2件

665
デフォルトの名無しさん[sage]   投稿日:2016/08/05 07:23:44  ID:TLRbqbFt.net(2)
>644
あまりにひどくて、なにをいっているかわからなかった。SmalltalkはともかくRubyのコードも読めないのかと。

内部イテレーターを使ったこの実装をイテレーターパターンだと言い切るのはどう考えても無理があるし、
同じ理屈でクロージャーを使った件の実装をデコレーターパターンだと言い張っているなら混乱するだけだからやめてほしい。

666
デフォルトの名無しさん[sage]   投稿日:2016/08/05 08:28:16  ID:liZAD7d5.net(2)
>664-665
この二人は単に常識的な発言をしているだけだが
きっと相手には伝わらないだろうね

667
デフォルトの名無しさん[sage]   投稿日:2016/08/05 11:01:37  ID:RHt058cj.net(2)
結局オブジェクト志向が理解出来なくて管を巻いていたら
世間はプロトコル志向に移ってしまったでござるの巻
お前ら何周遅れたら走り出す気になるの?

668
デフォルトの名無しさん[sage]   投稿日:2016/08/05 12:54:45  ID:Vwi1FrEy.net(2)
Swiftのプロトコルも何周回目か遅れですよ?
ScalaやRustのトレイトとか知らないんですか?

669
デフォルトの名無しさん[sage]   投稿日:2016/08/05 13:11:37  ID:ccW8btWE.net(2)
イテレータをアイテレータって書いてる人がいるけど
どこの方言なの?
weblioさんの発音もイテレータなんだけど
コメント2件

670
デフォルトの名無しさん[sage]   投稿日:2016/08/05 14:20:51  ID:1PWjv4l0.net(4)
weblioワロタw もっとちゃんとした辞書持って来いよ。
Merriam Websterとかさ。和英辞書を引用して日本語論じたりしないだろ?

色々調べてみたけど、Wikitionaryのiterateでは二重母音の発音も載せてる。
その他の辞書では見つからなかった。

実際に英語ネイティブのアメリカ人が/ai/でも発音しているのを聴いたこともある。
伝統的には一般的な発音じゃなかったけど、IT界隈でよく使われているうちに、
発音変種が発生したんじゃないか? 英語発音学的にはどちらでも許容されそうだし。
コメント2件

671
デフォルトの名無しさん[sage]   投稿日:2016/08/05 14:53:55  ID:1z/JWFxp.net(4)
>669
方言というより極度の経験不足なんだろ
イテレータについて人と語った事が無いから
間違いがずっと正されずにここまで来たんだろうな

672
デフォルトの名無しさん[sage]   投稿日:2016/08/05 15:20:22  ID:Y7jgmn2a.net(2)
>669
iとかitとかitrとかiterとかに略すから
アイ、イット、アイター、アイターとかって呼んでいるのでは
発音している本人に聞かないと真相はわからんがな

673
デフォルトの名無しさん[]   投稿日:2016/08/05 15:25:47  ID:j/FnlCNZ.net(2)
クロージャはデコレータじゃないとかPythonに全面的に喧嘩売りすぎだろ
コメント2件

674
デフォルトの名無しさん[sage]   投稿日:2016/08/05 15:40:45  ID:O4e+hfU+.net(2)
クロージャーを使った実装はデコレーターパターン(GoFの)ではないという話なんだが

675
デフォルトの名無しさん[sage]   投稿日:2016/08/05 15:47:55  ID:1PWjv4l0.net(4)
>673
別のパターンって言ってるだけでは?
覚えやすさや関連性からデコレーターの名前を関するのは自由だけど。

676
デフォルトの名無しさん[sage]   投稿日:2016/08/05 16:10:54  ID:b8/AN42w.net(2)
Rubyのprependを使った例はDecoratorとしてもいい気がするが、単なるクロージャをDecoratorとは呼べない気がする

677
デフォルトの名無しさん[sage]   投稿日:2016/08/05 16:22:03  ID:VlcB2rw7.net(2)
デコレータパターンの機能を持っている設計を
全部デコレータパターンとしてしまっては
デザインパターンの意味がないからな

そりゃどんな方法でも同等の機能は実現するかもだが
ある程度を設計をパターン化して縛るのが目的でもあるからね
なんでもOKだったら意味ないよね
コメント2件

678
デフォルトの名無しさん[sage]   投稿日:2016/08/05 16:30:02  ID:1z/JWFxp.net(4)
カタログ化の価値を下げようとする連中は居るんだよ
広義のデザインパターンは〜とか
○○も××パターンの亜流と言えるだろう〜とか
拡大解釈と独自解釈でどんどん元の輪郭をぼやかしていくんだよ

679
デフォルトの名無しさん[sage]   投稿日:2016/08/05 18:48:03  ID:zTXcoGD+.net(4)
>677
ケーキにホイップクリームのせるのもおちんぽにコンデンスミルクかけるのもデコレーションには違いないだろ実装が違うだけでやってることは完全に同じなのだから継承か委譲かクラスかクロージャかといった細かい違いを気にしなくていいからこその設計だと思うのだよ

680
デフォルトの名無しさん[sage]   投稿日:2016/08/05 18:50:15  ID:zTXcoGD+.net(4)
実装まで縛るならデザインパターンじゃなくてインプリメンテーションパターンだ
コメント4件

681
デフォルトの名無しさん[sage]   投稿日:2016/08/05 19:29:11  ID:Q5sCXOre.net(4)
>680
そうか、おまえがいう「デザイン」「ソフトウェア設計」は実装を縛らないのか。
ずいぶんフリーダムなプログラマだなw
コメント2件

682
デフォルトの名無しさん[sage]   投稿日:2016/08/05 19:48:51  ID:7blLYh/r.net(2)
クラス図レベルがデザインパターン。
そこから実際にどう具体的な言語でコードに落とし込むかが実装。

クラス図レベルで全く違うものはパターンとして別物です。

683
デフォルトの名無しさん[sage]   投稿日:2016/08/05 20:06:03  ID:i8crE51h.net(2)
おまいら、自動翻訳で日本語をえいごにして、出た英語を自動翻訳で日本語にして、元の日本語と違うってモンクいってるんだよな?

684
デフォルトの名無しさん[sage]   投稿日:2016/08/05 20:28:42  ID:1l5AtzWC.net(2)
>670
それ単に英語がなまっているだけだから
コメント2件

685
デフォルトの名無しさん[sage]   投稿日:2016/08/06 08:01:13  ID:70rUJ/gH.net(12)
>684
なまってるんじゃなくて、発音が[i]の母音に強いアクセントがつくと[ai]に転じるのは普通。
iterateの第1母音は普通は[i]だが、iterateという語を特に強調する時には[ai]になることもある。

ちなみにweblioはUS出身のNLP研究者にも評価が高かったりするから、そう馬鹿にしたものでもない。
コメント2件

686
デフォルトの名無しさん[sage]   投稿日:2016/08/06 10:06:20  ID:FhFbCTi8.net(2)
>685
だから英語の訛りでドイツ語やフランス語では起こらない
https://ja.wikipedia.org/wiki/%E5%A4%A7%E6%AF%8D%E9%9F%B3%E6%8E%A8%E7%...
コメント2件

687
デフォルトの名無しさん[sage]   投稿日:2016/08/06 10:13:18  ID:BacY3CwA.net(2)
だからどうしたんだって話

688
デフォルトの名無しさん[sage]   投稿日:2016/08/06 10:17:01  ID:BZ9Nu5V3.net(2)
アイテレータ君は頑張りどころを間違えてる

689
デフォルトの名無しさん[sage]   投稿日:2016/08/06 11:27:40  ID:70rUJ/gH.net(12)
>686
Haben Sie gelesen, eine deutsche Übersetzung?
コメント2件

690
デフォルトの名無しさん[sage]   投稿日:2016/08/06 12:00:01  ID:rJo5wxwi.net(6)
https://translate.google.co.jp/#de/ja/Haben%20Sie%20gelesen%2C%20eine%20deutsche%20%C3%BCbersetzung%3
あなたはドイツ語の翻訳を読んでいましたか?

691
デフォルトの名無しさん[sage]   投稿日:2016/08/06 12:02:23  ID:rJo5wxwi.net(6)
>689
Was davon ist im Zusammenhang mit?
コメント2件

692
デフォルトの名無しさん[sage]   投稿日:2016/08/06 13:54:29  ID:70rUJ/gH.net(12)
>691
Das ist meine Frage.

693
デフォルトの名無しさん[sage]   投稿日:2016/08/06 15:01:07  ID:rJo5wxwi.net(6)
Nein, es ist meine Frage
コメント2件

694
643[sage]   投稿日:2016/08/06 19:33:40  ID:rdi0Pbkh.net(4)
そんなアイレテーター君にヒントをもらった>646 ですが、
週末の余暇を使って調べ調べ C++ で書いてみました。

http://ideone.com/aMHgqO

なるほど。このくらい抽象化して簡潔に書けるなら
今の C++ には35年ほど前の Smalltalk 同様イテレーターパターンは不要と言い切ってよさそうですね。

惜しむらくは逆順用の range-based for くらい用意しておけよ…、という不満は残りますが。^^;

695
デフォルトの名無しさん[sage]   投稿日:2016/08/06 20:05:53  ID:OCZ+hMAU.net(2)
そもそもbegin, endなどのモロモロが
既に(外部)イテレータ以外の何物でもないわけでw

内部イテレータ形式を欲しがるかどうかはともかく
range-based forとかはどうでもいいよねこの場合
コメント4件

696
デフォルトの名無しさん[sage]   投稿日:2016/08/06 20:24:55  ID:fG7kY+EI.net(2)
アメリカ英語なんて
英語の方言そのものだろ。w
トマトをトメイトゥとか、
ポテトをポテイトゥとか
馬鹿みたいな発音するんだぜ。
アイテレーターみたいな馬鹿っぽい発音が好きなのか?
コメント2件

697
デフォルトの名無しさん[sage]   投稿日:2016/08/06 21:29:05  ID:rdi0Pbkh.net(4)
>695
おっしゃりたいことがよくわからなかったのですが
「イテレーター(内部なり外部なりの)が標準で提供されていればイテレーターパターン(GoFの)はいらない」
という主張(>639,646)に対して「そもそも〜」はどういう反論で、
range-based forがなぜ「どうでもいい」という話になるのしょうか?
コメント2件

698
デフォルトの名無しさん[sage]   投稿日:2016/08/06 22:17:57  ID:70rUJ/gH.net(12)
>693
おいおい、Neinに続いて肯定文とか、なんなんだその日本語みたいなドイツ語もどきはw

699
デフォルトの名無しさん[sage]   投稿日:2016/08/06 22:19:24  ID:70rUJ/gH.net(12)
>696
はいはい、あなたは馬鹿ですよ。認めてあげましょう。

700
デフォルトの名無しさん[sage]   投稿日:2016/08/06 22:20:26  ID:70rUJ/gH.net(12)
>695
>そもそもbegin, endなどのモロモロが
>既に(外部)イテレータ以外の何物でもないわけでw

だめだ、こいつは手の施しようがないw

701
デフォルトの名無しさん[sage]   投稿日:2016/08/07 00:32:53  ID:Z9t6ZbaZ.net(2)
>697
ごめん
流れつかめて無かったわ

標準のコンテナにイテレータがあるんなら
それを使う限りはイテレータパターンの必要も無い
(内部イテレータ形式もrange-based forも無くてもいい)

それだけの話
スレの最初のほうに既に書かれてる話

702
デフォルトの名無しさん[sage]   投稿日:2016/08/07 00:34:17  ID:JriZaYfU.net(2)
もう少し正確に言えば、言語やライブラリが
イテレータパターンを実装しているから、
あとはそれに従うだけって感じかな。
意識せずにイテレータパターンを使っている。
コメント6件

703
デフォルトの名無しさん[sage]   投稿日:2016/08/07 00:40:31  ID:fZ/XAaEO.net(2)
>702
そやね
その言い方は正しい

704
デフォルトの名無しさん[sage]   投稿日:2016/08/07 06:55:15  ID:N62pNMnU.net(2)
>702
「意識せずにイテレータパターンを使っている」は大間違い。
コメント2件

705
703[sage]   投稿日:2016/08/07 08:03:17  ID:vAScX9Az.net(2)
>704
そやね
そっちが正しい
パターンを使うのは設計者だからね

706
デフォルトの名無しさん[sage]   投稿日:2016/08/08 12:57:55  ID:TCnmrmuR.net(2)
おっすおらフリーダムプログラマ
日夜社畜プログラマと戦ってるだ

707
デフォルトの名無しさん[sage]   投稿日:2016/08/08 13:46:12  ID:jSuSjrUB.net(4)
>702
> もう少し正確に言えば、言語やライブラリが
> イテレータパターンを実装しているから、

正確に言うなら、イテレータパターンというのは、
> コンテナオブジェクトの要素を列挙する手段を独立させることによって、コンテナの内部仕様に依存しない
> 反復子を提供することを目的とする
実装パターンのことで(Wikipediaより)、言語やライブラリがiterableな何かを提供しているからといって、
それらがイテレータパターンを実装しているとは限らない。

708
デフォルトの名無しさん[sage]   投稿日:2016/08/08 13:48:55  ID:jSuSjrUB.net(4)
>680
> 実装まで縛るならデザインパターンじゃなくてインプリメンテーションパターンだ
発想が逆だね。
ある機能を実現するための実装パターンを分類・カタログ化したものが、GoFのデザインパターンだ。
コメント2件

709
デフォルトの名無しさん[sage]   投稿日:2016/08/08 21:13:01  ID:BQ4UM/x3.net(2)
まさしくその通りだね
そして同じ機能だったらどんな設計でもOKとしてしまっては
デザインパターンの意味がない
でもこの話題はもう終わりにしたいね
コメント2件

710
デフォルトの名無しさん[sage]   投稿日:2016/08/08 21:24:02  ID:aqLNls7E.net(2)
だからデザパタなんか、屋根を屋根といってるだけで、トタンなのか瓦なのか藁葺きなのか何も定義してないって言っただろ。
だから積み木のおうちでも構わないんだよなぁ

711
デフォルトの名無しさん[sage]   投稿日:2016/08/08 21:38:41  ID:dN7u7NbH.net(2)
パンピーは屋根には天井がセットでついてくると本気で思ってそうだから怖い。

712
デフォルトの名無しさん[sage]   投稿日:2016/08/08 21:41:39  ID:q4pU/gN8.net(4)
>709
とは言っても言語が違ってもデザインパターンは通用するわけで
実装がたった一つというわけじゃないのは確か

C言語でオブジェクト指向をすることだってあるし、
クラスがなかったES5時代のJavaScriptでもデザインパターンは作れた。

重要なのはデザインパターンの設計に出てくる登場人物があるかどうかではないだろうか?
例えば、Decoratorパターンだと、Component、ConcreteComponent、
Decoretor、ConcreteDecoratorという登場人物がある。

これはクラス図で書かれているだろうけど、別にクラスである必要はない。
例えばクロージャーを使って実装してもかまわない。
またインターフェースは明示的に継承していなくても、事実上特定の関数を実装していなければ
正しく動かないなら、それはインターフェースを使っていると言ってもいいだろう。

これと同じ登場人物が出てくるものは同じデザインパターンといっても良いだろう。
コメント2件

713
デフォルトの名無しさん[sage]   投稿日:2016/08/08 21:46:47  ID:rabkqueT.net(2)
そこまで行ったら別物だって。
クロージャーやら使ってクラス図レベルで逸脱してもいいという
宗派をひらきなよ。
コメント2件

714
デフォルトの名無しさん[sage]   投稿日:2016/08/08 21:57:23  ID:q4pU/gN8.net(4)
>713
そうはいってもだね。
クラス図がないES5でもデザインパターンの
設計通りに作れるでしょ?
コメント2件

715
デフォルトの名無しさん[sage]   投稿日:2016/08/09 05:48:45  ID:tGFAeOU0.net(4)
>712
ばーか

716
デフォルトの名無しさん[sage]   投稿日:2016/08/09 07:42:08  ID:ttLAI02G.net(2)
>714
クラス、クラス図がないからデザパタにクラスは不要というのは、本末を転倒してますよ。

GoF も述べているように(>610) クラスの無い言語では、クラスの役割りを「カプセル化」パターン、
「継承」パターン等で補ってから、その上でたとえばデコレーターパターンを実現しているというだけです。
コメント2件

717
デフォルトの名無しさん[sage]   投稿日:2016/08/09 09:40:43  ID:zWs+JfAu.net(2)
>716
なるほど。言語仕様としてクラスの有無ではなく
継承パターンができていれば、その実装がクロージャーでも
かまわないということですね。

そして継承パターンと言うものには、何が何を継承している
という概念があるはずですから、その「何」が登場人物に
なるわけですか。

718
デフォルトの名無しさん[sage]   投稿日:2016/08/09 10:28:51  ID:GFJow9Sf.net(4)
登場人物という考え方がバカっぽくて無理

719
デフォルトの名無しさん[sage]   投稿日:2016/08/09 15:03:31  ID:V7FsU68Q.net(2)
「○○言語だともっと簡単に実装できる」君と
「クロージャを使えばもっと簡単に実装できる」君は
いい加減うざいよ?
コメント2件

720
デフォルトの名無しさん[sage]   投稿日:2016/08/09 16:26:29  ID:tGFAeOU0.net(4)
>719
その通りだと思います。
まずはソフトウェア設計は実装ではないが、
実装を縛る規範であるということを
理解したらいいと思います。

それが理解できたら帰っておいで。

721
デフォルトの名無しさん[sage]   投稿日:2016/08/09 17:57:41  ID:7qytW98y.net(2)
デザインパターン
日本語で
設計見本でいいですか?

722
デフォルトの名無しさん[sage]   投稿日:2016/08/09 18:04:53  ID:c6svxtGU.net(2)
そんな日本語があるか

723
デフォルトの名無しさん[sage]   投稿日:2016/08/09 19:57:07  ID:AUCg5/Tk.net(6)
>708
それは過程の話な結果として実装を示すならインプリメンテーションパターンと言っているだろうしかしデザインパターンと言っているから実装を抽象化したものだ具体的な実装を示すものではないってことさ

724
デフォルトの名無しさん[sage]   投稿日:2016/08/09 20:07:31  ID:GFJow9Sf.net(4)
その前に君の書き込みを日本語のパターンにしてください
コメント2件

725
デフォルトの名無しさん[sage]   投稿日:2016/08/09 20:08:56  ID:AUCg5/Tk.net(6)
>681
設計が実装を具体的に決めてしまったら設計の意味がないと思うんだよおトイレとお風呂が一緒になってますってことと具体的な便器の形とは分けられると思うんですデザインパターンっていうのはいわばそういうものでお風呂とトイレを一緒にしたら便利だよってことさ

726
デフォルトの名無しさん[sage]   投稿日:2016/08/09 20:10:54  ID:AUCg5/Tk.net(6)
>724
おだまり便器野郎

727
デフォルトの名無しさん[sage]   投稿日:2016/08/09 20:24:12  ID:FqlEy475.net(2)
どうせ計算式をクラスにするんだろ?

728
デフォルトの名無しさん[sage]   投稿日:2016/08/11 18:28:28  ID:vQt/3MfO.net(2)
濃厚電波、完飲。

729
デフォルトの名無しさん[sage]   投稿日:2016/08/15 00:10:10  ID:NEOTEyUk.net(2)
いい加減、オブジェクト指向 vs 関数型なんていう無意味な議論やめようよ
直交する概念じゃん
関数型言語でも「本物の」オブジェクト指向プログラミングは出来るし、
最近の流行りはオブジェクト指向言語に関数型的な機能を付けることだろう
コメント2件

730
デフォルトの名無しさん[sage]   投稿日:2016/08/15 01:36:24  ID:Yh7//hE4.net(6)
本当のオブジェクトプログラムは、メッセージ交換だから、関数型が入る余地なんか無いけどな。

731
デフォルトの名無しさん[sage]   投稿日:2016/08/15 02:08:53  ID:6fraHMZW.net(2)
お前ら、早く本論に入れ!
美少女クラスはなぜ人間クラスを継承出来ないのよ!!!

732
デフォルトの名無しさん[sage]   投稿日:2016/08/15 03:13:33  ID:Y0Jnfl62.net(6)
美少女はクラスじゃなくて人間クラスのインスタンスで
パラメータが特定の値のものなだけだよ。

プリンセスメーカーであれば「魅力」のパラメータが
高くて「年齢」が若ければ美少女なんじゃね?
コメント2件

733
デフォルトの名無しさん[sage]   投稿日:2016/08/15 11:57:12  ID:P1EAyeII.net(4)
排便メソッドはどうなるんだ!
コメント4件

734
デフォルトの名無しさん[sage]   投稿日:2016/08/15 13:00:28  ID:TUIKyN4z.net(2)
>729
本物…

735
デフォルトの名無しさん[sage]   投稿日:2016/08/15 13:36:04  ID:Yh7//hE4.net(6)
>732
まあそうだな。
人間クラスの女性属性で年齢属性が十代で、
あとはいろんなパラメータがバランス良く絶妙なバランスであるだけ。

736
デフォルトの名無しさん[sage]   投稿日:2016/08/15 13:43:17  ID:Y0Jnfl62.net(6)
>733
排便性能とでもいうパラメータ作れば良いんじゃねーの?
美少女じゃなくても排便が困難な人っているからな。

737
デフォルトの名無しさん[sage]   投稿日:2016/08/15 15:37:08  ID:Yh7//hE4.net(6)
便秘気味な美少女かw

738
デフォルトの名無しさん[sage]   投稿日:2016/08/15 16:44:15  ID:uCi+R87y.net(2)
            | 
            |  彡 ⌒ ミ 
           \ (´・ω・`)またうんこの話してる... 
             (|   |):::: 
              (γ /::::::: 
               し \:::
                  \
コメント2件

739
デフォルトの名無しさん[sage]   投稿日:2016/08/15 16:45:21  ID:P1EAyeII.net(4)
オブジェクト指向は愚かな考え。
排便メソッドを実装した人間クラスから美少女クラスが作れない。

740
デフォルトの名無しさん[sage]   投稿日:2016/08/15 17:02:42  ID:NHD7YcMK.net(2)
アヒルががーがーなくのではなく、がーがー鳴けばそれがアヒルなのである
うんこができればそれは人間なのである

741
デフォルトの名無しさん[sage]   投稿日:2016/08/15 17:08:50  ID:Y0Jnfl62.net(6)
オウムがガーガーなけばそれはアヒルなのである?

742
デフォルトの名無しさん[sage]   投稿日:2016/08/15 19:19:30  ID:ATo5mwbJ.net(2)
>738
「ウンコを覗くときウンコもまたおまえを覗いているのだ。」

もうこの子は脳の端までウンコになっちゃったんだよ…

743
デフォルトの名無しさん[]   投稿日:2016/08/16 12:32:47  ID:nB+m5lHF.net(2)
頬を紅潮させた少女のアナルは今にも決壊寸前のダムの如くヒクヒクと静かに脈打つのであった
そのアナルをまるで獲物を狙う蜥蜴の様な眼差しでジットリと凝視していたお前は…

744
デフォルトの名無しさん[sage]   投稿日:2016/09/04 22:44:30  ID:AI4OMPbE.net(2)
やはり、オブジェクト指向は愚かな考えなんでしょうか?
それはなぜですか?
コメント2件

745
デフォルトの名無しさん[sage]   投稿日:2016/09/05 23:26:30  ID:2pvjX+vh.net(2)
>744
なんのメリットもないから

746
デフォルトの名無しさん[sage]   投稿日:2016/09/10 22:12:27  ID:vL431mpn.net(2)
クロージャという秘境

747
デフォルトの名無しさん[sage]   投稿日:2016/09/11 09:06:24  ID:HdsNani4.net(2)
オブジェクト指向にクロージャーが取り入れられてから、
オブジェクト指向は更に便利になった。

748
デフォルトの名無しさん[]   投稿日:2016/09/11 09:11:08  ID:xTqWSUIJ.net(2)
どうせなら理想のクロージャの構文はどんなものか議論しよう。
美少女のウンコの話はもういいから。

749
デフォルトの名無しさん[]   投稿日:2016/09/11 10:48:53  ID:EVh79L2H.net(2)
いや美少女うんこの方が重要だ

750
デフォルトの名無しさん[sage]   投稿日:2016/09/11 18:47:04  ID:LruamEXh.net(2)
間をとってクソージャ

751
デフォルトの名無しさん[sage]   投稿日:2016/09/12 10:17:01  ID:WLe9OZIE.net(2)
おあとがよろしいようで

752
デフォルトの名無しさん[sage]   投稿日:2016/09/12 11:18:07  ID:DqPwyMnw.net(2)
じゃあ質問
若い時は買ってでもするものな〜んじゃ?
コメント2件

753
デフォルトの名無しさん[sage]   投稿日:2016/09/12 11:24:36  ID:R5hylYBo.net(2)
コンビニでトイレだけ借りるのは気まずいので後で何か買って帰る

754
デフォルトの名無しさん[]   投稿日:2016/09/12 13:15:37  ID:zvXoPKj/.net(2)
美少女を買う

755
デフォルトの名無しさん[sage]   投稿日:2016/09/12 21:03:27  ID:p0km3lhz.net(4)
>752
http://find-travel.jp/article/2123

シンガポール初 キッズクラブ

12歳までの子供が安全に遊べます。小さい子供連れのファミリに―にはうれしい施設です。
セントーサエキスプレスの終点ビーチ駅で下車、徒歩五分ほどです。
子供は有料ですが、付き添いの大人は、無料です。

756
デフォルトの名無しさん[sage]   投稿日:2016/09/12 21:04:17  ID:p0km3lhz.net(4)
http://www.dan-b.com/tp_luna/page1_1.html

ウェーブスターライド

すべり台

もくば館の電動木馬
自走式のジェットコースター。小さなお子様でも、
大人の付き添いがあれば乗れる。
付き添いの大人は無料にしてくれる心遣いがうれしい。

757
デフォルトの名無しさん[sage]   投稿日:2016/09/17 19:06:05  ID:iND/Jut9.net(2)
オブジェクト指向と計算式という対比がまずおかしいスレ
コメント2件

758
デフォルトの名無しさん[sage]   投稿日:2016/10/11 13:34:51  ID:SPhMZv+b.net(2)
>757
その前に>> 1の脳みそがオカシイ。
議論以前の話

759
デフォルトの名無しさん[sage]   投稿日:2016/11/14 16:47:20  ID:cBDVjyju.net(2)
>733
排便メソッドつくってうんち吐き出させれば良いじゃん…

760
デフォルトの名無しさん[sage]   投稿日:2017/03/21 23:51:29  ID:RJ2XVIqX.net(2)
できの悪いプログラマはこうやってくだらんことに執着した挙げ句道を外すからな

オブジェクト指向を禁ずるのは当然だが、プログラムも規制すべきだろ

761
デフォルトの名無しさん[sage]   投稿日:2017/05/12 17:45:37
外に公開するインターフェイスだけオブジェクト指向で中身は手続きとかできないの?

762
デフォルトの名無しさん[]   投稿日:2017/05/13 00:36:36
欲張りな事言うんじゃありません!

763
デフォルトの名無しさん[sage]   投稿日:2017/05/13 06:58:15
なんでもかんでもOOPしないといけないという強迫観念も新しい病気みたいなもんだ

764
デフォルトの名無しさん[sage]   投稿日:2017/05/14 02:14:38
OOPは自然な概念。
しようとしなくても自然にOOPで書いてしまう。

765
デフォルトの名無しさん[sage]   投稿日:2017/05/14 03:31:10
んじゃ、Cでファイル読んで行毎に番号振るプログラムを自然にOOPで書いてくれ。

OOPな言語でも油断してると手続き的なコードになるのが実感。
手続き型言語や関数型言語のが自然と言えば自然。
OOPはどっちかと言うと手続き型言語の限界を超える苦肉の策。
有効ではあっても、自然ではない。
コメント6件

766
デフォルトの名無しさん[]   投稿日:2017/05/14 07:58:36
手続き型の言語使ってるんだからそりゃ書き方は自然に手続き的になるわw

767
デフォルトの名無しさん[sage]   投稿日:2017/05/14 08:01:38
>765
とりまなんかのOOPLで「ファイル読んで行毎に番号振る」操作の“油断した”版をideone.comあたりで晒して見せてよ
コメント2件

768
デフォルトの名無しさん[sage]   投稿日:2017/05/14 09:35:08
>765は愚かな考え

769
デフォルトの名無しさん[sage]   投稿日:2017/05/15 00:15:06
>765
> Cでファイル読んで行毎に番号振るプログラム
FILE構造体使うからOOPだな。

770
デフォルトの名無しさん[sage]   投稿日:2017/05/15 03:18:59
後での取り回しのために動作分離してオブジェクトにするんであって
なんで"その中身をオブジェクト指向で書けるか?"なんて
頓珍漢な発想が出るのかの方が不思議だよ。

771
デフォルトの名無しさん[sage]   投稿日:2017/05/15 07:10:20
まぁそうだよね。関数型だって関数の中味に手続き書くだろうし
コメント2件

772
デフォルトの名無しさん[]   投稿日:2017/05/15 07:18:26
関数型言語で手続きは書けんですわ

773
デフォルトの名無しさん[sage]   投稿日:2017/05/15 09:31:45
んなこたーない何のためのモナドだよ

774
デフォルトの名無しさん[sage]   投稿日:2017/05/15 12:20:31
>771
関数型言語では手続きは書かない。
式か、式とパターンマッチやガードによる条件わけだけ。モナドもdo形式で書くと手続きっぽいけど、実際は大きな一つの式。

if/caseに似てるけど、文と式が入り乱れるのと違って全部式。
それで何が嬉しいかと言うと、正しい動作をすると言う証明が出来る。

775
デフォルトの名無しさん[]   投稿日:2017/05/15 12:31:36
せやね関数型言語でも中身はモナド駆使して手続き的に書くのが自然やからね

…せやろか?

776
デフォルトの名無しさん[sage]   投稿日:2017/05/16 00:16:27
>767
import sys

for i, line in enumerate(open(sys.argv[1])):
____print i, line,

Python3だとprint i, line end = ' '

ついついこう書いちゃうだろ?
でも、出力先がGUIになった途端破綻する。
そう言うのを見越して汎用的にしとかんと。
コメント2件

777
デフォルトの名無しさん[sage]   投稿日:2017/05/16 06:05:49
出力先を切り替えられるようにしたい、は別の要件でしょ

778
デフォルトの名無しさん[]   投稿日:2017/05/16 06:12:48
>776が全然破綻しとらん件

779
デフォルトの名無しさん[sage]   投稿日:2017/05/19 01:55:11
CでOOPしてたやつって、なんかのGUIライブラリでなかったっけか?

780
デフォルトの名無しさん[sage]   投稿日:2017/05/19 10:49:17
gtk

781
デフォルトの名無しさん[sage]   投稿日:2017/05/22 08:36:50
X

782
デフォルトの名無しさん[sageteoff]   投稿日:2016/01/05 02:10:25  ID:hJUQcrkl.net(2)
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
https://twitter.com/ProgrammingMono/status/665702678006140928

研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・
コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。

生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった
秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な
酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な
枝分かれ構造をとっています。

これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の
動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。

今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、
隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制
されていることを世界に先駆けて実証しました。

興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の
動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる
ことをコンピュータシミュレーションで実証しました。
http://www.jst.go.jp/pr/announce/20151120-2/#YOUGO3

前スレ
オブジェクト指向は愚かな考え。この世は計算式 ★2

783
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/05 02:40:11  ID:3cj4CitF.net(2)
>1 = ハゲ
>3-1000
ゴミ


死ね

784
デフォルトの名無しさん[sage]   投稿日:2016/01/05 08:10:47  ID:WVEw1bNF.net(2)
相変わらず気が狂ってるね

785
デフォルトの名無しさん[]   投稿日:2016/01/05 21:54:42  ID:8fihq/Cm.net(2)
オブジェクト指向は直観に反するんだよな。
こいつを見てくれ。
http://pbs.twimg.com/media/CW4jn4jUkAAqIlA.jpg

Coffeeオブジェクトに振る舞いがある。これはオブジェクト指向的に完全に正しい。
しかし、現実にコーヒーを飲むのは人間だ。コーヒーは人間によってカップに注がれる存在だ。
これが思考を混乱させる。オブジェクト指向に従うとよくわからないソースコードのできあがりだ。
データに振る舞いを持たせるのは大失敗だと言わざるを得ない。

786
デフォルトの名無しさん[sage]   投稿日:2016/01/05 22:44:58  ID:zW6slUa6.net(4)
空かどうか判定するEmpty()を定義したCupクラスとLiquidクラスを継承したCoffeeクラスを作って、HumanクラスにRefill(Cup,Liquid),Drink(Cup)を定義すればいいだけだ

if(cup.Empty())
{
human.Refill(cup,coffee);
}
else
{
human.Drink(Cup);
}

787
デフォルトの名無しさん[sage]   投稿日:2016/01/05 22:47:52  ID:i0IFFoJB.net(6)
コーヒーの属性定義が広範囲すぎる
量をのオブジェクトに突然、実態コーヒーを入れている
量のオブジェクトの範囲のクラスを作っる
コーヒークラスに量をコンポジションさせる
設計の間違え

788
デフォルトの名無しさん[sage]   投稿日:2016/01/05 22:51:39  ID:GCWuNCn0.net(2)
>4
単純。

コーヒーはただの量であり、人間オブジェクトの一変数だ。
いや、コーヒーはオブジェクトであり、生成からの時間により温度変数の値が変わる。
いや、コーヒー生成の時刻を保持するのは人間であり、コーヒーの温度を計算するのは人間である。
いや、コーヒーはコーヒーサーバーオブジェクトの変数であり、、、、

789
デフォルトの名無しさん[sage]   投稿日:2016/01/05 22:55:26  ID:i0IFFoJB.net(6)
>5
ま^、これでもいいがこれをオブジェクト指向と思っている時点で
何をやっても後が大変。

790
デフォルトの名無しさん[sage]   投稿日:2016/01/05 23:02:31  ID:zW6slUa6.net(4)
>8
目的次第としか言えんわ
直感的なコードが求められるなら>5ってだけ

791
デフォルトの名無しさん[sage]   投稿日:2016/01/05 23:15:31  ID:i0IFFoJB.net(6)
その直感が、直感的だと思う時点
斜め直感にしか見えん

792
デフォルトの名無しさん[]   投稿日:2016/01/05 23:33:07  ID:QVqdPGfo.net(2)
すまん、自動で口にコーヒー注いでくれない前時代のコップ使ってる雑魚おる?

793
デフォルトの名無しさん[sage]   投稿日:2016/01/06 00:33:16  ID:73ZB/O6z.net(2)
胃瘻はかなり前に技術だが

794
デフォルトの名無しさん[sage]   投稿日:2016/01/06 02:56:11  ID:MPHK5bs1.net(2)
>5
おまえはカップを飲むのかw

795
デフォルトの名無しさん[sage]   投稿日:2016/01/06 06:53:26  ID:UF966QGg.net(2)
現実をそのままモデル化してOO否定って5周くらい遅れとるで

796
デフォルトの名無しさん[sage]   投稿日:2016/01/06 07:15:47  ID:QNndC4zW.net(4)
形式主義ではコーヒーを椅子に置き換えても成り立つってことをいいたいんじゃないのか。

797
デフォルトの名無しさん[sage]   投稿日:2016/01/06 08:11:16  ID:xFxLYqzC.net(2)
>14
>4は現実をそのままモデル化できていない。
大事なのは、そのままモデル化するのではなく、どうモデル化するかなのだ。

798
デフォルトの名無しさん[sage]   投稿日:2016/01/06 08:45:38  ID:/XlzX9bH.net(2)
人間は現実を直接みてるわけじゃないからね

799
デフォルトの名無しさん[sage]   投稿日:2016/01/06 08:58:13  ID:9xF4ChVe.net(2)
まー初心者(OOだけでなくプログラミング全般の初心者)向けのオブジェクト指向の解説とかでよくある説明だよね。
「オブジェクトとは日本語で物、対象物などという意味です」みたいなさ。とっかかりとしては平易なためによく使われているけど、
数学の定義のように後生大事にするべき、応用の効く、正しいイメージじゃない。

800
デフォルトの名無しさん[]   投稿日:2016/01/06 11:11:49  ID:wCEM/hYT.net(2)
>1

801
デフォルトの名無しさん[]   投稿日:2016/01/06 11:14:02  ID:Nukx80Um.net(2)
クラスは原子陽子中性子くらいから完璧に継承すべき

802
デフォルトの名無しさん[]   投稿日:2016/01/06 11:15:12  ID:nQqbz+/u.net(6)
メソッドに何かやらせるのはやめて全て物理演算で動作を決めるべき

803
デフォルトの名無しさん[]   投稿日:2016/01/06 11:19:28  ID:dAXQ+tnq.net(2)
コンピュータ内でシミュレートするのではなく実際の分子原子を用いるべき

804
デフォルトの名無しさん[sage]   投稿日:2016/01/06 11:34:29  ID:KjcuT4OL.net(2)
そんなことしたら分子原子の仕様変更で全てがひっくり返るぞ

805
デフォルトの名無しさん[]   投稿日:2016/01/06 11:54:24  ID:nQqbz+/u.net(6)
メソッドコールのかわりにオブジェクトに対するフォースとトルクを搭載した言語を作ればいい

806
デフォルトの名無しさん[]   投稿日:2016/01/06 11:57:30  ID:nQqbz+/u.net(6)
>13
これ、どう表現すべきなのか?

807
デフォルトの名無しさん[sage]   投稿日:2016/01/06 12:01:41  ID:QNndC4zW.net(4)
beDrank, beRefilledにかえればいいだけだろ。

808
デフォルトの名無しさん[sage]   投稿日:2016/01/06 12:26:10  ID:HvQ48C0N.net(2)
>25
drinkに渡すのはcup.contentsとかにする?

809
デフォルトの名無しさん[sage]   投稿日:2016/01/06 13:44:41  ID:ZUCJrGIg.net(2)
>4は一般的なコーヒーのモデル化じゃなくて
コーヒーの消費が常態化したマの皮肉じゃないの
最後にコメント付いてるし

810
デフォルトの名無しさん[]   投稿日:2016/01/06 21:55:30  ID:kAnzyWXR.net(2)
オブジェクト指向は無理

811
デフォルトの名無しさん[]   投稿日:2016/01/06 21:55:58  ID:zRcw+KQb.net(2)
まったく直感的ではないな

812
デフォルトの名無しさん[]   投稿日:2016/01/06 21:56:37  ID:fWGpYiip.net(2)
こうしてクソみたいなソースコードが溢れた

813
デフォルトの名無しさん[]   投稿日:2016/01/06 21:57:33  ID:ljmmccCR.net(4)
>25-27
こんな議論になる時点でオブジェクト指向はヤバいだろ

814
デフォルトの名無しさん[]   投稿日:2016/01/06 21:58:49  ID:ljmmccCR.net(4)
>2
死ね

815
デフォルトの名無しさん[]   投稿日:2016/01/06 22:00:48  ID:vTtwKBx3.net(2)
>9
そこまでしてオブジェクト指向にこだわる意味がわからない。
そんなもんperlやrubyのワンライナーですませろよ

816
デフォルトの名無しさん[sage]   投稿日:2016/01/07 00:25:26  ID:idw/W9gn.net(2)
オブジェクト指向も結局はコミュニケーションというか
メソッド(関数)指向という方が正しい。
結局はメソッド(関数)をどのように呼ばれるか、まとめられるかってことだから。

817
デフォルトの名無しさん[sage]   投稿日:2016/01/07 01:03:06  ID:Spe75WNW.net(4)
メソッドは関数ではない
メソッドとは特定のオブジェクトにのみ適用可能な手続きであり、
関数とは特定のオブジェクトに依存しないものである
特に純粋関数は状態にも依存せず、参照等価性が成り立つものである

ところでオブジェクトが状態を持たず、メソッドを持たなければ、
それは単なるデータ(例えばハッシュマップ)と同じである
従ってオブジェクトというものは状態、及びメソッドの存在を暗示している

オブジェクト志向とは全てのものを変更可能なデータ(言い換えればエンティティ)とメソッドで表そうという観念である
関数型はそれに反して極力多くのものを変更不可能なデータ(値)と関数で表そうとする
ここの話はいわゆるドメイン駆動設計にも絡んでいる

どちらが、現実世界の捨象に有用であるかということが問題なのである

818
デフォルトの名無しさん[sage]   投稿日:2016/01/07 01:15:30  ID:Spe75WNW.net(4)
オブジェクト志向で実装可能なことは、原理的に関数型でも実装可能であり
関数型で実装可能なことは原理的にオブジェクト志向でも実装可能なはずである

関数はオブジェクト志向においては、staticクラスを使えば実装できる
メソッドは関数型においては、第一引数によって動作を変更するポリモーフィズムとして実装できる

問題はどちらが汎化に適しているかということなのである
関数型にはオブジェクト指向では綺麗に実装できない麗としてマルチメソッドというものがある
これは第一引数及び第二引数+・・・の型を持ってして動作を変更するという技であるが、
特定のオブジェクトに依存しているオブジェクトにおいてはこれはif文を内包したディスパッチをする他に実装する方法はないだろう

一方staticクラスによる関数のパッケージ化は煩雑である
必要な関数だけをインポートするには、その関数を内包したstaticクラスをインポートする必要がある
もしここで厳密なカプセル化を適用するならば、
1つの関数のために1つのクラスを使う必要がある、さもなくば利用可能でない関数も同時にインポートしてしまう

カプセル化もまた、オブジェクト志向の特権ではないのである
関数型は関数をカプセル化しているのである
そして変数のカプセル化もまたクロージャで実装できる

オブジェクト志向での変数のカプセル化は容易ではあるが、本当に変数はカプセル化されるべきか
それが私の問いなのである

819
デフォルトの名無しさん[sage]   投稿日:2016/01/07 01:40:36  ID:6wDD5ILY.net(2)
>37
その問いにおける「変数」とは状態のことであるから、
それは構造化・カプセル化によってアクセス制限されるべきなのは明らか。

820
デフォルトの名無しさん[]   投稿日:2016/01/07 02:02:35  ID:EDvZlrKk.net(2)
>1>4
結局のところ、この問題に誰もが納得するシンプルな回答を示せない奴が設計するからデスマーチになるんだろ。

821
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/07 03:17:27  ID:VBUUQOGk.net(2)
自分も参加してるプロジェクトでデスマが起こるなら多分自分にも原因があるんだと思うよ

822
デフォルトの名無しさん[sage]   投稿日:2016/01/07 03:22:02  ID:Y5yasR7+.net(4)
>4
そもそもなんでコーヒーに命令するとコーヒーが自分で動作してんだよ。
そんなコーヒーがあるかw
いきなり設計段階から間違ってるじゃねーか

どう考えても最後の"//I am a software developer"って時点で
そういう設計をやらかす>4みてぇなバカを揶揄したセルフパロじゃんかw

823
デフォルトの名無しさん[sage]   投稿日:2016/01/07 04:03:14  ID:Y5yasR7+.net(4)
ああ、ジョークまで完全に見えた
>4は「プログラマがコーヒーを飲む」じゃなくて
「コーヒーがプログラマに飲まれる」って逆転ジョークで
絶え間なくコーヒーが自動的にプログラマに注がれ続ける
おかしな逆転コードでプログラマジョークになってんだ。

「こいつをみてくれ」じゃねーよ!プププ

824
デフォルトの名無しさん[sage]   投稿日:2016/01/07 04:17:18  ID:boatvz1E.net(2)
>36-37 が大嘘であることはOCamlの存在が証明している

825
デフォルトの名無しさん[sage]   投稿日:2016/01/07 14:46:08  ID:Geoe+pHe.net(2)
こういう根本的に理解できてないのが大量に居る時点で、オブジェクト指向は愚かな考えw

826
デフォルトの名無しさん[sage]   投稿日:2016/01/07 15:46:48  ID:bWvRU875.net(4)
コーヒーはどうでもいいけど、
2.log() とか数に数学的関数計算をくっつけるってどうなのよ?
気持ち悪いったらありゃしねえ。

827
デフォルトの名無しさん[sage]   投稿日:2016/01/07 18:04:34  ID:nwSyjPdt.net(2)
数学みたいにlog(2)でいいと思うが。
その()は何のためにあるんだと言いたい。

828
デフォルトの名無しさん[sage]   投稿日:2016/01/07 19:24:41  ID:bWvRU875.net(4)
大分昔だけどフリー関数は気持ち悪くて、1.sin()とか1.cos()とか書けるのが本来の在り方だ、といった
痛い記事を読んだ記憶がある。Rubyがらみだったかなあ。
今ちょっと検索すると見つからないから俺の妄想なのかもしれん。

829
デフォルトの名無しさん[sage]   投稿日:2016/01/07 19:33:58  ID:LLMMv1AA.net(2)
数字は計算をしないからそう書いちゃいかんのだけどな

830
デフォルトの名無しさん[sage]   投稿日:2016/01/07 19:53:48  ID:wknU54yj.net(2)
+ 1 2

831
デフォルトの名無しさん[sage]   投稿日:2016/01/07 21:42:11  ID:a7kpSA/c.net(4)
死ね括弧

832
デフォルトの名無しさん[sage]   投稿日:2016/01/07 21:57:00  ID:sG4YEGv+.net(2)
(スズ)

拝承

833
デフォルトの名無しさん[sage]   投稿日:2016/01/07 22:18:47  ID:a7kpSA/c.net(4)
>46
> 何のため
関数そのものなのか、関数を呼び出した結果なのかを区別する括弧。
括弧がなければ関数そのもの、あれば関数呼び出しの結果。
括弧がなければlogという関数そのもの、あればlog(hoge)の計算結果。
かどうかは言語による。

834
デフォルトの名無しさん[]   投稿日:2016/01/09 14:00:07  ID:8eWGVEYX.net(4)
>45
こういう主語述語みたいなくだらない議論に陥るのがオブジェクト指向の最大の問題点だな
どっちでもいいからそのためのテストなりサンプルコードをがつがつ作ってくれれば問題ないんだが
糞みたいな議論ばっかりふっかける輩を生むところが最大の問題点だな。

835
デフォルトの名無しさん[]   投稿日:2016/01/09 14:37:25  ID:hdqMNonU.net(2)
>53
何も考えずに作業こなすだけの社畜 VS 議論ばかりやる頭でっかち ファイッ!!

836
デフォルトの名無しさん[]   投稿日:2016/01/09 16:12:34  ID:8eWGVEYX.net(4)
>54
極論煽るだけのカスも大概だけどな

837
デフォルトの名無しさん[sage]   投稿日:2016/01/09 17:15:53  ID:3kY/wzgi.net(4)
>53
ドット構文を変な風に使うバカの問題であってオブジェクト指向関係ないな。

838
デフォルトの名無しさん[sage]   投稿日:2016/01/09 18:23:24  ID:oGyr6/WF.net(4)
主語述語っていうけど、オブジェクトは目的語だからね

839
デフォルトの名無しさん[sage]   投稿日:2016/01/09 19:25:35  ID:oGyr6/WF.net(4)
昔ながらのfunc( obj ); 形式だと、オブジェクトを主語と考える人はいないだろうし
obj.func(); は↑が変形したものにすぎないから同じ理屈だよね
しかも時期C++ではfunc( obj )でもobj.func()でもどちらの形式でも呼び出せるようにするって
C++の超偉い人がやる気満々だし、見た目は最早重要ではないよね

普通に考えると、主語はコンピュータや処理系だね
プログラミングを全然知らない人でも、主語は誰?って聞いたらコンピュータって答えるだろうね

何するにしても、結局実行するのはコンピュータだからね
これが全く現実世界でおこっている物理現象なのに、あえてオブジェクトを主語という風に
ひねくれた別な観点で考え直す必要は無いね

現実世界に合わせて、主語をコンピュータ、オブジェクトを目的語、関数を述語、と捉えると
それで多態や継承が出来なくなるっつーんなら困るけど、そういうわけではないからね
だったら現実世界で起こっていることに合わせて考えたほうが自然だね

840
デフォルトの名無しさん[sage]   投稿日:2016/01/09 19:39:23  ID:OrUjMMRy.net(2)
メッセージングのオブジェクト指向の言い方で言うと、
主語はメッセージのレシーバであり、文の残りはメッセージだ

841
デフォルトの名無しさん[sage]   投稿日:2016/01/09 23:40:46  ID:3kY/wzgi.net(4)
>58 チンパンジーのアイちゃんかな?

842
デフォルトの名無しさん[sage]   投稿日:2016/01/09 23:55:42  ID:CpCNnIMM.net(2)
>58
x.sin() では x がオブジェクトで、sinというメソッド(もしくはメッセージ?)を処理していて、
sin(x) では sin がオブジェクトで、xという入力を処理している。

どちらかの方がよりオブジェクト指向的だという序列なんかない。
数学関数それ自体をオブジェクトと認めようとしない思想(?)の根源は何なんだ?

843
デフォルトの名無しさん[]   投稿日:2016/01/10 00:13:34  ID:MD/fGeTk.net(2)
ポーランド記法嫌いそう

844
デフォルトの名無しさん[sage]   投稿日:2016/01/10 00:21:12  ID:sdj7zt3O.net(8)
演算子前置のポーランド記法は嫌いだなぁ
存在する意味がわからないレベルで嫌い。
演算子後置の逆ポーランドじゃないとね。

845
デフォルトの名無しさん[sage]   投稿日:2016/01/10 00:34:49  ID:0XznusY4.net(2)
> 存在する意味がわからないレベルで嫌い。

なんで?

> 演算子後置の逆ポーランドじゃないとね。

なんで?

846
デフォルトの名無しさん[sage]   投稿日:2016/01/10 00:40:13  ID:hoksOuY6.net(2)
Add 3 to 5, then multiple it by 2.

847
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:09:07  ID:UgGJRpwk.net(2)
逆ポーランドの方が実装しやすいと思う。
人それぞれの範疇だが。

848
デフォルトの名無しさん[]   投稿日:2016/01/10 01:11:54  ID:MiN6/z6v.net(2)
>逆ポーランドの方が実装しやすいと思う。

意味がわからん。
構文木作るのに一番前と後でなんか変わるか?
AST作らずにそのまま逐次実行するならスタックに
積むだけでいい逆ポーランドの方がいいかもしれんが

849
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:16:08  ID:+l1yiqNW.net(8)
x.sin() では x がオブジェクトで、sinというメソッド(もしくはメッセージ?)を処理していて、
sin(x) では sin がオブジェクトで、xという入力を処理している。

どちらかの方がよりオブジェクト指向的だという序列なんかない。
数学関数それ自体をオブジェクトと認めようとしない思想(?)の根源は何なんだ?

違うよな
どちらがオブジェクト志向的かといえばx.sin()でしょ
xというオブジェクトにsin()というメソッドが属しているという考えなんだから
sin()は関数に対してxというオブジェクト、あるいは単にデータを引き渡しているだけ

後者は明らかに関数的な考え方、動詞優位

850
デフォルトの名無しさん[]   投稿日:2016/01/10 01:27:11  ID:hZikTLMs.net(14)
関数へのエイリアスのようなメソッドはドットで繋ぐのでなく、
別の文字にした方がいいよな。

851
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:29:17  ID:sdj7zt3O.net(8)
釣りじゃなくて単に本当にあたまおかしいのかな?
Xはデータであって演算ではない。Xは演算しない。
Xをオブジェクトとして扱った場合、その操作として実装されるメソッドは
データのゲットセットなど内部状態を隠蔽するためのメソッドと
可変不変などのデータ状態をあらわすメソッド。

まだお前の脳内じゃおまえがコーヒーを飲むんじゃなくて
コーヒーが勝手に口に飛び込んで来てんのか。

852
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:29:19  ID:Ch7U5rc3.net(2)
x.sin()は手続き言語的だと思うけどなあ
もちろんsin(x)も。
オブジェクト指向ならメッセージを送るような記述の方が自然では

853
デフォルトの名無しさん[]   投稿日:2016/01/10 01:52:12  ID:hZikTLMs.net(14)
現実世界をオブジェクト指向に当てはめるやついるけど馬鹿だよなー

コーヒーが勝手に口まで運ばれてくる機能をコーヒにつけただけじゃんw
ついでにコーヒーがしゃべる機能もつけたよ。

問題がないからそういう設計にしたんですよ

854
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:53:23  ID:+l1yiqNW.net(8)
どちらがより汎化されているかではなく
具体例で語ろうとする人間は、プログラムを実装したことがないのでは?

具体的な手続きによる具体的な文字通りのプログラムを書きたいなら
Cでかいてどうぞ

855
デフォルトの名無しさん[sage]   投稿日:2016/01/10 01:59:31  ID:+l1yiqNW.net(8)
オブジェクト指向だろうと関数志向だろうとやってることは変わらない

オブジェクトはメソッドの第一引数でしかない

コーヒーを飲むという行為を書くためには手続き的に書くしか無い
コーヒーが俺の口の中にあるという結果を宣言的に書きたいのに
その手続きを丹念に描写したいならそうすればいい

I.drink(coffee)と書けばいいんだよ
I.drink(coffee)とyou.drink(coffee)は飲み方が違う!というのならそう実装すればよい

モデリングとは物事を単純化する行為、汎化する行為であって具象化する行為ではない
Iとyouの違いがモデルのキーポイントなら、Iとyouという(メソッドの第一引数)をパラメータに加えればいいし
そうでないなら含まないほうがモデルがシンプルに保たれる

数学ができない自称モデラーはプログラムを手続き的に書いたらいいんだよ

856
デフォルトの名無しさん[]   投稿日:2016/01/10 02:00:42  ID:hZikTLMs.net(14)
特化させたいのに汎化する必要ある?
狭い世界で使うなら特化させていい。
広い世界で使うなら汎化させる。

それだけ。

857
デフォルトの名無しさん[]   投稿日:2016/01/10 02:03:41  ID:hZikTLMs.net(14)
汎化と特化させるもんを決めるのが設計な

858
デフォルトの名無しさん[]   投稿日:2016/01/10 02:42:12  ID:JhCLPk/2.net(12)
>74
言ってることはわかるがコーヒーを主語に対象を汎化なら
coffee1.drunkBy(me);
coffee2.drunkBy(you);
だろ

859
デフォルトの名無しさん[]   投稿日:2016/01/10 03:01:38  ID:JhCLPk/2.net(12)
>72
普通モデリングなんて想定される実装の多さや効率の問題で変えるものだからね
感性にまかせる初心者ほど文脈や抽象に拘って依存性の上下を無視するよ

860
デフォルトの名無しさん[sage]   投稿日:2016/01/10 04:22:46  ID:sdj7zt3O.net(8)
アクセル→エンジン→ギア→タイヤじゃなくて
タイヤ.回転で自動車設計してそうだなおまえら。

861
デフォルトの名無しさん[]   投稿日:2016/01/10 05:12:47  ID:JhCLPk/2.net(12)
>79
そうやって現実の構造を想定している時点でもう駄目なんだよ

862
デフォルトの名無しさん[]   投稿日:2016/01/10 05:20:12  ID:JhCLPk/2.net(12)
ちうかこれオブジェクトが目的語とか言ってる人か?
英語とプログラミングのobject混同とかとてもまともとは思えないよ

863
デフォルトの名無しさん[sage]   投稿日:2016/01/10 05:34:14  ID:97NQyWJD.net(2)
>74
JavaScriptだと実際foo.barは第0番目の引数を指定するための糖衣構文でしか無い
オブジェクト指向は別にそんな大したものでも、手続き型と相容れないものでもない
指向とは言うが実際の所スタイルの一部だね

864
デフォルトの名無しさん[sage]   投稿日:2016/01/10 08:13:48  ID:86WjwACC.net(2)
いいえ、自転車.操業で設計しています

865
デフォルトの名無しさん[sage]   投稿日:2016/01/10 08:49:55  ID:jS8+hJYw.net(10)
>82
そういう嘘をまき散らさないでもらいたいなあ。
毛の人といい、技術の普及は嘘との戦いだな。
オブジェクト指向は嘘つきが多すぎた。

866
デフォルトの名無しさん[sage]   投稿日:2016/01/10 09:36:41  ID:AcnVMiQc.net(12)
>68
いいえ。
sin(x) と書いたときのsinは十分オブジェクトに見えるでしょ。
xとsinは違う階層(空間)に属するモノだけど、後者の方が階層としては高い。
x.sin()と書くと、あるオブジェクトが自分より高い階層のオブジェクトを所有しているように見えてしまう。
これは俺にとっては不自然なので好きになれない。

867
デフォルトの名無しさん[]   投稿日:2016/01/10 09:42:21  ID:KeJgEHCD.net(6)
オブジェクト指向は手続き型と直行する概念だと理解してないのが何人かいるな

868
デフォルトの名無しさん[sage]   投稿日:2016/01/10 09:44:41  ID:sdj7zt3O.net(8)
>80
"現実の構造を想定しちゃダメ"て
おまえの作るシステムはどんな現実離れした
脳内妄想ベースなんだよ。

869
デフォルトの名無しさん[]   投稿日:2016/01/10 09:52:56  ID:Itquv6VW.net(8)
sinは関数だろね。
テーブルを持つためにクラスを使わなければならない言語があったとしても、
極力、ユーザーにとって関数に見えるように実装するべきじゃないのかな。

870
デフォルトの名無しさん[sage]   投稿日:2016/01/10 10:08:13  ID:jS8+hJYw.net(10)
関数がオブジェクトじゃ何か困ることでも?

871
デフォルトの名無しさん[sage]   投稿日:2016/01/10 10:09:40  ID:jS8+hJYw.net(10)
>79
君が設計する自動車ではエンジンブレーキが効かないようだな。

872
デフォルトの名無しさん[]   投稿日:2016/01/10 10:29:26  ID:hZikTLMs.net(14)
ブレーキなんてのは外部から
ベクトルの力を操作するんだから
後付けで全然構わないんだが。

873
デフォルトの名無しさん[sage]   投稿日:2016/01/10 10:41:27  ID:AcnVMiQc.net(12)
関数を手続きだと思ってるならそれでいいけど、名前が関数ってだけで数学関数をそういうカテゴリーのものとするのは不適当でしょうね。

874
デフォルトの名無しさん[sage]   投稿日:2016/01/10 11:09:22  ID:hXY04te0.net(2)
クロージャーって、関数なの?オブジェクトなの?
rubyだとProcのインスタンスでしかないよね

875
デフォルトの名無しさん[sage]   投稿日:2016/01/10 12:33:30  ID:jS8+hJYw.net(10)
>91
わからないなら無理に口を挟まないほうがいいよ。

876
デフォルトの名無しさん[]   投稿日:2016/01/10 13:26:28  ID:Itquv6VW.net(8)
>92
関数が状態を持つべきかどうか考えると自ずと答えが出るのではないだろうか。

877
デフォルトの名無しさん[sage]   投稿日:2016/01/10 13:37:48  ID:UyzGSaeg.net(4)
sin(x)は関数の値であって関数ではないよな。 関数は∀x∈double.sin(x)のことだよな。

878
デフォルトの名無しさん[sage]   投稿日:2016/01/10 13:51:03  ID:ainPuYsM.net(14)
>85
実装がどうあれ、OOPではメソッドはオブジェクトに属するものとして考えるから、
x.sin(value)の表記は不自然じゃ無いだろ。sinはオブジェクトxに属している。

879
デフォルトの名無しさん[]   投稿日:2016/01/10 14:13:06  ID:Itquv6VW.net(8)
>97
それは不自然な考え方じゃないかな。
原点に立ち返ってみると、オブジェクト志向とはコード再利用に際して
コンポーネント化の要求から発生したもの。
現実に存在する物のように、ディスプレイ上のウィンドウに四角形を
描画しろとメッセージを送るというようなシンプルなものだ。
この場合、四角形自体がオブジェクトであることは問題が無いように感じる。
これは、四角形が状態を保持しているからかもしれない。
一方、数値に対してsinを要求するのは突拍子もないように感じる。
これは、数値を日常いたるところで使用していて、数値がメッセージを受け取る性質を
もたないと良く知ってるからではないだろうか。
あるいは計算機オブジェクトに対してsinを要求するなら不自然に感じないのかもしれない。
どうだろうか?

880
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:14:35  ID:CDx7UjTI.net(4)
この種のくそ議論って恣意的な答えしかないんだから、
議論するだけ無駄なんだけどねぇ。

881
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:15:24  ID:AcnVMiQc.net(12)
>95
状態をもつかどうかは実装しだい。
関数を初期化するとき係数のセットを与えるとかあると思う。

関数がグループとしてまとまって環をなすとか

882
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:17:25  ID:ainPuYsM.net(14)
つか、sin(x)ってなんやねんw
引数無しのメソッドの話か? それならsinは例として不適当だ。

sinを例にするなら、x.sin(value) か、sin(x, value) だろ。

883
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:17:26  ID:AcnVMiQc.net(12)
>97
そりゃメソッドはオブジェクトに属するだろ。
メソッドとして位置付けるのが適切かどうかの議論をしてるんだよ。

884
デフォルトの名無しさん[]   投稿日:2016/01/10 14:17:31  ID:Itquv6VW.net(8)
こういうシンプルな考えに基づくと、四角形と三角形は形状クラスから
派生すると思われる。
しかし、四角形オブジェクトと三角形オブジェクトの合成メソッドは、形状クラスあるいは
その派生クラスにあってはならないように感じる。
それは形状合成器クラスに、あるいは単純な関数であった方が良いように感じる。

885
デフォルトの名無しさん[]   投稿日:2016/01/10 14:21:04  ID:JhCLPk/2.net(12)
>87
物理的構造物とは違うんだよ
それすら理解できないならもう向いてないとしか

886
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:21:57  ID:UyzGSaeg.net(4)
属すじゃなくて依存するだと思うが。

887
デフォルトの名無しさん[]   投稿日:2016/01/10 14:25:29  ID:JhCLPk/2.net(12)
例えばゲームでキャラクターが特定のアイテムを使用するモデル
キャラ.使う(アイテム)はもらうアイテムによってメソッドの動作を変える必要があるが
設計としてはアイテム.適用(キャラ)のが遥かに取り回しやすい
なのにあえて前者のクソ設計を選ぶのが>87のようなオバカさん

888
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:26:22  ID:ainPuYsM.net(14)
>102
それならOOPの議論じゃないな。

>105
いや、属する/所有するという概念の方が適当だと思う。(実装は違うが)
実際クラスを書くときそう書くだろ。

889
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:44:22  ID:AcnVMiQc.net(12)
>101
現実の姿を模すという意味だとsinなどは連想配列であって、sin(x)という書き方はそのまんまだよね。
実装においては計算手続きだろうけど。

890
デフォルトの名無しさん[sage]   投稿日:2016/01/10 14:48:45  ID:jS8+hJYw.net(10)
Smalltalkerが引き上げたらもう初心者しか残ってないのかよ

891
デフォルトの名無しさん[sage]   投稿日:2016/01/10 15:22:03  ID:yvIOv1as.net(4)
そもそもクラスだってオブジェクト指向とは直接関係ない
>84
嘘ではなく現実だ

892
デフォルトの名無しさん[sage]   投稿日:2016/01/10 15:23:27  ID:yvIOv1as.net(4)
美少女が云々言うのも一般的なクラスベースは融通が効かないねという話であって
オブジェクト指向とは直接関係ないし

893
デフォルトの名無しさん[]   投稿日:2016/01/10 15:44:15  ID:KeJgEHCD.net(6)
>111
ほう、それならウンコをしない美少女をオブジェクト指向で設計して貰おうか

894
デフォルトの名無しさん[sage]   投稿日:2016/01/10 15:50:56  ID:AcnVMiQc.net(12)
>97
見逃したいたが、x.sin(value)の value って何だい?

895
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:06:27  ID:ainPuYsM.net(14)
>113
引数だよ。
クラスxのメソッドsinに渡す引数。
俺はそういう話をしてると思ったから。

896
デフォルトの名無しさん[]   投稿日:2016/01/10 16:18:07  ID:hZikTLMs.net(14)
xって中身は例えばfloatのデータ自身だぞ?
だから、引数は必要ないんだぞ?

897
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:26:17  ID:ainPuYsM.net(14)
>115
理解した。
それなら、x.sin() なんて形が出てくる余地は無いよな。

898
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:29:21  ID:CDx7UjTI.net(4)
一般に sin に必要な引数は、 pi/2 とかの実数(もしくは複素数) かな。
あとはいくつまでの級数和をとるとか何桁まで計算するとかが引数になるんじゃないかね。
その辺をあいまいなまま value とか x がクラスだの引数だの言ってることに何か意味があると思ってんのかね。

899
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:34:25  ID:ainPuYsM.net(14)
>117
いや、sinの引数がオブジェクトの場合はあるよ。
実数や10進型をクラスで表現したりするし、俺も実際やる。
xがそういうオブジェクトなら、sin(x)でいいし、x.sin()はおかしい。
まあ絶対におかしいとか無理ってわけじゃないけどなw

900
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:54:55  ID:yIre7PYR.net(4)
新しいC++ではsin(x)でもx.sin()でも、どちらの方法でも統一的に呼び出せるようになる予定だから
こんな議論は全く意味ないんだよ?

呼び出す側からしたら、sinがメンバ関数だろうが外部関数だろうが、何であれ、知ったことではないからね
気にしなければならないのは実装する側だけ
だからどちらの方法でも呼び出せるようになる、らしい

どちらの方法でも呼び出せるんだから、喧嘩する必要ないし、気にする必要ないよね

901
デフォルトの名無しさん[sage]   投稿日:2016/01/10 16:57:47  ID:yIre7PYR.net(4)
どちらの方法でも呼び出せるんだから
どちらの方が、よりオブジェクト指向的か、考えるのは意味がないんだよ
等しいわけ、等価と考えてよい
見た目が違うだけ
大した問題じゃない

902
デフォルトの名無しさん[sage]   投稿日:2016/01/10 17:00:24  ID:ainPuYsM.net(14)
なんか違うような気がするなw

903
デフォルトの名無しさん[]   投稿日:2016/01/10 17:07:10  ID:fbwGqbCo.net(8)
こんなにややこしいプログラムがオブジェクト指向を使って
こんなに簡潔になりましたって事例が欲しい

904
デフォルトの名無しさん[sage]   投稿日:2016/01/10 17:12:10  ID:1042xGua.net(2)
>112
思うんだけど、
うんkをしないというのが、
意思を持ってひたすら我慢して(人の目がある場所では)しないのか、
それとも腸内の美少女菌のおかげでする必要が無いのか、
もしくは他の何かなのかによってイメージが変わってくると思う。
でもしないにしろする必要がないにしろ、排便メソッド自体は備わっててもなんら問題ないと思う。
逆に、腸内やなんかの問題を解決せずに、排便メソッドだけ外して他を流用するということは、
オブジェクト指向的であろうがなかろうが不可能だと思う。
それこそ亞人として設計しなおして全ての手続やメソッドを別に用意することが妥当かもしれない。
だから結論を言うと、この例はそもそも良くないと思う。

905
デフォルトの名無しさん[sage]   投稿日:2016/01/10 17:51:06  ID:QPFpTdMb.net(2)
>122
サイズを持っていてくれるのですら俺は嬉しいと思う
文字列や配列を扱うとき
int string::size() {return strlen(data);} // 数える関数を使うって例
↑こーいうのじゃなくて
int string::size() {return end - begin;} // 簡単な計算(ポインタの差分)で返す
int string::size() {return size;} // 内部でケアしていたprivate変数を返す
こういう実装をしうるのが嬉しい
使うときに
a = s.size * s.size / s.size % s.size
みたいにいっぱい呼び出しても安心
逆に言うとせっかく用意されたsizeメソッドが内部で数えなおしてる場合はつまらないと思う

906
デフォルトの名無しさん[]   投稿日:2016/01/10 19:10:53  ID:fbwGqbCo.net(8)
>124
なるほどねー。

907
デフォルトの名無しさん[]   投稿日:2016/01/10 19:16:06  ID:fbwGqbCo.net(8)
>112
美少女はマーカーインターフェースであり、
美少女として扱うとき排便は隠蔽される。

interface 美少女 {
}

class おっさん implements 美少女 {
 void 排便() {
 }
}

908
デフォルトの名無しさん[sage]   投稿日:2016/01/10 20:20:59  ID:VQDMXfno.net(2)
>126
それは「何もしない」という排便メソッドを持つ
持たない,ではない

909
デフォルトの名無しさん[]   投稿日:2016/01/10 20:34:00  ID:fbwGqbCo.net(8)
>127
何を言うてんの?排便メソッドを持つのはおっさんだよ。

910
デフォルトの名無しさん[]   投稿日:2016/01/10 20:41:36  ID:KeJgEHCD.net(6)
聖水メソッドもないのに美少女とか笑わせんなよw

911
デフォルトの名無しさん[sage]   投稿日:2016/01/10 21:17:46  ID:+l1yiqNW.net(8)
オブジェクト志向の考えだと
大便ableインターフェースを実装するんだろ

912
デフォルトの名無しさん[sage]   投稿日:2016/01/10 21:57:06  ID:Hm2sxH4v.net(2)
美少女クラスを欲する奴が美少女のウンコがついたぱんつを欲しがらないかと考えると
これは要件定義から間違っているような気がしてならない。

913
デフォルトの名無しさん[sage]   投稿日:2016/01/10 22:05:43  ID:zd2SpHtU.net(2)
実装からメソッド設計を考えるより使い方から設計したほうが上手く行くと思う
つまり美少女がうんこ出来るのか、出来ないのかで考えるのでは無く美少女にうんこをさせたいのか、うんこさせたくないのかで考える

914
デフォルトの名無しさん[]   投稿日:2016/01/10 22:12:58  ID:hZikTLMs.net(14)
肛門はコンポーネントとしてアタッチする。
美少女は肛門をインプリメントしていない

915
デフォルトの名無しさん[]   投稿日:2016/01/11 02:57:08  ID:87Jnvcw4.net(2)
あのさ、どんな美少女もウンコするんだけど?

916
デフォルトの名無しさん[sage]   投稿日:2016/01/11 03:08:27  ID:Rwcs8mHW.net(4)
真の美少女は実在しない

917
デフォルトの名無しさん[sage]   投稿日:2016/01/11 03:18:02  ID:4rCdY4Yq.net(2)

918
デフォルトの名無しさん[sage]   投稿日:2016/01/11 04:26:03  ID:3eUcyomA.net(2)

919
デフォルトの名無しさん[sage]   投稿日:2016/01/11 14:41:47  ID:GiqteBDS.net(4)
関数型言語っていい点もあるけど、変更に弱過ぎない?
ちょっと動作を変えるのにかなり見直さないといけない

920
デフォルトの名無しさん[sage]   投稿日:2016/01/11 16:00:11  ID:Rwcs8mHW.net(4)
作りようだね

921
デフォルトの名無しさん[]   投稿日:2016/01/11 17:41:31  ID:d9M93+6h.net(14)
>138
関数型言語を使えば完璧なプログラミングが可能なので後から変更する必要が無い。

922
デフォルトの名無しさん[sage]   投稿日:2016/01/11 17:50:34  ID:KkwWauMD.net(2)
>140
完璧なプログラミングは出来ても
将来の仕様の変化を完璧に予測することは出来ないでしょ?

923
デフォルトの名無しさん[sage]   投稿日:2016/01/11 17:53:14  ID:GiqteBDS.net(4)
仕様変更できないって実用上ヤバくないですか

924
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:03:26  ID:RUBsLBHi.net(2)
オブジェクト指向は細かい修正で済むと手を抜き続けた結果メチャクチャ悲惨なことになる
全て書き直すくらいがちょうどいい

925
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:08:52  ID:hbMmOduf.net(2)
> メチャクチャ悲惨なこと

たとえば?

926
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:13:38  ID:rz35E4wE.net(8)
>144
全て書き直すはめになる

927
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:18:05  ID:V0AQQEoP.net(2)
関数型言語は仕様変更のたびにめちゃくちゃ悲惨なことをしなければならないのか

928
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:31:28  ID:KoUNfQqa.net(2)
言語の問題でなくて作ってる奴が馬鹿なだけでは?

929
デフォルトの名無しさん[sage]   投稿日:2016/01/11 18:59:27  ID:A5Rx7ofK.net(2)
ただのリスト操作を関数型と呼んでいる可能性

930
デフォルトの名無しさん[]   投稿日:2016/01/11 19:14:51  ID:d9M93+6h.net(14)
>141
関数型なら完全に未来を予測できる。

931
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:37:40  ID:ugQF1NqL.net(2)
そらすげーわ

932
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:38:18  ID:rz35E4wE.net(8)
>149
そういうのいいから

933
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:43:22  ID:XhrtL63c.net(4)
関数型言語はコンパイルした瞬間全てが完了される。

934
デフォルトの名無しさん[]   投稿日:2016/01/11 19:46:13  ID:d9M93+6h.net(14)
コンパイルが通ればバグが無いことを保証される。

935
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:47:17  ID:rz35E4wE.net(8)
>153
それもいいから

936
デフォルトの名無しさん[]   投稿日:2016/01/11 19:49:39  ID:d9M93+6h.net(14)
>154
お前関数型馬鹿にしてんの?

937
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:53:45  ID:XhrtL63c.net(4)
関数型言語にとって型とはプログラムの設計図なのである。

938
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:55:09  ID:rz35E4wE.net(8)
>155
関数型じゃなくてお前を馬鹿にしてるんだよw

939
デフォルトの名無しさん[sage]   投稿日:2016/01/11 19:55:15  ID:eiYfk44d.net(4)
1000近くなった雰囲気だな

940
デフォルトの名無しさん[]   投稿日:2016/01/11 20:02:18  ID:d9M93+6h.net(14)
ヨハネの手紙にも関数型が登場する。

941
デフォルトの名無しさん[sage]   投稿日:2016/01/11 20:05:53  ID:eiYfk44d.net(4)
鶏が鳴く前に三度、関数型など知らないと言う

942
デフォルトの名無しさん[]   投稿日:2016/01/11 20:09:36  ID:d9M93+6h.net(14)
マタイの福音書、関数型が世界を平和に導く。

943
デフォルトの名無しさん[]   投稿日:2016/01/11 20:40:32  ID:d9M93+6h.net(14)
>157
ああそう、なら良いんだ。
関数型馬鹿にしたら唐沢弁護士に頼んで勝訴しちゃうからね?

944
デフォルトの名無しさん[]   投稿日:2016/01/11 22:15:27  ID:qSBpiVnS.net(2)
関数型に不可能はない。関数型は神にのみ扱える至高の言語
関数型を疑ってはならない。汝の実力を疑え

945
デフォルトの名無しさん[sage]   投稿日:2016/01/11 22:48:28  ID:CMbhymom.net(2)
毛の壁の臭いがするな。

946
デフォルトの名無しさん[sage]   投稿日:2016/01/12 01:32:19  ID:SYPJaqWI.net(2)
広く使われてて実用的な言語は多かれ少なかれマルチパラダイム
関数型っていうのも結局は作者がそう言ってるかどうかの線引でしか無い
理想的な関数型gwンゴを想定してなにか言うのはあまり意味が無い

947
デフォルトの名無しさん[sage]   投稿日:2016/01/12 01:34:43  ID:uMvEa0J7.net(4)
関数型ンゴwwwwwwwwwwwwwwwwwwwwwwwwwww

948
デフォルトの名無しさん[sage]   投稿日:2016/01/12 08:42:46  ID:V5bMIqIZ.net(2)
関数型グワンゴ

949
デフォルトの名無しさん[sage]   投稿日:2016/01/12 09:12:48  ID:/ZqCERvo.net(2)
今時は大学とかでも言語比較とか講義しているのかな。

950
デフォルトの名無しさん[sage]   投稿日:2016/01/12 19:38:37  ID:7kdSKUGZ.net(2)
lisp は関数型ですか?

951
デフォルトの名無しさん[sage]   投稿日:2016/01/12 22:56:29  ID:uMvEa0J7.net(4)
いいえ、変態型です

952
デフォルトの名無しさん[sage]   投稿日:2016/01/14 06:56:24  ID:/XPEQoow.net(2)

953
デフォルトの名無しさん[sage]   投稿日:2016/01/16 23:50:44  ID:vrXiOUCa.net(2)
美少女は天使クラスに属している。
排便しない。

954
デフォルトの名無しさん[sage]   投稿日:2016/01/20 11:46:14  ID:HskUHurd.net(2)
「オブジェクト指向プログラミングの例を挙げましょう。2000年代には、オブジェクト指向プログラミングは、企業向けプログラミングにおける基盤的技術の地位を確立したと思われていました。
しかし今では、私を含めて多くの人が、この潮流は20年間に渡って本流から逸れていたものであり、そのほとんどが間違いだったと考えています。」

コーディングを学ぶこと、それはあなたが考えるよりも大変です
http://postd.cc/learn-to-code-its-harder-than-you-think/

955
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:33:48  ID:CF7z5V/R.net(6)
>173
記事のベースはイギリスのプログラマ教育のあり方と社会地位の話で
"大学で教えていることが現場で役に立たない"ことと
"高級技術者としてのプログラマの社会的地位の低さ"について
そして、前者関連の話で「教えるべき技術は次々と移り変わる」例として
オブジェクト指向を挙げてみてるが、筆者があまり理解してる感じではないなぁ…
20年前なら単語そのまま「構造化プログラミング」に置き換えて書かれた
単なる流行りワードの扱いだわな。

956
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:39:59  ID:CF7z5V/R.net(6)
また、書かれている内容のとおりイギリスのプログラミング技術のほとんどが
学校教育ではなく「独学」で学ばねばならないもので、その上でガチで
『しかし今では、私を含めて多くの人が、この潮流は20年間に渡って
本流から逸れていたものであり、そのほとんどが間違いだったと考えています。』
と、思ってるとしたら本当にイギリスのプログラミング業界界隈の危機は
深刻なものだと考えざるをえない…

957
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:41:46  ID:uqyd4S+p.net(2)
日本も似たようなもんじゃないの? 違うの?

958
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:58:06  ID:CF7z5V/R.net(6)
>176
>173のリンクを読んだ感じではイギリスではどうも国を挙げて
学校や社会人教育で「無償で国民にプログラミングを学ばせる」事業をやってたっぽい
で、たぶん日本でやってもそうなるだろうけれど
みんな合格するようなレベルの簡単な内容なので
わざわざ教える意味がない的な事態になったっぽい?

大学の情報学科だったら日本でもまぁ直でコーディングの役には立たんが
逆に大学レベルの情報工学理論面を広く教えるから
オブジェクト指向なんて〜って池沼はでないだろう(皮肉

959
デフォルトの名無しさん[sage]   投稿日:2016/01/20 21:59:54  ID:ftWUH7Q0.net(2)
オブジェクト指向は思考パターンを破壊されるよ

960
デフォルトの名無しさん[sage]   投稿日:2016/01/20 22:38:38  ID:KK1TC/Qj.net(2)
コードの奇麗さはなになに指向とかとはいつだって無相関だよ。

961
デフォルトの名無しさん[sage]   投稿日:2016/01/20 23:28:45  ID:lyH/JRhU.net(2)
>179
その評価はとても健全

962
デフォルトの名無しさん[sage]   投稿日:2016/01/21 12:15:51  ID:pkb4zgJk.net(2)
>179
「奇麗」なコードってどんなの?

963
デフォルトの名無しさん[sage]   投稿日:2016/01/21 16:38:21  ID:OmENn3Ct.net(2)
>181
測定するツールがある。

964
デフォルトの名無しさん[sage]   投稿日:2016/01/22 08:41:08  ID:jWLszG8x.net(2)
それはツールに設定したルールを守ってるかの判別器でしか無いな。
本当に一般的に綺麗なコードとやらを図るには、
統計を集めて機械学習でもさせる必要があるだろう。

もしくは綺麗というのが、編集しやすいということなら
最低きちんとした理論と根拠を元に基準を決めるべき。
今の基準の多くはただ作者の信念だったり、狭い範囲での多数はを取っているだけ。

965
デフォルトの名無しさん[sage]   投稿日:2016/01/22 10:24:46  ID:BOI0ua8w.net(2)
>183
コードコンプリートでもよんだら?

966
デフォルトの名無しさん[sage]   投稿日:2016/01/22 12:53:49  ID:NE1Xg/XG.net(2)
コードとは言語だから、綺麗な英語と置き換えてみればわかる。 学校で教えられるのは全部綺麗な英語だから実際の外人の喋ってることなんか一つも役に立たない。 汚いコードを書いてどんな汚いコードも読めるようになるのが大切。

967
デフォルトの名無しさん[sage]   投稿日:2016/01/22 13:21:50  ID:p0qaIBjS.net(6)
実際に効果があるかそっちのけで、主観的な綺麗さばっかり気にしてルールを
固定化しようとするやつなんなの?
どことなく自閉症的で気味が悪い。

968
デフォルトの名無しさん[sage]   投稿日:2016/01/22 13:23:33  ID:p0qaIBjS.net(6)
あ、このスレの発言のことじゃないです。リアルの話。

969
デフォルトの名無しさん[sage]   投稿日:2016/01/22 14:33:54  ID:IejezU7v.net(2)
コードコンプリートを書いたのはマイクロソフト()だぞ
林檎がビューティパーフェクトコードを書くまで待て

970
デフォルトの名無しさん[sage]   投稿日:2016/01/22 22:02:12  ID:SlI41mNc.net(2)
>185
こういう人が職場にいたらきついお

971
デフォルトの名無しさん[sage]   投稿日:2016/01/22 22:17:23  ID:jXHHn5ty.net(2)
>186
ルールなんて誰でもわかってると思うけどな。

・重複する処理はかかない。
・同じことに関する値を重複して定義しない。
・計算で求められるものは計算でだす。
・ある処理に関するコードは一箇所にまとめる。
・条件分岐を減らす。
・ループを減らす。
・設計とファイル名やディレクトリ構造を一致させる。
・役割毎に関数やクラスを分ける
・関数やクラスはなるべく短くする
・テストしにくい所を減らす
・適切な名前(グローバルに近いほど長く、ローカルに近いほど簡単な名前)をつける。
・十分にテストされた信頼性が高いライブラリを使用する。独自実装しない。
・コーディングスタイルに適合すること
・メトリクス(複雑度等)が悪いものは認めない

これらは主観じゃないので、このルールにしたがえば、
誰でも良い方がどちらかわかる。

972
デフォルトの名無しさん[sage]   投稿日:2016/01/22 23:23:12  ID:p0qaIBjS.net(6)
>190
それらは効果があるとわかるものだから問題ないよ。

973
デフォルトの名無しさん[sage]   投稿日:2016/01/23 03:52:18  ID:qPctTKOa.net(2)
Smalltalker達がいなくなったら途端に初心者スレ化w

974
デフォルトの名無しさん[sage]   投稿日:2016/01/23 14:01:47  ID:xYcOlVg1.net(2)
Smalltalkの人はボコボコにされて
Smalltalkに自信を失って帰っちゃったからな

実際全然使われていない現実なわけだから
何を言っても説得力皆無だし机上の空論になるし
こいつマゾと思って皆で玩具にしたが
言うほどマゾじゃなかったのかもね

975
デフォルトの名無しさん[sage]   投稿日:2016/01/23 19:33:03  ID:qHL6kF89.net(4)
7 minutes of Pharo Smalltalk for Rubyists
https://www.youtube.com/watch?v=HOuZyOKa91o

Pharo - Welcome to Pharo!
http://pharo.org/

976
デフォルトの名無しさん[sage]   投稿日:2016/01/23 19:36:10  ID:qHL6kF89.net(4)

977
デフォルトの名無しさん[sage]   投稿日:2016/01/23 22:09:12  ID:Sj7C6OsA.net(2)

978
デフォルトの名無しさん[sage]   投稿日:2016/01/30 19:31:26  ID:ZdxrrRsd.net(2)
>185
どんな汚いコードも読めることは大切だが
汚いコードは書くなよ…

まあその汚さをある程度許されるようになるオブジェクト指向は嫌いじゃない

979
デフォルトの名無しさん[sage]   投稿日:2016/02/02 15:15:07  ID:Kj5oXuy8.net(2)
>197
いや、それでも人間クラスに
排便メソッドは必要だ。

980
デフォルトの名無しさん[sage]   投稿日:2016/02/02 21:15:38  ID:7zvF4Jbc.net(2)
刈羽 かりわ JR越後線

981
デフォルトの名無しさん[sage]   投稿日:2016/02/03 00:10:39  ID:JLgoV6RT.net(2)
>198
そんな汚いコード書くと人間クラスを継承した美少女クラスで不都合が生じる

982
デフォルトの名無しさん[sage]   投稿日:2016/02/03 08:41:03  ID:LaxmbkTJ.net(6)
>200
だから美少女クラスは天使クラスを継承するのだと何度説明すれば...

983
デフォルトの名無しさん[sage]   投稿日:2016/02/03 08:41:21  ID:LaxmbkTJ.net(6)
>200
だから美少女クラスは天使クラスを継承するのだと何度説明すれば...

984
デフォルトの名無しさん[sage]   投稿日:2016/02/03 08:41:50  ID:LaxmbkTJ.net(6)
>200
だから美少女クラスは天使クラスを継承するのだと何度説明すれば...

985
デフォルトの名無しさん[sage]   投稿日:2016/02/03 08:42:43  ID:v0iZc+aq.net(2)
2回連投はよくみるけど3回は珍しいw

986
デフォルトの名無しさん[]   投稿日:2016/02/03 08:57:53  ID:ffzzO4R/.net(2)
あのさ…… どんな美少女もウンコするんだけど?

987
デフォルトの名無しさん[sage]   投稿日:2016/02/03 12:29:23  ID:8IxY+gWE.net(2)
人間クラスを継承せずに、
必要に応じて肛門を持たせればいいのでは?

この問題は、設計を誤ると修整が容易ではないと言ってるの?
論点は何?

988
デフォルトの名無しさん[sage]   投稿日:2016/02/03 23:54:09  ID:NwkI7iYf.net(2)
インスタンス化もせずにスレたてとな?

989
デフォルトの名無しさん[sage]   投稿日:2016/02/04 01:07:49  ID:K1JlKV3Z.net(2)
>206
メンバーの種類を制限したり、メンバー間に何らかの制約を入れたクラスが欲しいときの
ベストプラクティスはっていう話かい?
言語によるけれど c++ のテンプレート使った方法が「Modern C++ Design」に書いてあった気はする。
有用かどうかは知らん。

990
デフォルトの名無しさん[sage]   投稿日:2016/02/04 21:35:19  ID:RsO5DH3N.net(2)
天使クラスを継承するともれなくおちんちんがついてくるぞ

991
デフォルトの名無しさん[sage]   投稿日:2016/02/04 23:19:55  ID:NzupaiZw.net(2)
滑ったな
どうすんのこれ

教えてよ
今すぐあんたが教えてよ

992
デフォルトの名無しさん[sage]   投稿日:2016/02/04 23:57:46  ID:+xOonDYt.net(2)
この板にいたなら知ってる人も多いだろうけど
このスレタイで建てる前に延々「オブジェクト指向は〜」ってスレ建てては
毎回、議論についてけなくなると「美少女クラスはうんこしない」みたいなこと書いて
荒らし逃げしてんだよこいつは。
んで、またそれ始めたから知ってる人々がサーッと逃げた。

993
デフォルトの名無しさん[sage]   投稿日:2016/02/05 01:20:03  ID:tLv00hAm.net(2)
そんな糞みたいな議論に持ってがれる時点でオブジェクト指向って切り口は何か問題があるんだろう。
もう少しバズワードと距離とれるスタンスが必要だったんじゃないのかね。

994
デフォルトの名無しさん[sage]   投稿日:2016/02/05 10:03:42  ID:BBqIJr5G.net(2)
継承とオブジェクト指向は直行してるんだけれどね

995
デフォルトの名無しさん[sage]   投稿日:2016/02/05 11:35:17  ID:oOuE6OCl.net(2)
美少女の件は、キモオタクラスからは美少女の排便参照不可にすれば解決。
また、キモオタクラスからは他のどの処理を呼んだ場合にもキモ例外が発生することにすれば万全。

996
デフォルトの名無しさん[sage]   投稿日:2016/02/05 18:19:15  ID:PpryQyj4.net(4)
>212
美少女クラスはうんこしない(議論)

997
デフォルトの名無しさん[sage]   投稿日:2016/02/05 18:21:10  ID:iF+JFr5E.net(2)
排便量を0に設定すればいいだけだろ

998
デフォルトの名無しさん[sage]   投稿日:2016/02/05 19:07:26  ID:PpryQyj4.net(4)
排便量を(オブジェクト指向について僕ができる最大の議論)

999
デフォルトの名無しさん[sage]   投稿日:2016/02/06 18:12:26  ID:T0MFScki.net(2)
>216
排便メソッドの引数にいちいち排便量足すのかよ…

1000
デフォルトの名無しさん[]   投稿日:2016/02/06 22:09:32  ID:64Pydz+a.net(2)
排便量は流石にインスタンス変数で管理するだろ
トイレに行って半分だけ出すとかいうマニアックな機能をつけたいならともかく

1001
デフォルトの名無しさん[sage]   投稿日:2016/02/07 00:09:19  ID:smcac5RE.net(6)
get_unko を仮想関数にして美少女クラスは 0 を返すようにすればよい。

1002
デフォルトの名無しさん[]   投稿日:2016/02/07 01:39:26  ID:R4NvrNxp.net(6)
便秘のババアもget_unko()が0を返す件

1003
デフォルトの名無しさん[sage]   投稿日:2016/02/07 11:30:22  ID:smcac5RE.net(6)
では君は美少女に何を返して欲しいのかね?

1004
デフォルトの名無しさん[sage]   投稿日:2016/02/07 12:40:45  ID:Dv+rVFbe.net(2)
ワンチャン便秘のババアクラスを継承しても美少女クラスは成り立つのではないだろうか

1005
デフォルトの名無しさん[]   投稿日:2016/02/07 13:03:58  ID:R4NvrNxp.net(6)
コーラックが欠かせない美少女w

1006
デフォルトの名無しさん[sage]   投稿日:2016/02/07 13:35:31  ID:fu54F6yL.net(2)
美少女は便秘じゃない‥

1007
デフォルトの名無しさん[sage]   投稿日:2016/02/07 15:37:37  ID:TdnGwusc.net(6)
日本の現場は永続化層が糞すぎてオブジェクトにマッピング出来ない
これじゃまともにOOPは出来ないから関数型でやらざるをえないんだね
別に関数型がOOPより優れてるという事ではなかったんだね

1008
デフォルトの名無しさん[sage]   投稿日:2016/02/07 16:37:33  ID:q/UCYgzT.net(2)
>226
Do you 意味?

1009
デフォルトの名無しさん[sage]   投稿日:2016/02/07 17:52:18  ID:TdnGwusc.net(6)
>227
OOPが愚かなのではなくDB設計者が愚かだったという事

1010
デフォルトの名無しさん[sage]   投稿日:2016/02/07 18:21:09  ID:smcac5RE.net(6)
永続化層が糞でも関数型なら上手く行くならOOPより優れてるってことになるんでは?

1011
デフォルトの名無しさん[sage]   投稿日:2016/02/07 18:38:59  ID:AJ8T19vA.net(2)
RDBにオブジェクトをそのまま永続化できないように、
RDBに関数を値として永続化できないんなら同じじゃん

1012
デフォルトの名無しさん[sage]   投稿日:2016/02/07 19:08:05  ID:v13MCL4I.net(2)
永続化層に日本と海外で差があると?

1013
デフォルトの名無しさん[sage]   投稿日:2016/02/07 19:24:56  ID:TdnGwusc.net(6)
>229
うまくいくからやるというかそうせざるをえないからやる
そして一見うまくいっているように見えるが保守性も拡張性も悪い
製造が進むほど歪みが大きくなり破綻に近付く
OOPなら最後まで破綻しないが永続化層はOOPに譲歩して合わせなければならない
しかし日本ではDB中心のアプローチしか出来ない老害が支配的だからそれが出来ない
OOPが優れているのに足を引っ張る老害のせいでOOPはダメだという風評被害を受けている

1014
デフォルトの名無しさん[]   投稿日:2016/02/07 19:35:10  ID:R4NvrNxp.net(6)
>231
便秘が永続化するババアがいるのは日本だけだぞ?知らんかったんか?

1015
デフォルトの名無しさん[]   投稿日:2016/02/12 08:39:25  ID:NbTuOgvl.net(2)
このスレもついに終わりか

1016
デフォルトの名無しさん[sage]   投稿日:2016/02/12 11:27:46  ID:3qOWj7pc.net(2)
ウンコしない美少女のせい。

1017
デフォルトの名無しさん[sage]   投稿日:2016/02/16 21:31:50  ID:utvP1D7N.net(4)
Mutableなオブジェクトは糞

1018
デフォルトの名無しさん[sage]   投稿日:2016/02/16 21:34:55  ID:utvP1D7N.net(4)
DBには関係代数という理論的バックボーンが存在するからやり方の是非に真偽をつけられるが
Mutableなオブジェクトを許容するオブジェクト指向にはそれが無い
何でもできるかわりに何でもアリすぐる

1019
デフォルトの名無しさん[sage]   投稿日:2016/02/17 01:36:09  ID:quKaVBpr.net(2)
>237
日本語

1020
デフォルトの名無しさん[sage]   投稿日:2016/02/17 02:04:23  ID:zhj6/FLZ.net(4)
美少女のこと語ろうよ。

1021
デフォルトの名無しさん[sage]   投稿日:2016/02/17 07:33:48  ID:UG2kvZqb.net(2)
>237は日本語としての意味はとらえやすいが

1022
デフォルトの名無しさん[sage]   投稿日:2016/02/17 08:52:29  ID:zhj6/FLZ.net(4)
mutable なオブジェクトは糞。
美少女はウンコをしない。

オブジェクトの値が破壊的に変更出来てしまっては、
並列的な処理に容易に分割できないから、
マズイだろってな的話じゃないか?

1023
デフォルトの名無しさん[sage]   投稿日:2016/02/17 20:12:53  ID:sobQnjjW.net(4)
例えばC++の入門書で必ずと言って良いほど載ってる複素数クラスComplexだけども、
たいてい代入演算詩(かコピーコンストラクタ)とか定義していやがる

藻前はa+2iに3+4iが代入されるのを見たことがあるのかっていうか、
Complexはもはや複素数ではない何か別の異形のものを表してしまっているのではないか、

1024
デフォルトの名無しさん[sage]   投稿日:2016/02/17 20:14:41  ID:sobQnjjW.net(4)
スマンorz;
誤1:詩
正1:子

誤2: a+2i
正2: 1+2i

1025
デフォルトの名無しさん[sage]   投稿日:2016/02/17 21:34:07  ID:ZZNKbDIQ.net(2)
1+2i + 3+4i = 4+6i

意外と便利かもしれないww

1026
デフォルトの名無しさん[sage]   投稿日:2016/02/17 22:13:27  ID:BpXyDkaJ.net(2)
>242
右辺値に対するoperator = をdeleteすればいいんでしょ?

1027
デフォルトの名無しさん[sage]   投稿日:2016/02/17 22:14:08  ID:xErgmETY.net(2)
関数型とかいう産廃はイベントがないから使い物にならない
最近の大規模システムはみんなイベントがないと始まらない

1028
デフォルトの名無しさん[sage]   投稿日:2016/02/18 12:36:55  ID:9ZrwZ5jU.net(2)
破壊的うんこが何だって?

1029
デフォルトの名無しさん[sage]   投稿日:2016/02/18 15:25:24  ID:eyX5WM+u.net(2)
破壊的激臭は副作用を伴います。

1030
デフォルトの名無しさん[sage]   投稿日:2016/02/19 14:34:33  ID:hr949zjY.net(2)
ちょっとだけ期待してスレひらいてみたら美少女のうんこ
λ計算すらないのかよ

1031
デフォルトの名無しさん[]   投稿日:2016/02/19 23:39:47  ID:Tb8XgjPy.net(2)
良スレ、age!

1032
デフォルトの名無しさん[]   投稿日:2016/02/20 12:33:38  ID:njY71FFO.net(2)
「美少女はうんこしない」という話を「美少女のうんこ」の話だと理解してしまうようなおっちょこちょいが
オブジェクト指向を理解出来るわけがない

1033
デフォルトの名無しさん[sage]   投稿日:2016/02/21 00:15:17  ID:Xn8BbX8n.net(2)
unko.suru( bisyoujo );

1034
デフォルトの名無しさん[sage]   投稿日:2016/02/21 13:27:24  ID:82b/sWYC.net(2)
うんこが美少女にナニをするのか

1035
デフォルトの名無しさん[sage]   投稿日:2016/03/10 04:27:45  ID:+d/NDXY7.net(2)
依存型とか見てみると結局行き着く先は同じなんだなと思うけどどうよ

1036
デフォルトの名無しさん[sage]   投稿日:2016/03/11 08:07:36  ID:eLvrEEzR.net(2)
どうしてハスケラってみんなキモいアニオタなの?

1037
デフォルトの名無しさん[sage]   投稿日:2016/03/11 11:26:20  ID:Kt9+s/wp.net(2)
美少女はウンコするのかしないのか。
それでみんな行き詰まる。

1038
デフォルトの名無しさん[sage]   投稿日:2016/03/27 21:21:44  ID:N7IGtcj3.net(2)
うんこをした時点で美少女ではない
しかし、うんこを我慢している美少女は萌えるのだ

1039
デフォルトの名無しさん[]   投稿日:2016/03/27 23:58:39  ID:9N4B8hjZ.net(2)
うんこをしないのにうんこを我慢するわけないだろ
絶対にしないから美少女のうんこには底知れぬ価値があるのだ

1040
デフォルトの名無しさん[sage]   投稿日:2016/03/28 00:59:02  ID:oM2XJFW1.net(2)
スコープだったり変数の生存期間を気にしたりってのは関数型だろうとオブジェクト指向だろうと
同じように気にする。
要はまとめ方ってだけの話。

1041
デフォルトの名無しさん[sage]   投稿日:2016/03/28 02:53:49  ID:T6p957gW.net(2)
「野球もサッカーも球技だからおなじようなもの!」いただきましたw

1042
デフォルトの名無しさん[sage]   投稿日:2016/03/28 04:13:13  ID:soILvqz+.net(4)
オブジェクト指向は役に立っている。
関数型言語はトイプログラムしか作れない。

1043
デフォルトの名無しさん[]   投稿日:2016/03/28 10:46:29  ID:U1rG/r8A.net(2)
うんこの話題についてこれない人達が必死ですねw

1044
デフォルトの名無しさん[sage]   投稿日:2016/03/28 10:53:32  ID:Et7Dc3iM.net(2)
うん、この話についてこれないよ

1045
デフォルトの名無しさん[]   投稿日:2016/03/28 12:55:38  ID:IcMNxByb.net(2)
 僕みたいな芸人とか人前に出る人は、多かれ少なかれちょっとした発言や態度がネットで炎上したり、
罵詈雑言を浴びせられたりします。けれど、僕はそんなのにまったく腹も立たないし、
むしろオブジェクト指向を“カチャカチャ”してる人のほうが可哀想やなあ、と思うんです。

エラい人たちは、オブジェクト指向で時間を使うことはないでしょう。
だから僕は子どもにも「金持ちやエラい人のマネせえ、幸せな人のマネをせえよ」と言うようにしています。

はい、ここで問題です。オブジェクト指向でカチャカチャしてる人とそうでない人、どっちが幸せですか? 
そんなの100%、カチャカチャじゃないほうですよ。カチャカチャばっかしてたら不幸になることは、みんなわかってる。
 
「あの人幸せそう、エエ人やわ」と評判の20人のおばはんをモニタリングしてみてください。
ちゃんと挨拶して、言葉遣いも優しくて、お店でもエラそうな態度をとらない、とか共通項があるはずです。
逆に「あの人意地悪いわ、不幸やわ」と言われてる20人のおばはんを見ると、絶対カチャカチャみたいな行動をしてるはずです。
 
オブジェクト指向をカチャカチャして、クラスのインスタントを参照して「やったった感」を持ってるのかも
しれんけど、それでハッピーエンドの人生が待ってると思いますか? それよりも、もっとお友だちと
おしゃべりするとか、勉強するとか自分が幸せになる方法を考えるのがいいんじゃないですか。
 
オブジェクト指向をカチャカチャするのは、自分から不幸になりに行ってるようなものですよ。
あまりに生産性がなさすぎる。それを考えると可哀想やなと思えてくるんです。
僕は「日本は沈没しかけとる。こりゃどエラい時代が来るぞ……」とゾッとしたもんですが、
今まさにそれが当たり前のどエラい時代になりましたね。

1046
デフォルトの名無しさん[sage]   投稿日:2016/03/28 15:14:15  ID:qcCtZJbO.net(2)
関数型は「このわかりにくい書き方をすればある問題が絶対発生しない!」だからなぁ…
いや、わかりにくいって時点でダメじゃんっつか。

1047
デフォルトの名無しさん[sage]   投稿日:2016/03/28 17:25:44  ID:soILvqz+.net(4)
>265
問題が絶対に発生しないなんてあるわけねえだろ
Haskellだってランタイムエラー出るときは出るわ

1048
デフォルトの名無しさん[sage]   投稿日:2016/03/29 08:53:21  ID:69Hzy87b.net(2)
○○は学習コストがーとかわかりにくいってよく聞くけど、仕事でやってる人なら誰でもすぐわかるような(もしくはわかったつもりになれるような)技術だけ使い続けるより安心じゃね? 覚える価値があるなら特に。

1049
デフォルトの名無しさん[sage]   投稿日:2016/03/29 12:04:28  ID:4NQ/4meq.net(2)
誰でもわかる

コストがかからない

人気がある

衰退しない

1050
デフォルトの名無しさん[sage]   投稿日:2016/03/29 12:45:16  ID:mGK48Xag.net(2)
誰でもわかる

バカが混入する

コードが荒れてプロジェクトが燃える

マトモな技術者が新しい言語に逃げ出す

今、関数型言語界隈がstep 2のど真ん中w

1051
デフォルトの名無しさん[]   投稿日:2016/05/01 09:43:39  ID:tKi6j9CT.net(2)
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません

1052
ャfフォルトの名末ウしさん[]   投稿日:2016/05/11 13:16:12  ID:Knti35lY.net(4)
オブジェクト指向って別に世の中の色んな事を記述するためのものじゃないよねw
pcの制御を記述するためのものじゃん

たぶん世の中 = pcって偏狭な人間が混乱してるだけなんじゃない?

1053
デフォルトの名無しさん[sage]   投稿日:2016/05/11 14:16:15  ID:1ZZ8JGEs.net(4)
手続き型の一部に関数型っぽい書き方するのがカコイイという風潮が強くなってきて
熱心な子が意気込んで本格的なものに手を出してみるがわけわからなくて
酷い目に遭って帰ってきました、という感じじゃない?

1054
デフォルトの名無しさん[sage]   投稿日:2016/05/11 15:35:01  ID:l/Aku55r.net(2)
誰でもわかる

コストがかからない

人を集めやすい一方、単価が下がる

人気が減る

1055
デフォルトの名無しさん[]   投稿日:2016/05/11 16:50:49  ID:Knti35lY.net(4)
関数型言語って狭義のプログラミング言語じゃない気がするよ
アルゴリズムをシステマティックに表現するスクリプトに近い
コンピュータが手続きの連鎖で動いている以上、普通は関数を中心に記述するのはオーバーヘッドが大きすぎる
アルゴリズムが最適化される事で最終的な手続きが減るほど複雑なロジックを組む人が使えばいいと思う

1056
デフォルトの名無しさん[sage]   投稿日:2016/05/11 17:31:14  ID:DbNWRsPF.net(2)
言語はJavaでもC#でも良いけど、凡人はデータとロジックは分けて扱う方が良いと思う
デザインパターンも、多少スキルのある人に任せて、自分では手を出すべきではない

アホが好き勝手に弄った挙げ句トンズラこいた、巨大でインスタンス変数やstatic変数を弄りまくる分岐とループにまみれたクラスの継承元と継承先を飛び回るのは、とてもツラい
何をもって安心すれば良いのかわからない
仕事戻りたくない

1057
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:14:51  ID:1ZZ8JGEs.net(4)
名前空間で分けられるOOの方が構造化プログラミングより安全だ
バカを隔離するためにクラスを作ると昔の人は言った

1058
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:20:32  ID:4+flospS.net(2)
おお、そのとおりだよw
末端のクラスは融通の効かないバカに作る。
そうすると見通しがいい。

1059
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:55:02  ID:AR7pBoGw.net(2)
「言われたことをちゃんとこなすように」が正解。
途中途中で権限委譲しておかないと
上流がすべての決定をしなきゃいけなくなるので破綻する。

1060
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:56:37  ID:PuRMzRqm.net(2)
バカは2chに集めて隠蔽

1061
デフォルトの名無しさん[sage]   投稿日:2016/05/21 10:17:37  ID:ikuIjUYo.net(4)
>276
藻前の悩みは名前空間の汚染しかないのカヨ…
クラスにして良いのはふるまいに状態を持たせる覚悟のある奴だけ

1062
デフォルトの名無しさん[sage]   投稿日:2016/05/21 10:19:56  ID:ikuIjUYo.net(4)
もしくはクロージャとかfunctorを作りたいときとかだが
C++で作るクロージャとかfunctorは
クロージャとかfunctorですよみたいな顔して状態を隠し持ちかねないところが恐ろしい…

1063
デフォルトの名無しさん[]   投稿日:2016/05/23 09:30:38  ID:KJgou+2q.net(2)
c++のクロージャってレキシカルスコープ以外の状態を持つのか?
後 functorもクロージャって全然違わない?

1064
デフォルトの名無しさん[sage]   投稿日:2016/05/23 13:11:00  ID:WJyvxaEH.net(2)
Objectから派生したものは、メンバ変数とメソッド、つまり状態と処理を持つ

クラス・ラムダ・クロージャ・無名関数・Functor・ブロック・Proc、
どういう名前を付けようと、First Class(第1級)オブジェクトである

第1級オブジェクトとはオブジェクトなので、newできて、
簡単に持ち運びできるし、カプセル化してアクセス制御もできる

関数の引数として渡せて、戻り値にもできる

1065
デフォルトの名無しさん[sage]   投稿日:2016/05/23 20:08:36  ID:amMcSQyA.net(2)
>283
なにその中学生がぐぐりながら書いたような文章

1066
デフォルトの名無しさん[]   投稿日:2016/05/24 22:30:45  ID:uzPl1U54.net(2)
ポケモンってオブジェクト指向が出て来たら
これで効率よくやってそうだよな

1067
デフォルトの名無しさん[sage]   投稿日:2016/05/24 22:33:07  ID:CFKzRNjb.net(2)
モンスターは物じゃない
物じゃないんだ、友達なんだ

1068
デフォルトの名無しさん[sage]   投稿日:2016/05/24 22:40:40  ID:TKpsNxtt.net(4)
ゲームはオブジェクト指向が適しているだろうが、
それでもやっぱり思考ロジック部分はオブジェクト指向じゃないさ。
ロジックを固めるフレームワークに設計は適している。

1069
デフォルトの名無しさん[sage]   投稿日:2016/05/24 23:09:50  ID:2+VBUZih.net(4)
>287
なにその小学生がヤフりながら書いたような文章

1070
デフォルトの名無しさん[sage]   投稿日:2016/05/24 23:11:07  ID:TKpsNxtt.net(4)
>288
こっちへおいでw

オブジェクト指向システムの設計 [無断転載禁止]©2ch.net
オブジェクト指向システムの設計

1071
デフォルトの名無しさん[sage]   投稿日:2016/05/24 23:33:41  ID:2+VBUZih.net(4)
100レス位まで読んだけどクッソどうでもいい事をぎゃーぎゃー言い合ってるだけやんけ

1072
デフォルトの名無しさん[sage]   投稿日:2016/05/25 23:21:16  ID:fBBvLnfI.net(2)
>287
はっきり言ってゲームにオブジェクト指向なんて適してない
すべてのオブジェクトをエクセルの縦の列に並べて
すべてのパラメータを横の列にすべて書き出す
こういう感じでチェックできるプログラムにしないと完成しない

1073
デフォルトの名無しさん[sage]   投稿日:2016/05/26 13:53:37  ID:gY5ZvMkJ.net(2)
オブジェクト指向なんて意味ないよな
スーパーマリオもテトリスもプレイに必要なのはエクセル

1074
デフォルトの名無しさん[sage]   投稿日:2016/05/26 20:55:10  ID:cAjDmLh7.net(2)
ネタとしても面白くないなぁw
オブジェクト指向が使われてるのを
目の前にして適していないと言われてもねw

1075
デフォルトの名無しさん[]   投稿日:2016/05/26 22:03:14  ID:cgICe8ci.net(2)
ここからオブジェクト指向を見た事がない人だけがオブジェクト指向を批判出来るスレになります

1076
デフォルトの名無しさん[sage]   投稿日:2016/05/26 23:27:22  ID:NlrO/xzC.net(2)
オブジェクト指向は重複したメソッドが発生する。こういうのは無駄。

coffee.owner=human
coffee.drink()
human.drink(coffee)

1077
デフォルトの名無しさん[sage]   投稿日:2016/05/27 00:14:26  ID:miERtZSj.net(2)
>coffee.owner=human
>coffee.drink()
いやいやいや

1078
デフォルトの名無しさん[sage]   投稿日:2016/05/27 04:22:09  ID:WrCIRuds.net(2)
オブジェクト指向
「白痴の面倒までみれねーよww」

1079
デフォルトの名無しさん[sage]   投稿日:2016/05/27 10:57:13  ID:q3bsRKFz.net(2)
オブジェクト指向が面倒を見なくても
白痴はオブジェクトらしきものをプロジェクトに残してくんだ・・・

1080
デフォルトの名無しさん[sage]   投稿日:2016/05/27 11:13:57  ID:y0JFsOhL.net(2)
すべては名前
きちんとした、名前
名前、名前、名前
名前思考でお願いします
機能と名前が違うのがありすぎ
国語力の欠如した人のプログラムでは
反対語で書く奴もいるし
動詞を、名詞で隠す奴

1081
デフォルトの名無しさん[sage]   投稿日:2016/05/27 12:19:19  ID:bYLZABmN.net(2)
正しくオブジェクト指向を使ったMacOSXは16年間で11回メジャーアップデートし
オブジェクト差し替えでiOSに派生しiPhoneやiPad、果てはAppleTVにも使われ

一方、間違ったオブジェクト指向を使ってしまったWindowsは
15年間で5回しかアップデートできない上に不具合オンパレードで阿鼻叫喚
ユーザが一つ前のバージョンしか信用しないので常に5年前のバージョンが大半
そして強硬策「いま入れますか、あとにしますか?」地獄へ。

後者をオブジェクト指向だと思ってる奴はそりゃ全力で否定せざる負えないわな。

1082
デフォルトの名無しさん[]   投稿日:2016/05/27 12:22:01  ID:IqC0GNPs.net(2)
ここオブジェクト指向スレやで
国語力ないんかな

1083
デフォルトの名無しさん[sage]   投稿日:2016/05/27 12:23:05  ID:DRPbKmeh.net(2)
iOSとかMacのメジャーアップデートって完全に人柱じゃないですかヤダー

1084
デフォルトの名無しさん[sage]   投稿日:2016/05/27 12:53:43  ID:sJ1qkk5q.net(2)
最近推し激しいが今のiOSっていいのか?
まぁiOS使うくらいならLinux使うけどw

1085
デフォルトの名無しさん[sage]   投稿日:2016/05/28 21:36:07  ID:COiCoXN6.net(2)
どうなんだろうか。
「お前のは本当のオブジェクト指向じゃない」だとか不毛な論争の火種にしか
なってない気はする。

もうちょっとコードベースのモジュール化やコードの隔離方法なんかを議論した方がよっぽど建設的。

1086
デフォルトの名無しさん[sage]   投稿日:2016/05/29 05:26:16  ID:uH1/jPAH.net(4)
>300
> 一方、間違ったオブジェクト指向を使ってしまったWindowsは

最近2週間で一回ぐらいのペースで、開発者版リリースが行われてる。
これはMSアカウントを作るだけで一般の人が入手できる。
これって正しくオブジェクト指向を使ったからだろうね。

1087
デフォルトの名無しさん[sage]   投稿日:2016/05/29 08:08:38  ID:1ogDAOAr.net(4)
何とも言えんね
ぶっちゃけいまのmsのアップデートはデバッグをユーザに押し付けてるようにしか見えんし
よくわからない用語で煙に巻くって点がオブジェクト指向だね

1088
デフォルトの名無しさん[sage]   投稿日:2016/05/29 12:54:56  ID:uH1/jPAH.net(4)
オブジェクト指向だから早くリリースしてるんでしょ?w

1089
デフォルトの名無しさん[sage]   投稿日:2016/05/29 13:01:06  ID:1rU4/WXO.net(2)
既存のクラスはなるべくいじらずそのまま静かに置いておく
オブジェ思考

1090
デフォルトの名無しさん[sage]   投稿日:2016/05/29 13:23:11  ID:1ogDAOAr.net(4)
私のオブジェクト指向は54万です

1091
デフォルトの名無しさん[sage]   投稿日:2016/05/29 14:34:58  ID:aa6iTjg/.net(6)
"クラスとは構造体に操作する関数がついたもの"と
"クラスはメッセージコマンドを受けて動く"の違い。
前者はプログラマが陥りがちなタイプ数が少ない暗号みたいなパーツの組み合わせと
責任の所在がわからない動作をぜひ作り込んでくれと言わんばかりのジャンクで
まさにそのとおりのジャンクができた。

1092
デフォルトの名無しさん[sage]   投稿日:2016/05/29 14:40:26  ID:EevS3JTU.net(2)
>310
クラスと(そのインスタンスとしての)オブジェクトとの区別がつかない人間は永久にROMってろ

1093
デフォルトの名無しさん[sage]   投稿日:2016/05/29 15:26:41  ID:aa6iTjg/.net(6)
きみが棲んでるジャンク界隈がそういう仕様なのは知ってるけど
こっちはクラスにメッセージ送るとクラスがインスタンス作るんだ。
うん。

1094
デフォルトの名無しさん[]   投稿日:2016/05/29 15:50:36  ID:abg0RIhz.net(2)
>312
クラスと(そのインスタンスとしての)オブジェクトとの区別がつかない人間は永久にROMってろ

1095
デフォルトの名無しさん[sage]   投稿日:2016/05/29 16:59:56  ID:aa6iTjg/.net(6)
高度すぎたか。

1096
デフォルトの名無しさん[sage]   投稿日:2016/05/29 17:04:53  ID:9gAtgMOC.net(2)
いちいち()で囲まなくてもよくない?
無駄な仕事多くしてそう。(どうでもいいけど)

1097
デフォルトの名無しさん[sage]   投稿日:2016/05/29 21:48:27  ID:T+KHRUkH.net(2)
クラス厨は害悪

1098
デフォルトの名無しさん[]   投稿日:2016/07/08 22:17:20  ID:gy2KRr8C.net(2)
高度すぎたかwwwwwwうけるwww

1099
デフォルトの名無しさん[sage]   投稿日:2016/07/08 22:29:11  ID:zZ/OP7I+.net(2)
半年ORMれ

1100
デフォルトの名無しさん[sage]   投稿日:2016/07/09 11:06:02  ID:lXMMLrdi.net(2)
オブジェクト指向とかクラスが分からないのは多分メモリ周りのことが全然わからないからなんだろうな。
アセンブラからやれとは言わんが、メモリアロケータくらい自作したらオブジェクト指向がいかに理に叶ったものかわかってくるんだけど。

1101
デフォルトの名無しさん[sage]   投稿日:2016/07/09 11:22:11  ID:3DBY5ZwO.net(2)
メモリアロケータを自作しないと理解できないってのもなぁ(苦笑)

1102
デフォルトの名無しさん[sage]   投稿日:2016/07/09 12:11:02  ID:vM1Dv6Aj.net(2)
オブジェクト指向がわからない人は関数型を勉強してないんだろうな
手続き型はオブジェクト指向のメリットを潰してしまうから手続き型の書き方しか知らないとオブジェクト指向は身に付かない

1103
デフォルトの名無しさん[sage]   投稿日:2016/07/09 12:19:20  ID:afhBOa0Z.net(2)
データのカプセル化ができてれば手続き型でもオブジェクト指向でも関数型でもいい気がするが

1104
デフォルトの名無しさん[]   投稿日:2016/07/09 12:19:29  ID:EzNW6797.net(2)
分からない人がいて欲しいという強い願望w

1105
デフォルトの名無しさん[sage]   投稿日:2016/07/09 13:53:33  ID:dEWSYkKq.net(4)
オブジェクト指向つっても当初の「継承で差分プログラミングうまー」
みたいなのは否定されてきたからな。

入門書だと哺乳類クラスから犬クラスと猫クラスとかやってるけど、
動物が沢山出てくるゲームや動物病院のカルテシステムを開発するとして、
いちいち動物種ごとにクラスを作ることはしないだろう。

インターフェイス以外の継承は最小限にというのを教えないと。
でも未だに入門書レベルだと著者が勘違いしている。

1106
デフォルトの名無しさん[sage]   投稿日:2016/07/09 18:59:46  ID:akOZxrcr.net(2)
>324
かといって、というか
継承ってのがどんなものなのか「だけ」を説明するのなら
やっぱ犬猫でもいいんでねえのって俺は今は思う

継承をどう使って設計していくかってのはまた先の話
親、子A、子Bという三者の関係「だけ」示すのが動物犬猫

1107
デフォルトの名無しさん[sage]   投稿日:2016/07/09 19:23:57  ID:dEWSYkKq.net(4)
>325
例自体は反対しないよ。
でもそれで継承というものがどういうものかは分かっても、
継承がどういうときに使うべき物なのかは分からない。
そこまで教えてる本ってあまりないね。

1108
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2016/07/10 18:09:32  ID:RTWM7o1I.net(2)
(HP)をプロパティで持った「キャラクター」クラスを作って
それを継承した「戦士」クラスは"たたかう"、"ぼうぎょ"、"にげる"などのメソッドを持つ
これを再利用して、「武闘家」クラスを作れば
おなじ"たたかう"メソッドで武闘家はてつのつめで戦うようにできる。
さらには(MP)と"まほう"メソッドを追加で「魔法使い」クラスが…

ってこの辺りで便利さがわかると同時に
(MP)プロパティや"まほう"メソッドをどこにつけるかで混乱が始まって
継承の不便さが浮き彫りになってくるという。
全部独立パーツでそれを必要に応じて束ねて使っていればもっと取り回しが楽だったり

1109
デフォルトの名無しさん[sage]   投稿日:2016/07/10 20:28:28  ID:4zLRjbrA.net(2)
実装の再利用は継承でやるよりtraitが便利
smalltalkで発表されて、PHPに輸入されて、後は知らないが

1110
デフォルトの名無しさん[sage]   投稿日:2016/07/10 22:16:26  ID:/17c9zmN.net(2)
Scalaとかの静的型言語がただのmixinをあえてtraitsと呼ぶのは誤解を招くよなぁ…

1111
デフォルトの名無しさん[sage]   投稿日:2016/07/10 22:21:00  ID:SLnFWOAS.net(2)
>327
> それを継承した「戦士」クラスは"たたかう"、"ぼうぎょ"、"にげる"などのメソッドを持つ
> これを再利用して、「武闘家」クラスを作れば

武闘家は戦士を継承していません。

1112
デフォルトの名無しさん[sage]   投稿日:2016/07/10 22:46:02  ID:YDU79Arx.net(2)
そもそもオブジェクトの粒度が高すぎんだよ
アビリティクラス的なものを作るべき

1113
デフォルトの名無しさん[sage]   投稿日:2016/07/10 23:04:09  ID:tx16mOUk.net(2)
> ってこの辺りで便利さがわかると同時に
> (MP)プロパティや"まほう"メソッドをどこにつけるかで混乱が始まって

全然混乱しないなw

どこにつけるかなんてシステム次第だが
ドラクエ方式であればMPプロパティはキャラクタークラスで
魔法メソッドなんていうのは、特技メソッドの表示名の違いでしか無い。

1114
デフォルトの名無しさん[sage]   投稿日:2016/07/11 08:10:49  ID:BGpqEWk7.net(6)
継承ベースだと
キャラクター>戦士>武闘家というクラス階層で
90年代のバカみたいな継承信奉してると武闘家の後ろとかに
"魔法使い"作って泥沼に嵌まるんだよな。
継承=オブジェクト指向だから。

1115
デフォルトの名無しさん[sage]   投稿日:2016/07/11 08:24:29  ID:DT6nTI14.net(6)
継承を使いこなせないのは要するに馬鹿なんだよ
オブジェクト指向も関係なくプログラミングの基礎が出来てないから

1116
デフォルトの名無しさん[sage]   投稿日:2016/07/11 09:34:50  ID:c813o9It.net(2)
>333
> キャラクター>戦士>武闘家というクラス階層で
それはどう考えても間違った継承だろ。

継承信奉以前の問題で、継承関係にないものを
継承しているのは、お前が馬鹿だからってだけなんだが。

1117
デフォルトの名無しさん[sage]   投稿日:2016/07/11 10:06:35  ID:BGpqEWk7.net(6)
「よくバカな奴が"延々と"を"永遠と"って書いてたりするよねー」
「え、おまえ"延々と"を"永遠と"って書いてんの!?バカじゃね!
俺なんか絶対そんな間違いしないね!!おまえバカだろ!バーカwww」
「えっ?」

1118
デフォルトの名無しさん[]   投稿日:2016/07/11 11:14:13  ID:v8BjKTdy.net(2)
戸惑いのバカwww

1119
デフォルトの名無しさん[sage]   投稿日:2016/07/11 14:14:51  ID:BGpqEWk7.net(6)
えっ?

1120
デフォルトの名無しさん[sage]   投稿日:2016/07/11 21:41:33  ID:K+QqD/bm.net(2)
>326
そやねぇ
あまりないというか、見たことが無いw

あともしそれを書いてる本があっても
入門者には意外と伝わらないと思う

それを必要とする状況まで陥ってないと
デザパタ本ですらろくに伝わってない

困って、考えて、本読むという順じゃないと多分ダメ
…多分だけど

1121
デフォルトの名無しさん[]   投稿日:2016/07/11 22:00:34  ID:DT6nTI14.net(6)
目的に合わせて正しく抽象化出来れば継承関係は自然に導かれるはず
継承だけに着目して教える/教わるという考えがそもそもおかしい

1122
デフォルトの名無しさん[sage]   投稿日:2016/07/11 22:37:59  ID:NMj8cyvT.net(2)
概念の継承関係とコードの継承関係を同じ目線で見ると失敗する

1123
デフォルトの名無しさん[]   投稿日:2016/07/11 22:42:17  ID:DT6nTI14.net(6)
>341
それ抽象化が間違ってるからやw

1124
デフォルトの名無しさん[sage]   投稿日:2016/07/12 00:05:30  ID:dw2VnrEM.net(2)
>342
過度な期待期に入った新人君かな

1125
デフォルトの名無しさん[]   投稿日:2016/07/12 07:21:41  ID:jrBRhCE1.net(4)
自分のモデリングの間違いを言語機能のせいにする
な?要するに馬鹿なんだよ

1126
デフォルトの名無しさん[sage]   投稿日:2016/07/12 08:27:37  ID:URFMxuYq.net(2)
オブジェクト指向もずいぶん枯れたわけだし、アンチパターンの確認から入るってのも悪くはない。

1127
デフォルトの名無しさん[sage]   投稿日:2016/07/12 09:41:37  ID:Q/mNeBI3.net(2)
正しく抽象化できれば正しくできる、
って意味のないこと言ってどうすんの?

その正しく抽象化する方法が問題なんでしょ?

1128
デフォルトの名無しさん[sage]   投稿日:2016/07/12 09:54:02  ID:DvYXCZnM.net(2)
>328
その後は、rubyにパチモンが作られて「Rubyの偉大な発明」の仲間入りしたのでは?

1129
デフォルトの名無しさん[sage]   投稿日:2016/07/12 10:24:32  ID:QmnH/+e2.net(2)
たとえば魔法使いと魔法という概念が"新たに生まれた"場合
それは魔法を使える魔法使いのみが使うから魔法使いクラスの固有プロパティなのか。
それとも、使えないだけですべてのキャラクターが持つ基礎パラメータなのか。
すべての基底クラスにMPデータフィールドを追加していいのか。
運を消費して奇跡を起こす聖者、MPやHPを消費して治療を行う僧侶などが
あたらしく出てきた時はどこにパラメータをつけて相互管理すればいいのか。

現実でその時は"ただしい"と思った抽象化が根底から揺さぶられることはいくらでもあって
(固定価格に追加される消費税、新たに追加される福祉控除項目、すべてを一元化しようというマイナンバー…)
まず、そういう認識すら持たずに「ちゃんとちゅうしょうかしないからだよ
ぼくならなんでもただしくちゅうしょうかできるからきみたちよりえらいのさ!」とか
うそぶいている時点で君はいま指をさして静かに嗤われてるのを自覚した方がいい。

1130
デフォルトの名無しさん[]   投稿日:2016/07/12 12:19:52  ID:4cCOY98n.net(2)
>348
要するに正しく抽象化モデリング出来てないだけだなw
お前が馬鹿な理由にオブジェクト指向も継承も全く関係ないわw

1131
デフォルトの名無しさん[sage]   投稿日:2016/07/12 12:27:09  ID:7TrvIOou.net(2)
>347
> その後は、rubyにパチモンが作られて「Rubyの偉大な発明」の仲間入り

それもありそうな話で笑えるけど、traitsに限ってはModule#mixという名前で同機構の導入が
検討されたものの、既存の機能との整合性で致命的な問題が見つかって結局断念したらしい。
www.rubyist.net/~matz/20100617.html
http://d.hatena.ne.jp/nagachika/20111003/ruby_trunk_changes_33379_3...

1132
デフォルトの名無しさん[sage]   投稿日:2016/07/12 13:18:23  ID:+8oNQ71Y.net(2)
振る舞いの抽象化なら型クラスやインターフェイスを使えばいいし、実装の再利用ならtraitのような仕組みを使えばいい
継承による型の階層構造なんて邪魔にしかならんわ

1133
デフォルトの名無しさん[sage]   投稿日:2016/07/12 17:45:58  ID:h4Vj1dwQ.net(2)
モデリングに間違いがなくかつモデルが未来永劫変化しないならID:4cC坊やの言い分は正しいね
そんな世界がやってくるといいね

1134
デフォルトの名無しさん[sage]   投稿日:2016/07/12 18:38:57  ID:J7TxVIFH.net(2)
とりあえず>348で言われてることを具体的にイメージできないぐらい"疎い"ってのだけはわかるよね…
多くのクラスに関わるモデリングを変えなきゃいけないぐらい大きな変更の例が列挙されていて
オブジェクト指向の黎明期と違って、オブジェクト指向があたりまえの空気になった現代だからこそ
強力な束縛を持つ継承がシステム組み替えの際の足かせになってきてるって話の流れにまったくついていけてない。

1135
デフォルトの名無しさん[]   投稿日:2016/07/12 18:53:29  ID:jrBRhCE1.net(4)
お前らのは抽象化でなく、ただのぼんやりしたイメージ
いわば妄想プログラミングだなw
お前らみたいな馬鹿がまともに設計出来ないから
言語が馬鹿を縛れるような進化が求められてるだけなんだぜ
ダメなのは言語ではないお前ら自身だ

1136
デフォルトの名無しさん[sage]   投稿日:2016/07/12 20:11:55  ID:IS6BTglq.net(2)
キッズは夢を見るものさ

1137
デフォルトの名無しさん[sage]   投稿日:2016/07/12 20:31:52  ID:Vv72dLZO.net(2)
継承にしろオブジェクト指向にしろ
コードを簡潔にしたり、仕様変更に強くするために利用すべき技術だから
「猫と犬は哺乳類クラスを継承する、なぜなら猫も犬も哺乳類だから」ってのは
熟練したプログラマの発想とはだいぶ離れているんだよね
熟練したプログラマは書かなければならないコードが頭に浮かんでいて
それを何処に書くかという整理整頓の意味で継承などの技術を使っているわけで
結局OOは整理整頓術で、どう整理したらプログラミングの効率が上がるかというだけの話
それ以上の意味はない
が、整理整頓は非常に奥が深い

1138
デフォルトの名無しさん[sage]   投稿日:2016/07/12 23:27:20  ID:4M8hLvVe.net(4)
そもそも哺乳類と言うのが最初にあって
そこから猫や犬が生まれたわけじゃないからな。

最初に猫や犬があって、そこから共通する特徴を
もっているものを哺乳類と分類した。

どっちかと言ったら名前空間みたいなもので
継承関係じゃない。(だけど理解するのに役立つ)

で実際のプログラミングでは哺乳類がどうとかいう話とは関係なく、
継承構造は役に立つもの

1139
デフォルトの名無しさん[sage]   投稿日:2016/07/12 23:28:32  ID:4M8hLvVe.net(4)
>352
> モデリングに間違いがなくかつモデルが未来永劫変化しないなら

変化するからこそリファクタリングが重要なんだよね。

リファクタリングは汚いコードを修正することじゃなくて
過去の時点では正しかった設計を、
今の時点の変化に合わせて設計を変えることだから。

1140
デフォルトの名無しさん[sage]   投稿日:2016/07/13 08:17:59  ID:+CQztjRc.net(2)
継承はそういう時に身動き取れなくなるから困る

1141
デフォルトの名無しさん[sage]   投稿日:2016/07/13 09:38:03  ID:NLZRxEVY.net(2)
359 名前:デフォルトの名無しさん[sage] 投稿日:2016/07/13(水) 08:17:59.46 ID:+CQztjRc
継承はそういう時に身動き取れなくなるから困る

1142
デフォルトの名無しさん[sage]   投稿日:2016/07/13 12:39:18  ID:Fh2kjKhX.net(2)
大事な事だから2回言いました

1143
デフォルトの名無しさん[sage]   投稿日:2016/07/14 19:03:55  ID:sG4kt79u.net(2)
割とマジで「オブジェクト指向って継承って奴だろ」な人で
言われてることがまったくわからなくてパニクってるんじゃないかと。

1144
デフォルトの名無しさん[sage]   投稿日:2016/07/14 20:00:26  ID:05a8wJuJ.net(2)
原始時代じゃあるまいしそんなプログラマがいるのか?
にわかに信じがたいな

1145
デフォルトの名無しさん[sage]   投稿日:2016/07/14 22:29:42  ID:mVH/XKPM.net(2)
美少女が人間クラスから継承できない問題は
どうなったんだ?
それでオブジェクト指向は破綻したときいたが。

1146
デフォルトの名無しさん[sage]   投稿日:2016/07/14 23:30:26  ID:0cl6EhrX.net(2)
ぱっと思いつくだけでも

Unkoオブジェクトに量の概念をもたせて量がゼロのうんこを作るかNullObject的な対処をする

うんこしないAngelクラスを継承する

排便の概念を抽象化したメソッドを用意してうんこ以外の可能性を見出す

などなど
なんとでもなるやろ

1147
デフォルトの名無しさん[sage]   投稿日:2016/07/15 05:19:16  ID:Md4pEzwy.net(2)
UnkoのサブクラスとしてOhgonクラスを実装するんや!

1148
デフォルトの名無しさん[]   投稿日:2016/07/15 12:49:22  ID:L1jCNFuA.net(2)
美少女はウンコをしない
この「しない」という所が美しいんじゃないか
汚れなき乙女を全うする意志の問題だ
これが「出来ない」という物理的構造に由来する問題に成り下がってしまったら
何の味わいもなくなるだろ
チンコ勃たんわ

1149
デフォルトの名無しさん[sage]   投稿日:2016/07/15 14:40:06  ID:d/Zl1fgq.net(2)
頭の悪い人の悲しいところは
頭の悪い冗談を好んで言い続けるということだ
飽きもせずに繰り返し繰り返し何度も何度も…

1150
デフォルトの名無しさん[]   投稿日:2016/07/15 22:04:56  ID:iR/HdeCl.net(2)
これは頭の良い冗談に期待w

1151
デフォルトの名無しさん[sage]   投稿日:2016/07/15 22:47:24  ID:ibKxDQPd.net(2)
美少年にクラスチェンジすることで破綻せずにハッテン

1152
デフォルトの名無しさん[sage]   投稿日:2016/07/15 23:49:57  ID:80GKY2p2.net(2)
リフレクションで解体して色々いじりたい

1153
デフォルトの名無しさん[sage]   投稿日:2016/07/16 01:53:47  ID:Bfovl8qZ.net(2)
面白くないことに気づこうね

1154
デフォルトの名無しさん[sage]   投稿日:2016/07/16 02:59:56  ID:0ciAe/St.net(2)
というか>211で書かれてるとおりをまたワンパターンで始めただけだしな。

1155
デフォルトの名無しさん[]   投稿日:2016/07/16 07:28:07  ID:CNSBQzp5.net(4)
美少女ウンコ問題は高度すぎて解決の糸口すら見つからないもんな
ついていけない奴の気持ちもわかる

1156
デフォルトの名無しさん[sage]   投稿日:2016/07/16 09:09:49  ID:DegzgE4N.net(2)
ちょっとしたネタ書き込みにすら
知能やセンスがもろ出しになっちゃうから悲しいね

>372
それ言っちゃうと今度は意地になってレスし続ける可能性

1157
デフォルトの名無しさん[sage]   投稿日:2016/07/16 09:38:23  ID:D3kHuod4.net(2)
>372
面白くない→顔が白くない→色白でない→実は美少女ではない→ウンコしても問題ない

なるほど要件の再定義によって解決か

1158
デフォルトの名無しさん[sage]   投稿日:2016/07/16 10:06:22  ID:BhIXbiPC.net(2)
なんでよ褐色美少女最高じゃん

1159
デフォルトの名無しさん[sage]   投稿日:2016/07/16 10:11:41  ID:6YOlPtSF.net(2)
ワンパターンっすなぁ

1160
デフォルトの名無しさん[]   投稿日:2016/07/16 12:26:01  ID:3oB/Pjks.net(2)
解決しとらんのにワンパターンもくそもないだろ
根気のない奴だなあ

1161
デフォルトの名無しさん[sage]   投稿日:2016/07/16 20:05:26  ID:kkC3KqZT.net(2)
解決できると思ってるのが間違いだと気付くといいよ

分類学的な階層を作っても「書いた人どう対象を捉えているか」というどうでもいいことしかソースに残せない
鳩クラスと鹿クラスが同じ親クラスを持ってて、ニワトリクラスとブタクラスが同じ親クラスを持ってて、
一体どうしてと思ったらジビエと畜産肉で分けてたとか、食肉加工業者の仕入れ管理ソフトだったらあり得るよ

そういう情報を一切俎上に出さずにAはBの子クラスであるべきか否かなんて話すのは無意味
そういう文脈をソースに組み込む必要があるかもまず考えないといけない

1162
デフォルトの名無しさん[]   投稿日:2016/07/16 21:15:33  ID:CNSBQzp5.net(4)
なるほど
現状の研究成果に比べると一風変わった意見だが私は興味深く聞かせてもらったよ
つまり君はウンコをしない美少女が人間クラスから派生されるべきコンテキストについて
もっと掘り下げた議論をすべきだと言うのだな
ところで君はそういう文脈をソースに組みこむ必要があるかについては
どんな考えを持っているのかね?

1163
デフォルトの名無しさん[]   投稿日:2016/07/16 21:41:47  ID:LbU9Boej.net(2)
ユーザーはうんこ機能なんか求めちゃいない。

1164
デフォルトの名無しさん[sage]   投稿日:2016/07/17 01:46:14  ID:MIDkP6ou.net(2)
生成するUnkoオブジェクトのtasteフィールドが最大値になるだけ

1165
デフォルトの名無しさん[sage]   投稿日:2016/07/17 05:00:03  ID:nDXHZDmA.net(2)
>380
いやねーだろw その手のシステムで種ごとにクラスを分けるわけがない。
全部同じクラスだろ。

1166
デフォルトの名無しさん[sage]   投稿日:2016/07/17 10:38:54  ID:libZCVLZ.net(2)
まあなんでも抽象化すればいいってもんではないわな。
物質は究極的にはクォークのセットだからって、そのまま実装したらそりゃ破綻するだろうし。

1167
デフォルトの名無しさん[]   投稿日:2016/07/17 12:43:31  ID:gClFyV8u.net(4)
君それは細分化やないか
美少女のウンコふりかけ食わしたろか

1168
デフォルトの名無しさん[sage]   投稿日:2016/07/17 13:29:48  ID:okE8dWNU.net(2)
同じ型のインスタンスの振る舞いをポリモーフィズムさせるのは、

・継承
・委譲
・switch文
・関数ポインタ、ラムダ式
・別途スクリプトなどを用意する

などの方法がある

1169
デフォルトの名無しさん[sage]   投稿日:2016/07/17 13:57:59  ID:PHnZw+de.net(2)
ウンコって言いたい年頃なんだろうな

1170
デフォルトの名無しさん[sage]   投稿日:2016/07/17 15:27:54  ID:+aWd02nI.net(2)
>384
データはDB管理かもしれないしDBに沿った構成になるかもしれない
UIで必要であれば 380 の構成もありえるし
だから 380 は文脈と言ってるんだろうに

1171
デフォルトの名無しさん[]   投稿日:2016/07/17 15:59:55  ID:gClFyV8u.net(4)
どんな文脈やねんw
肉屋の仕入れアプリでブタにダンスでもさせる気なんかw
そんなら俺はウンコを我慢する美少女の方がええわwww
何でも文脈言えばええっちゅーもんちゃうでホンマ

1172
デフォルトの名無しさん[sage]   投稿日:2016/07/17 16:05:40  ID:q7clyz/N.net(2)
>389
いや、当然RDBMSでデータ管理しているという前提だが?

1173
デフォルトの名無しさん[sage]   投稿日:2016/07/17 21:43:01  ID:SWVEU9WP.net(2)
クソスレじゃねーか!

1174
デフォルトの名無しさん[sage]   投稿日:2016/07/20 23:08:50  ID:0oomM0jq.net(2)
計算式が面倒になったら
またどうせオブジェクト指向になるんだろ

1175
デフォルトの名無しさん[sage]   投稿日:2016/07/20 23:42:38  ID:E+SEwayU.net(2)
>380
> 一体どうしてと思ったらジビエと畜産肉で分けてたとか、食肉加工業者の仕入れ管理ソフトだったらあり得るよ

見たこと無いが「あり得る」という話なら、
C言語でgotoばっかり使うってのもあり得るよ。

C言語なのに、オレオレライブラリとマクロを使って
COBOLみたいに使うことだって有り得るよ。

お前の大好きな言語をクソみたいな使い方する方法だって有り得るよ。
有り得るかどうかを語るのって意味なくね?

クソみたいなコードを書くのは書いた人間が悪いのであって
言語の問題でもオブジェクト指向の問題でもない。

1176
デフォルトの名無しさん[sage]   投稿日:2016/07/21 02:05:10  ID:pVvcsTGR.net(2)
>393
というか、人間がプログラムをユニット単位に分けた時に
"こいつはこういうコマンドを与えれば勝手にそれをやる単位"って
分け方をすれば『人間がわかりやすい』だろう。ってのが
いまあたりまえのメソッド型オブジェクト指向なんで、
こうすれば"副作用"が出ない!って計算式の方はむしろ
問題が起きないように『機械の都合に人間が合わせる』流れで
たぶん遠からず下火になるわ、あれ。つかもうなった感じ。

むしろ、アルゴリズム解析みたいなのを開発環境がやって
こうすると副作用が最小になるっぽいですよ?って
AIがサジェスチョンするようになんじゃね?つか。

1177
デフォルトの名無しさん[sage]   投稿日:2016/07/21 12:07:59  ID:gJ3egAPE.net(4)
それはどうかわからんよ
もともと機械の都合で生まれた静的型が
実は人間にも優しいってことで大人気だし
本来静的型じゃなくても動く筈の動的型言語も
どんどん静的型の機能を取り入れていくのが今のトレンドでしょ

それに、副作用の無い関数型は全然機械の都合じゃないし
あれは数学の理論とかから生まれたような理論先行のもので
コンピュータの動作原理を考えたら、むしろ副作用ありの方が
自然だと思う

副作用ありの静的型言語が一番機械の都合に合っていて
その金字塔がC言語であり、今でも使われ続けている
主にローレベルなことやOSの開発やドライバの開発などに
使われているのは、それだけ機械の都合にあっているから
昔の言語なのに破たんせずに使われ続けているのは
それだけコンピュータの動作原理を素直に表現していて
流行り廃りというものと無縁だから

1178
デフォルトの名無しさん[sage]   投稿日:2016/07/21 16:36:54  ID:KvWRwuEL.net(2)
Cで書いたコードが速く動くようにCPUやOSが設計されているという面も
あるからぬ…だからって新世代の言語に合わせてCPUやOSを作り直すか?
といわれたらそんなことは起こりっこないと断言できるが

1179
デフォルトの名無しさん[]   投稿日:2016/07/21 17:56:06  ID:9dMGMxaj.net(8)
おまいさんそれは逆ですぜ。
Cがアセンブラに馴染み易く出来てるんですぜ。
でも本来はintelの系統じゃ無くて、
モートローラとかミニコンから派生した石に馴染み易く出来てるんですがね。
まあ、Cが最初からintelの石用に作ってたら、
もう少し違った構文になってたかもね。

1180
デフォルトの名無しさん[]   投稿日:2016/07/21 18:08:41  ID:9dMGMxaj.net(8)
アセンブラやってた連中が、構造化プログラミングを提唱して、
プログラムを小さな塊の組み合わせで作る様になったんで、
同時期に条文分岐やサブルーチンの扱いをマクロ処理を被せて
読み易くするのが流行ったんだよ。
それをもっと書き易くして行って出て来たのがコンパイラ言語
いわゆる高級言語だけど、簡単なアセンブラへの置き換えしかしてなかった。
今ではそこから更にそれら高級言語を分かり易く記述出来る高次な高級言語が流行ってるけどね。

1181
デフォルトの名無しさん[]   投稿日:2016/07/21 18:19:01  ID:9dMGMxaj.net(8)
例えば、hoge+とかやれば自動的にインクリメントしてくれる仕様だって、そういうアセンブラ命令があったからなんだぜ。

1182
デフォルトの名無しさん[sage]   投稿日:2016/07/21 18:38:56  ID:fNq3MD0e.net(2)
>397
>Cで書いたコードが速く動くようにCPUやOSが設計されている
何を根拠に?

1183
デフォルトの名無しさん[sage]   投稿日:2016/07/21 19:51:04  ID:zfBmPUKU.net(6)
>399
時系列がぐちゃぐちゃじゃね?
最初の高級言語と呼べるものはFortranだけど、
数式を人間フレンドリーな形で記述できるのが売りだった。
Fortranはアセンブラの簡単な置き換えレベルではないでしょ。

構造化プログラミングはALGOLからだろうけど、
Fortranより後だし、Cのようなレベルに達するのはもっと先。

1184
デフォルトの名無しさん[sage]   投稿日:2016/07/21 20:06:28  ID:ZXk7cAfY.net(2)
歴史しらないバカばっかw

1185
デフォルトの名無しさん[sage]   投稿日:2016/07/21 20:28:04  ID:IpsfD7Z7.net(2)
自信を持って声を大きくして叫び続ければやがてそれが歴史となる

1186
デフォルトの名無しさん[sage]   投稿日:2016/07/21 20:37:00  ID:m+nIkrs4.net(2)
後の人々はそれをこう呼んだ、すなわち黒歴史と……

1187
デフォルトの名無しさん[sage]   投稿日:2016/07/21 21:20:03  ID:gJ3egAPE.net(4)
Cの何がすごいって、メモリに対する考え方がシンプルで凄い
構造体のメンバは単なる先頭からのオフセットだし
配列の添え字も先頭からのオフセットでしかない
しかも配列とポインタはある種の互換性がある
だから何だかよくわからないメモリブロックを
構造体にキャストしてアクセスできたり
同様に単なるメモリブロックを配列としてアクセスできたりする
メモリの扱いがとにかくシンプルでありつつ強力なアクセス方法があり応用が利く
こういうことができる言語はあまりない
C++ですらvtableが入ってたらもうオフセットずれるし

1188
デフォルトの名無しさん[sage]   投稿日:2016/07/21 21:42:38  ID:vaQfL518.net(8)
>406
言語の実装がシンプルなのと、その言語を
使ってアプリを実装するっていうのは別の話で
なんでも一つの機能で出来てしまう言語っていうのは、
冗長で意味代わりにくいコードになりがちなんだよ。

例えばシンプルと言うのならアセンブラが一番シンプル
条件判定命令と条件ジャンプ命令だけでループを表現できてしまう。

プログラム言語っていうのは、特定のパターンに対して
専用の命令を作ることでコードの可読性を高くしてきた。
これは圧縮の仕組みにも近い。特定のパターンに短い単語を当てはめて
簡潔に書くことができるようになる。

条件判定命令と条件ジャンプ命令さえあれば十分であっても
そこからforパターンやwhileパターンを見つけ、専用の単語に
割り当てることで可読性が高くなる。

1189
デフォルトの名無しさん[399]   投稿日:2016/07/21 22:34:35  ID:9dMGMxaj.net(8)
だからCだけが生き残ったんだろ?
大衆プログラマが望んだ形で変化した結果だからな。

1190
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:16:46  ID:vaQfL518.net(8)
生き残ったっていうのは古い言語とくらべての話?
確かにFortlanとかPascalは消えた。
多くの優れた言語が生まれている中、今でも通用するのは
C言語ぐらいだと思うが。

1191
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:17:21  ID:zfBmPUKU.net(6)
どちらも消えてねーだろw

1192
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:21:30  ID:vaQfL518.net(8)
>410
第三者の人が検証できるランキングとかある?
そりゃどこか目につかないところではあるかもしれないが、
例えばその言語で仕事したいと思ったとき
探せ出せないような言語は消えたと思っていいだろう。

1193
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:39:22  ID:zfBmPUKU.net(6)
>411
Intel Visual Fortran とかググッてみ。
リアルタイムで今も製品出てるのを消えたとは言わないでしょ。

1194
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:45:13  ID:vaQfL518.net(8)
>408
ということで、C以外も生き残ってるんだが?w

1195
デフォルトの名無しさん[sage]   投稿日:2016/07/21 23:52:22  ID:dNMEb7c5.net(2)
問題は暗黙に行う言語の動きに対してどれだけ
コンセンサスがとりやすいかってことだ。
c++ はもうその意味でどっか行ってる。

1196
デフォルトの名無しさん[sage]   投稿日:2016/07/22 01:30:33  ID:znBq8w6k.net(8)
>407
俺の言いたいことはそういうことじゃなくて
ローレベルな世界ではその言語固有のオブジェクトになってない
単なるメモリブロック、データ、信号を扱わなきゃならない場面が多いんだよ
それはファイルから読み込まれるかもしれないし
ネットワーク越しにやってくるかもしれないし
ディバイスとのやり取りかもしれないし
ま、要するに単なるデータ
Cはメモリモデルがシンプルだからこういった単なるメモリブロックを扱うのに
長けているんだよ
構造体にキャストするだけでそのまま扱えるから
今でもC言語が現場で活躍しているのはこれができるから
もしこういったことが出来なかったとしたら、C言語なんかとっくに滅んでいたに違いない
メモリブロックをキャストして構造体や配列としてアクセスできないとしたら
そんなC言語に価値なんかあるか?
その一点がすごいんだよ、マジセンスある、もしくは運が良かった

1197
デフォルトの名無しさん[sage]   投稿日:2016/07/22 01:46:19  ID:znBq8w6k.net(8)
そして多くの言語が見落としがちな部分でもあったんだよ
オブジェクトにしなきゃならないっつってvtable持たせたり
動的にしなきゃならないと、メンバをオフセットではなくハッシュにしたり
どんどん賢い機能を盛り込んでさ
その点C言語の構造体や配列はフラットでむちゃくちゃシンプルな作り
適当なメモリブロックをキャストしても何の問題も起きない
仕様もシンプルで分かりきってる

1198
デフォルトの名無しさん[sage]   投稿日:2016/07/22 02:02:58  ID:znBq8w6k.net(8)
別に必ずしも偉い機能を盛り込むのがダメと言っているわけじゃないよ
ただ、Cが何故か生き残っていて今でも使われ続けている原因はソレということ
C言語の用途と、うまい具合にマッチしてて、いい感じに生き残っている

1199
デフォルトの名無しさん[sage]   投稿日:2016/07/22 03:13:29  ID:7iYsigKa.net(2)
だからなんだよ?

1200
デフォルトの名無しさん[sage]   投稿日:2016/07/22 07:29:28  ID:cZVknNWP.net(2)
構造体の先頭メンバ以外のオフセットは規定されていない
まぁ、オフセットなのでメンバアクセスでどうとでもなるわけで
構造体が定義されたままメモリ上に存在していると考えているアホ
一般的なコンパイラなら定義通りだろうけど規定されていない
規定されていない規定されていない

1201
デフォルトの名無しさん[sage]   投稿日:2016/07/22 08:09:11  ID:+awE6fq0.net(2)
構造体のメンバ間のパディングは未規定だけど、オフセットが未規定って言うのは
順番も入れ替わるって言ってるの?

1202
デフォルトの名無しさん[]   投稿日:2016/07/22 09:35:29  ID:+Z+w/IAX.net(6)
簡単に入れ替わるさ。
わざわざ入れ替えないでねと指定するレベル

1203
デフォルトの名無しさん[sage]   投稿日:2016/07/22 10:31:03  ID:znBq8w6k.net(8)
構造体のメンバの順番が入れ替わらないのは仕様で決まっているよ
決まってないのは間に入る詰め物だけ
http://portable-c.jugem.jp/?eid=17
しかし、詰め物をどうするか、指定できるコンパイラがほとんどだから
実質的に詰め物も問題にならない
C言語プログラマーは自分の使っているコンパイラの仕様ぐらい分かって使っているからね
問題になるとすればエンディアンぐらい

1204
デフォルトの名無しさん[]   投稿日:2016/07/22 12:25:18  ID:TIRA9iEO.net(2)
JIS規格だろそれ。。。

1205
デフォルトの名無しさん[]   投稿日:2016/07/22 13:24:25  ID:+Z+w/IAX.net(6)
intのサイズがアーキ依存だから通信に構造体は使うなってのが常識だけどな。

1206
デフォルトの名無しさん[]   投稿日:2016/07/22 13:25:41  ID:+Z+w/IAX.net(6)
ネイティヴアメリカンの件もあるしな。

1207
デフォルトの名無しさん[sage]   投稿日:2016/07/22 19:29:05  ID:5OURMCtc.net(2)
cはメモリは意識するがレジスタは隠蔽するって落とし所がよかったんじゃない。

1208
デフォルトの名無しさん[sage]   投稿日:2016/07/22 19:41:14  ID:jv7yTJni.net(2)
Cはパーサが複雑なのとゼロコストで導入できる便利機能が無いのを除けば悪くはない

1209
デフォルトの名無しさん[sage]   投稿日:2016/07/22 22:14:58  ID:Oi2oQZIZ.net(2)
cの最大の失敗は波カッコ
ブロックのスコープがパイソン風だったら人類は1世紀以上先の進んでいた

1210
デフォルトの名無しさん[sage]   投稿日:2016/07/23 00:49:12  ID:KFsxU+fY.net(2)
代入演算子=と比較演算子==だけは許されざるよ。
つうか、IDEのサジェスチョン機能実装前の
"タイプ数が減る云々"な言語はすべて滅ぶべし。

1211
デフォルトの名無しさん[sage]   投稿日:2016/07/23 01:22:33  ID:tWjtYIW6.net(4)
C言語は特徴ある機能で生き残ることができた。
だけそのその特徴ある機能がなかったら生き残れないのか?というと
そうではない。現にその特徴ある機能がない言語ばかりだからだ。

ここから言えることは、なにもない言語は消え行く定めだが、
C言語の機能がなくとも、それに上回る機能があれば生き残るということだ。

1212
デフォルトの名無しさん[sage]   投稿日:2016/07/23 01:27:50  ID:tWjtYIW6.net(4)
>429
IDEを使うことでタイプ数が減る機能はどうでもいいんだよね。

どうでもいいというのは、タイプ数が多くても少なくても
さほど違いはないということ。

重要なのはタイプ数じゃなくて読む文字数だから。
ただしタイプした文字数=読む文字数ではないということ。

どういうことかというと、人間は文章を読むとき
読み飛ばしをするということ。

例えばJavaでいうimportやMainクラス定義なんかは
読み飛ばす部分。だからそんなところで読む数の違いは出てこない。
また型定義は読むところではあるが、型定義だけを読むことで
型を理解できると言うメリットが有る。

これは型が書かれていないコードから、型を解析する
作業よりも読む文字数は少なくなる。

1213
デフォルトの名無しさん[sage]   投稿日:2016/07/23 18:21:41  ID:6yKmk1QH.net(2)
代入演算子は要らなかった

1214
デフォルトの名無しさん[sage]   投稿日:2016/07/23 23:13:50  ID:7iusE9pH.net(2)
代入は文であって値を持つべきでないと?

1215
デフォルトの名無しさん[]   投稿日:2016/07/23 23:53:23  ID:zx6tBrAB.net(2)
愚か者めが

1216
デフォルトの名無しさん[sage]   投稿日:2016/07/24 07:03:52  ID:L1GkLU8N.net(2)
Cが生まれた時代はな
シンタクスハイライトどころか下手すると
スクリーンエディタ(キリッ カットアンドペースト(キリッ
すら高価な機能だったんやで

1217
デフォルトの名無しさん[]   投稿日:2016/07/26 15:33:00  ID:ka5+GTWz.net(2)
テキストエディタが数万円してからな

1218
デフォルトの名無しさん[sage]   投稿日:2016/07/26 16:33:02  ID:dc6Ut+6F.net(2)
Cが生まれた頃にはまだコピー&ペーストはなかったぞ。

1219
デフォルトの名無しさん[sage]   投稿日:2016/07/26 16:39:32  ID:qFADw225.net(2)
最初のクリップボードはAltoかな
Cが1972年でAltoが1973年

1220
デフォルトの名無しさん[sage]   投稿日:2016/07/26 16:42:33  ID:P0pX8+u1.net(2)
>430
で、その、この先生きのこるのはどの言語!

1221
デフォルトの名無しさん[sage]   投稿日:2016/07/26 17:29:32  ID:XfeIwbpB.net(2)
アセンブラ C Fortran Lisp の古代言語
Javascript COBOL Python
HTML PHP はなんだかんだ言って生き残るんだろな〜

あとは Java がどうなるかな

1222
デフォルトの名無しさん[sage]   投稿日:2016/07/26 21:54:04  ID:8mWO7mKy.net(2)
言語じゃないというのはナンセンスか

1223
デフォルトの名無しさん[sage]   投稿日:2016/07/26 22:19:28  ID:3gO7Ljql.net(2)
お前ら、テーマに戻れや。
なぜオブジェクト指向は愚かな考えなんだ?

1224
デフォルトの名無しさん[]   投稿日:2016/07/26 22:55:12  ID:wvFbwXsy.net(6)
愚かな設計が蔓延してるってことだな

1225
デフォルトの名無しさん[]   投稿日:2016/07/26 22:55:59  ID:wvFbwXsy.net(6)
>4
これがすべてじゃないの?

1226
デフォルトの名無しさん[]   投稿日:2016/07/26 23:00:24  ID:wvFbwXsy.net(6)
初期設計を少しでも間違えたり手抜きしたら
そのシステムの成長絶望的になり死ぬ

1227
デフォルトの名無しさん[sage]   投稿日:2016/07/27 02:09:24  ID:gQfYvWZ4.net(4)
>444
そして>41-42で完全に解説完了
ジョークとしてわざとオブジェクト指向として間違ったプログラム例だしてるってのに
「この通りオブジェクト指向は直感に反して〜」じゃねぇっつのw

1228
デフォルトの名無しさん[sage]   投稿日:2016/07/27 02:12:13  ID:gQfYvWZ4.net(4)
>440
Javaは普及してるから残るだろうなぁ
なんか、いつものベストじゃないけど普及したから
ベターとして残るというプログラム史のいつもの展開というか。

1229
デフォルトの名無しさん[sage]   投稿日:2016/07/27 06:54:54  ID:cUWSkWnI.net(2)
問題はそういうジョークを本気にする人が多すぎるってことだろうに。
つまりオブジェクト指向ってのは一般にコンセンサスをとりずらい概念なんだよ。

1230
デフォルトの名無しさん[sage]   投稿日:2016/07/27 06:58:14  ID:LCC7iz/I.net(2)
おまえ等の好きそうなネタ見つけた

オブジェクト指向で料理を例える場合,chicken.cut()かchef.cut()か
https://teratail.com/questions/41875

1231
デフォルトの名無しさん[sage]   投稿日:2016/07/27 07:29:08  ID:mL4CmQKe.net(2)
>446
コーヒーの例は単純明快だからいいけど、美少女は実際に正しく設計できるやつが日本に何人いるかってレベルだろうな

1232
デフォルトの名無しさん[sage]   投稿日:2016/07/27 07:30:19  ID:+Qq3g4cQ.net(2)
>448
これをジョークだと思って実戦に挑む奴がデスマーチを引き起こす

1233
デフォルトの名無しさん[sage]   投稿日:2016/07/27 07:32:08  ID:iBdKVqyS.net(2)
基底に近いほど修正しづらいのは事実

1234
デフォルトの名無しさん[]   投稿日:2016/07/27 07:33:05  ID:8lCNqFHq.net(2)
>451
ほんとこれ

1235
デフォルトの名無しさん[sage]   投稿日:2016/07/27 09:54:15  ID:8yC4YC1p.net(2)
>449
tokage.cut()

1236
デフォルトの名無しさん[]   投稿日:2016/07/27 12:23:59  ID:mW7SlT40.net(2)
くだらん与太話はこれくらいにしてそろそろ全力でウンコ美少女問題に取り組むか

1237
デフォルトの名無しさん[]   投稿日:2016/07/27 17:21:14  ID:8Owc4Qqf.net(2)
ウンコしない美少女は偶像
つまり人間からの派生ではない

1238
デフォルトの名無しさん[sage]   投稿日:2016/07/27 17:58:49  ID:CvwlEFOq.net(2)
なんか、いっつも同じレベルの書き込みするから
自演になってないって自覚しとる?きみ。

1239
デフォルトの名無しさん[]   投稿日:2016/07/27 19:55:41  ID:9bIrtjQt.net(4)
ユーザーはうんこなんて機能は求めて無いから削除しろよと

1240
デフォルトの名無しさん[sage]   投稿日:2016/07/27 20:16:04  ID:YbwWr11d.net(4)
人間がウンコするのは、
ユーザーが求めているからなのか?

1241
デフォルトの名無しさん[]   投稿日:2016/07/27 20:21:12  ID:9bIrtjQt.net(4)
ソフトの機能に不要な要素まで組み入れても誰も買わないだろ。
現実の要素を完全に網羅する必要は無いから

1242
デフォルトの名無しさん[sage]   投稿日:2016/07/27 21:23:16  ID:dkELqw5/.net(2)
それは当たり前のことではあるな
必要な要素だけ実装すればよいからな
Humanクラスがどういった要素を持つかは案件によるし
もし人の持つすべての機能をHumanクラスに実装できるっていうんなら
そのHumanクラスにプログラムも書いてもらえばよい

よって現実の人間がうんこをするからと言って
必ずしもHumanクラスにうんこをする機能が必要かどうかはわからないし
必要な案件に出会ってから美少女クラスのうんこの扱いについて考えればよい

1243
デフォルトの名無しさん[sage]   投稿日:2016/07/27 21:50:52  ID:eu5RKOJ4.net(2)
要件で一言も触れてないのに「はぁ?○○はあって当然だろ」とか言い出す顧客しかいないから
想像できるものは全て詰め込んでおく必要がある。
ウンコだろうとゲロだろうと例外はない。

1244
デフォルトの名無しさん[sage]   投稿日:2016/07/27 22:27:39  ID:YbwWr11d.net(4)
肝心なことを決めずに作り込んでいく。
美少女クラスのスーパークラスは人間クラスである。
排便メソッドは関係ないからそれでいい。
だが、ある時ユーザーからの要望で人間クラスに排便メソッドを作った。
人間だもの、当たり前だ。
それでいいと思った。その時がくるまでは。
ある時私は気がついた。
これだと美少女が排便すると www

1245
デフォルトの名無しさん[]   投稿日:2016/07/27 22:41:58  ID:60oYSks+.net(2)
このスレ的にはgo言語とかD言語のダックタイピングってどうなん?

1246
デフォルトの名無しさん[sage]   投稿日:2016/07/27 22:47:49  ID:rlINsgdh.net(2)
ダックタイピング

由来

アヒルのの鳴きマネをする人間はアヒルに違いない

1247
デフォルトの名無しさん[]   投稿日:2016/07/28 00:19:19  ID:c5ty+8F5.net(2)
ダッチワイフィング

由来

オランダの人妻はエロいに違いない

1248
デフォルトの名無しさん[]   投稿日:2016/07/28 00:47:19  ID:6VZFO4sX.net(2)
オブジェクト指向は幻想

1249
デフォルトの名無しさん[]   投稿日:2016/07/28 00:48:34  ID:/rI5OmsP.net(2)
COBOLからJavaへの移行で「実際に」成功した案件は存在しない

1250
デフォルトの名無しさん[]   投稿日:2016/07/28 00:49:15  ID:LhM4XtYR.net(2)
細胞から実装しろ

1251
デフォルトの名無しさん[]   投稿日:2016/07/28 00:49:41  ID:OYshXAPi.net(2)
元素から実装しろ

1252
デフォルトの名無しさん[sage]   投稿日:2016/07/28 01:51:28  ID:y7xhJAs5.net(2)
>468
COBOLって単なる言語じゃなくて運用まで含めたシステムの総称だからな。かなうわけがない
とは言え、高賃金のCOBOLプログラマーもいずれ死に絶えるわけでなんとかしないといけないんだけどさ
Adaなんか勉強して損した

1253
デフォルトの名無しさん[]   投稿日:2016/07/29 12:00:06  ID:TRgFQe5b.net(2)
Ocamlならあるいは

1254
デフォルトの名無しさん[sage]   投稿日:2016/07/29 18:48:09  ID:POEPtDrt.net(2)
ないない
そもそもCが小文字の時点で語る資格なし

1255
デフォルトの名無しさん[]   投稿日:2016/07/30 00:08:52  ID:lNYXBi4+.net(2)
ならScalaでスイス銀行の例もあるし?

1256
デフォルトの名無しさん[sage]   投稿日:2016/07/30 00:35:24  ID:gkAo/Cig.net(2)
具体的に

1257
デフォルトの名無しさん[sage]   投稿日:2016/07/30 15:22:29  ID:OSfj7rnr.net(6)
オブジェクト指向を考え出した人間もオブジェクト指向の解釈を誤っていたのではないか
クラスというのは人間が直感的に思い描く世界の事物をプログラムコードにマップする手段ではなくて、
プロセスという大きなチューリングマシンの中の小さなチューリングマシンを記述する手段にすぎなかった
(チューリング完全性の利用例の一つだった

クラスのコンストラクタは状態機械であるところのチューリングマシンの初期化と生存期間の始まりに相当する
デストラクタは後始末と生存期間の終わり。
メソッドはチューリングマシンにlive timeを与え、計算を進めさせる。
そんだけ

状態(mutableなデータ)を含むから関数型プログラミングとは似て非なるものだし、
数学的にカタをつけるにはチューリングマシンの一変種で無限長の磁気テープをクラスで小分けにしたもの、
としか言い様が無い

1258
デフォルトの名無しさん[sage]   投稿日:2016/07/30 15:46:36  ID:OSfj7rnr.net(6)
こう考えると継承のしくみを使ったプログラミングが
ごく一部のデザインパターンにおいてしか成功しないことも理解できる
継承というしくみのは人間が「こうだったらイイなあ…」と思い描いて作っただけで、
>476な解釈からは必然性が出てこない
つまり継承というしくみは論理的妥当性を欠いており、
継承を下手に使ったらあちこちで矛盾が生じて話が発散していく傾向なのも仕方が無い

1259
デフォルトの名無しさん[sage]   投稿日:2016/07/30 18:44:13  ID:TLvR+07H.net(4)
だいたいプログラミング業界って、

新しいものが導入される
→古いものはやめてこれ使いましょう
→新しいものも色々問題があることが分かってくる
→極力使わないようにしましょう

の繰り返しだからな。継承しかり例外しかり。
最近はテンプレート使いすぎなんじゃねーのって思うけど。

1260
デフォルトの名無しさん[sage]   投稿日:2016/07/30 19:01:15  ID:TM2kAcv9.net(6)
> 継承しかり例外しかり。
継承も例外も極力使わないようにしましょうなんて
誰も言ってないが?

間違った使い方が明らかになって、
間違った使い方をしないで
正しい使い方をしましょう。

っていう結論ならばいつもそうなっている。
継承しかり例外しかり。

1261
デフォルトの名無しさん[sage]   投稿日:2016/07/30 19:38:58  ID:XUUv9y4D.net(4)
結局、人間クラスと美少女クラスは
どうすればいいんだ?

1262
デフォルトの名無しさん[sage]   投稿日:2016/07/30 20:02:32  ID:TLvR+07H.net(4)
>479
正しく使おうってのは常に真だから内容が無いのと同じだな。
できるだけ使わないようにって風潮はある。程度の差はあれgotoとかと同じ。

1263
デフォルトの名無しさん[sage]   投稿日:2016/07/30 20:08:02  ID:OEu/5F3U.net(2)
javaはオラクルがVMを提供しなくなったら
廃れるだろ。

1264
デフォルトの名無しさん[sage]   投稿日:2016/07/30 21:52:18  ID:NYI5chEQ.net(2)
>479
結局、言語の問題よりも馬鹿を入れない事のが重要ってことだろ。
そういう意味じゃ linus のやり方は正しいってことになる。

1265
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:13:41  ID:TM2kAcv9.net(6)
>481
> できるだけ使わないようにって風潮はある。
無いよそんなのwww

アルアル言っていても、
嘘がホントになったりしないアルよ〜w

1266
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:18:10  ID:OSfj7rnr.net(6)
(定義が論理的に妥当でなかったりあいまいだったりするとお議論が紛糾する例

1267
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:23:44  ID:3WJAVcau.net(6)
多少コピペが多くなっても継承をむやみに使ってはいけない場面ってのは想定しなきゃなぁ

1268
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:38:52  ID:TM2kAcv9.net(6)
なんで継承をやめたらコピペが多くなるのかそれがわからんw

正しく継承使うといういうのは、
継承以外の方法を使うべきときに、違う方法を使うという意味であって、
ならばその違う方法で、コピペを回避すれば良いんだよ。

1269
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:44:09  ID:XUUv9y4D.net(4)
委譲を使えばいいんだろ。
肛門クラスを作って、
人間クラスと美少女クラスのプロパティに肛門インスタンスを持てばいいんだ。
排便できる肛門と出来ない肛門と。

1270
デフォルトの名無しさん[]   投稿日:2016/07/30 23:06:52  ID:FiK/AfbE.net(2)
コーデングテクニックでごまかすのはアカンね
そーゆーことするから所謂ひとつのスパゲッテイー的ソースコードが出来上がるんや
デザインの問題はデザインで解決出来な一生炎上商法プログラマーのまんまやで

1271
デフォルトの名無しさん[sage]   投稿日:2016/07/30 23:38:21  ID:3WJAVcau.net(6)
>487
ミックスインの手法が確立されてないってことは、継承が害悪になる場面ってのはあるんだよ。

そういう場合は、下に書かれてる通り、コンポーネント的な設計が必要。
そういう時に、コンストラクタでコピペが必要ってこと。

1272
デフォルトの名無しさん[sage]   投稿日:2016/07/30 23:41:35  ID:3WJAVcau.net(6)
そうするとインタフェースの定義が必要になってくるから、結局継承が楽だし、よほどのことじゃなければそれで済ませるんだけどね

1273
デフォルトの名無しさん[sage]   投稿日:2016/07/31 00:01:52  ID:VGavY/X3.net(2)
if文ですべて解決できるんじゃね

1274
デフォルトの名無しさん[sage]   投稿日:2016/07/31 00:35:50  ID:UuqrLdJE.net(2)
だから、委譲というか、
デリゲート使えっていうか。

1275
デフォルトの名無しさん[sage]   投稿日:2016/07/31 01:44:59  ID:LD4Pss8J.net(4)
ほんと最近、is-a関係、has-a関係っていうの
軽視されてるよな。

is-aのときに継承すれば良いんだって
昔から言われてるんだが。
これは古い概念じゃないぞw

1276
デフォルトの名無しさん[sage]   投稿日:2016/07/31 03:56:26  ID:Wl4/o5Bb.net(8)
フリーザは美少女クラスのis-a関係

1277
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:04:47  ID:xuMLlix3.net(8)
>494
is-a関係は一般に存在しない
例外なのは同値関係と包含関係が数学的に定義できて無矛盾性が担保された
(=直接証明されたか、より一般的な体系の無矛盾性に帰着できる)ケースだけだが
そんなのはスゲーまれ
いっぱいあると感じるのは錯覚

不用意にis-a関係を導入することでクラス分けにあいまいさが紛れ込み、
プログラムの設計とか簡単に壊滅する

1278
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:09:00  ID:xuMLlix3.net(8)
その点ha-a関係はやりやすいなぜなら単なる集約であって分類が絡まないから
has-a関係の導入自体が矛盾を生じることは無いからだ

1279
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:36:24  ID:tLh0Iyun.net(4)
is-a関係だと思っているものは全てhas-aとしても実装できる。

概念系統が複数ある場合、is-aでは多重継承もしくは、
全ての組み合わせの派生クラスを定義することが必要だが、
has-aではそういう問題は無く柔軟に設計できる。

1280
デフォルトの名無しさん[]   投稿日:2016/07/31 09:41:31  ID:/E3bqgob.net(2)
OO使わない場合に
フラグとかカウンタとかステータスってのをどう管理するのかを
単刀直入に知りたい。
関数型なんかでもこの辺がよくわからない
(消せるはずはないから何か別の概念などで整理・管理されるんだとは思うけど)

1281
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:46:59  ID:tLh0Iyun.net(4)
>499
普通の構造体でいいのでは?(Cでいうところの)

1282
デフォルトの名無しさん[sage]   投稿日:2016/07/31 09:59:49  ID:p/Oh4nGe.net(2)
>499
そこでクロージャですよ

1283
デフォルトの名無しさん[sage]   投稿日:2016/07/31 10:00:24  ID:P4D/j0eN.net(2)
is-a だったらliskov置換原則の方が理解し易いし、コード書くときの指針になる。

1284
デフォルトの名無しさん[sage]   投稿日:2016/07/31 10:09:28  ID:xuMLlix3.net(8)
ちなステータスというのは大概I/Oを通じて外界と繋がっている事物の結果を意味し、
実時間軸上でうつろうもの(mutableなブツ)なので厳密には関数型プログラミングに存在し得ない概念

関数型プログラミングでは「1」を返す関数と、和を返す関数から「1」+「1」=「2」という演繹ステップを経て
「2」を返す関数を作る、というように演繹ステップとしての時間経過しか扱わない
これでどうやって実時間で動くシステムをプログラムするのかというと、
演繹ステップの順序と実時間軸上の物事の変化順序が一致するように関数を設計してやって、
擬似的に演繹順序を実時間軸上の順序と合わせてそれっぽい動きを実現しているわけや

例えばHDDのエラーステータスとか、昨日のステータスに対し今日のステータスが変化した、と捉えるのではなしに、
「HDDの昨日のステータス」を返す関数と、ステータスの適切な処理に対応する何がしかを返す関数とから
「HDDの今日のステータス」に対する処理に対応する何がしかを返す関数を生成する
ことでHDDの今日のステータスを処理する

1285
デフォルトの名無しさん[sage]   投稿日:2016/07/31 11:53:00  ID:LD4Pss8J.net(4)
>494
女は一般に存在しない
いっぱいあると感じるのは錯覚

って言ってるようなもんだなw

一般に存在しないというのなら
存在しないと言う根拠を書け

1286
デフォルトの名無しさん[sage]   投稿日:2016/07/31 13:06:04  ID:xuMLlix3.net(8)
>504
is-a関係は一般には存在しないと書いたのじゃ
例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう
また、なんで女クラスの派生クラスが妻クラスではいけないのか?その根拠を目下人類は手にしていない
はい論破

ちな、有限集合に関しては無矛盾性は常に証明できるから別に
 女クラス←妻クラス
でも
 妻クラス←女クラス
でも良いが、有限のケースしか想定しないんならswitch文で良いやという話で
オブジェクト指向の出る必然性がかなり減る
あくまで無限集合としてのクラスXを今数学的に正しく定義付けできるか?(X=妻 or 女 or so on)というのが問題

1287
デフォルトの名無しさん[sage]   投稿日:2016/07/31 15:57:24  ID:Wl4/o5Bb.net(8)
is-aかどうかなんて抽象的すぎて判断の材料になんないよな。

何を持ってしてis-aとするかが大事なんだけど、そこをきちんと答えられる人は少ない。

1288
デフォルトの名無しさん[sage]   投稿日:2016/07/31 15:58:19  ID:JthY0EmQ.net(2)
>505
そりゃ妻のような一時的な属性に過ぎないものををクラス化するのがそもそも間違ってる
同性婚以前に結婚離婚で既に破綻してるじゃないか
例が悪いので説明になってない、やり直し

1289
デフォルトの名無しさん[sage]   投稿日:2016/07/31 16:07:11  ID:Wl4/o5Bb.net(8)
>507
男も改造すれば女になりうるから、男クラスのインスタンスを作ると、参照を維持したまま女クラスに変身できない。

だから、is-aなんてものは、性転換をしないという契約がなければなりたたない。

契約をしてないのにis-aなんて言いきれる訳ない。

1290
デフォルトの名無しさん[]   投稿日:2016/07/31 16:07:23  ID:kxVM21o1.net(2)
妻とか女とか、単なる属性をクラスにするからワケが分からなくなる。

1291
デフォルトの名無しさん[sage]   投稿日:2016/07/31 16:27:16  ID:iFqDH3lg.net(2)
いいから、肛門クラスを作って
デリケートしろ!

1292
デフォルトの名無しさん[sage]   投稿日:2016/07/31 16:35:53  ID:Wl4/o5Bb.net(8)
口に肛門つけてください。
しゃべれるしうんこできるし便利だと思うんです。

1293
デフォルトの名無しさん[sage]   投稿日:2016/07/31 21:22:59  ID:XDiDpvFC.net(2)
話についていけない子が
必死で面白レスしようとするのが悲痛
人間の悲しみが透けて見える

1294
デフォルトの名無しさん[sage]   投稿日:2016/08/01 00:44:08  ID:E1waX2Jm.net(16)
>505
> 例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう

ならないなw
お前設計がおかしいよ。

妻をクラスするって発想がそもそも
キチガイじみてる。

1295
デフォルトの名無しさん[sage]   投稿日:2016/08/01 00:46:25  ID:E1waX2Jm.net(16)
普通は性別は属性だよなw

人クラスがあって、名前・年齢・性別
ほら属性だ。

そのうち佐藤クラスを作るとか言いそうだwwww

1296
デフォルトの名無しさん[sage]   投稿日:2016/08/01 00:52:22  ID:E1waX2Jm.net(16)
is-a関係っていうのは必要条件であって十分条件じゃないんだがw
is-aになっていれば必ず継承関係にあるってことじゃない。
継承しようと思ったとき、is-a関係を満たしていなければいけないって話だ。

1297
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:01:45  ID:8BzY1j1Y.net(2)
オブジェクト指向ってどこで間違ったんだろう
途中までは良い線行ってたと思うんだけど、どこからか使いものにならなくなったよね

1298
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:04:20  ID:E1waX2Jm.net(16)
オブジェクト指向が使われてない
フレームワークなんて無いんだが?

使い物にならなくなったという考えがそもそも間違いだな。

まあ「使い物にならなくなった」と言い続けることで
他の人に事実だと錯覚させようとする手段ニダ?w

1299
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:06:05  ID:fJ4xvUon.net(2)
だから、継承捨てて委譲を使えっての!

1300
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:41:20  ID:C6PCKyxq.net(4)
>517 本当にオブジェクト指向が必要だから使っているのか、
抽象化の手段がオブジェクト指向しか無いから使わざるをえないのか

昨今の言語なら継承以外の方法で抽象化とか再利用とかできたりする
OOは本当に最小限にして、late bindingやメッセージパッシングの妙を際立たせるとより効果的
Real World OCamlだとヘテロな型を持つ木構造を探索するのに使ってたりしたな

1301
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:41:37  ID:E1waX2Jm.net(16)
継承捨てて委譲を使えっていうのは
マイクロソフト用語でコンポーネント指向っていうんだが、
これを意図的に取り入れたのが2000年前後に使われていたVB6なんだよな。

そのVB6も.NETになってから継承をサポートしたし、
コンポーネント指向だけではだめだということだろう。

1302
デフォルトの名無しさん[sage]   投稿日:2016/08/01 01:43:39  ID:E1waX2Jm.net(16)
>519
オブジェクト指向は必要だから使うんじゃなくて
いくつもある手段の中から一番適切だから使うんだよ。

お前が例示する使い方は、単にオブジェクト指向じゃないほうが
適切だってだけ。そしてオブジェクト指向が適切だから
ほとんどのフレームワークでオブジェクト指向が使われている。
他に代替技術があるにもかかわらずだ。

1303
デフォルトの名無しさん[sage]   投稿日:2016/08/01 02:44:42  ID:6ITirnPy.net(2)
>513
だからその設計はねーってこと言ってるんだろ。

日本語読めないの?

1304
デフォルトの名無しさん[sage]   投稿日:2016/08/01 03:09:46  ID:FN/zaXKS.net(2)
>516
>どこからか使いものにならなくなったよね
C++の奇形めいたオブジェクト指向は衰退して
別方面で進化してきたObjecive-CとJavaが本流として
いま街でみかける全てのスマホアプリを支えてるけどな。

1305
デフォルトの名無しさん[sage]   投稿日:2016/08/01 03:31:24  ID:cj2k2Gm/.net(2)
今はObjrctive-CじゃなくてSwiftじゃね?

1306
デフォルトの名無しさん[sage]   投稿日:2016/08/01 04:29:03  ID:C6PCKyxq.net(4)
>521 適切だから使うというなら何故デザインパターンなんて出てきたのか?
デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
他の手段が使える言語なら間違いなく採用しない

他にもExpression ProblemをJavaで解決しているのとOCamlで解決しているのを比較してみるといい
OOだと論文書けるくらいには面倒な方法があるけど、OCamlのVariant使った方法と比べて圧倒的に可読性と簡潔さに劣っている

1307
デフォルトの名無しさん[sage]   投稿日:2016/08/01 06:27:47  ID:c5RAbFYM.net(2)
JavaはC++よりレガシーな言語になってしまったが…

1308
デフォルトの名無しさん[sage]   投稿日:2016/08/01 09:36:21  ID:E1waX2Jm.net(16)
>525
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、

違う。OO便利だなーって使っているうちに
設計のアルゴリズムが確立されていって、
それをまとめたのがデザパタ

1309
デフォルトの名無しさん[]   投稿日:2016/08/01 10:06:54  ID:Q0J3uZmP.net(2)
いや、デザパタはOOと関係無いから。
関係あるのはOOPの方

1310
デフォルトの名無しさん[]   投稿日:2016/08/01 10:50:43  ID:pyyhbxGP.net(2)
【閲覧注意】戦闘に巻き込まれて頭部を切断された少女の遺体。これがリアルなシリア。
http://dqnworld.com/archives/34.html
これが本当の戦争の恐怖。この少女には大人の戦争は関係ないですからね。巻き込まれた少女の遺体を持って何か
を訴えかけている男たちの映像です。

【閲覧注意】シリアで反体制派の兵士が顔を吹き飛ばされてしまう瞬間。
http://dqnworld.com/archives/89.html
スローモーションが怖すぎる・・・。

【閲覧注意】アッラーフアクバルを叫びながら少年を斬首する映像を公開する。
http://dqnworld.com/archives/3975.html
点滴?のようなものが見えるんだけど。助けられた少年じゃなかったのか。助けられた所を強奪されてアッラーフ
アクバル?なのかしら・・・。

【閲覧注意】磔にされた戦闘機パイロットの遺体。シリアにて。
http://dqnworld.com/archives/3996.html
今日のアッラーフアクバル動画。

妻の目の前でぶっ飛ばされた旦那さん?これは死んだかな(°_°)
http://dqnworld.com/archives/4004.html
さすがにこれだけ飛ばされたら助からないかな・・・。

【閲覧注意】あおむけでゲロを吐きまくっている男性。助けてやれよ・・・。窒息するぞ(@_@;)
http://dqnworld.com/archives/4007.html
これ結構危ないんじゃないの?撮影してないで横向きにしてやれよ。これ窒息する可能性あるだろ。

衝撃映像。事故って大回転した車から少女がポロリ。
http://dqnworld.com/archives/4013.html
この少女がどうなったのかが気になる所ですが動画の説明には何も書かれていなかった・・・。

1311
デフォルトの名無しさん[sage]   投稿日:2016/08/01 10:52:18  ID:IZIdUKpU.net(2)
ここまでLSPの話題なし

1312
デフォルトの名無しさん[sage]   投稿日:2016/08/01 17:10:00  ID:GD9lEFl6.net(2)
>525
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、

おしい。
デザパタはJavaやC++に適さない問題を無理やりJavaやC++で解決するためのもので、
SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。

1313
デフォルトの名無しさん[sage]   投稿日:2016/08/01 18:06:20  ID:99zq/hjd.net(2)
smalltalk だと、人間クラスと美少女クラスの問題は
どう解決するの?

1314
デフォルトの名無しさん[sage]   投稿日:2016/08/01 20:14:16  ID:NIKdUbwx.net(2)
Squeak Smalltalk だと、こんな感じか?

Object subclass: #人間
  instanceVariableNames: 'もろもろ'
  classVariableNames: ''
  poolDictionaries: ''
  category: '美少女-排便'.

人間 compile: '排便 ^#便'.

Trait named: #美少女 uses: #() category: '美少女-排便'.

美少女 compile: '排便 self notify: ''トイレには行きません''. ^#プリン'.

おまえら := 人間 new.
おまえら 排便. "=> #便 "

橋本環奈 := 人間 new.
橋本環奈 assureUniClass class uses: 美少女.

橋本環奈 排便. "Warning: トイレには行きません => #プリン"

1315
デフォルトの名無しさん[sage]   投稿日:2016/08/01 20:39:01  ID:E1waX2Jm.net(16)
>531
> SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。

例えば、どのパターンが簡潔明瞭に記述できるの?
一番簡単なパターンでいいので書いてみて。

考えるのが面倒なら俺が出題しても良い?
Singletonは個人的につまらないので
そうだね、DecoratorはSmalltalkやSelfで書いたらどうなる?

1316
デフォルトの名無しさん[sage]   投稿日:2016/08/02 00:07:55  ID:6KXXOitA.net(6)
>534
試しにウィキペの Decorator パターン
https://ja.m.wikipedia.org/wiki/Decorator_パターン

にある例を Smalltalk で書いてみた
http://ideone.com/Y1WAxY

けど、圧倒的に簡潔になった感じはしないな
>531 ならどんなふうに書く?

1317
デフォルトの名無しさん[]   投稿日:2016/08/02 00:11:39  ID:xLK/JaT/.net(2)
シングルトンなんて言語に最初から組み込んでおけ(Scala信者並感)

1318
デフォルトの名無しさん[sage]   投稿日:2016/08/02 00:40:29  ID:Aujbapgh.net(2)
>532
そもそもきみは継承関係=オブジェクト指向でしか発想してないから
クソ邪魔くさい継承取っ払ってモジュール自由に組み外しできるタイプの
オブジェクト指向の話にまったくついてこれてないからずっと嗤われてるわけで。

1319
デフォルトの名無しさん[sage]   投稿日:2016/08/02 00:44:39  ID:flPsn8Jo.net(14)
>535
別にDecoratorじゃなくていいんだけどね。
圧倒的に簡潔かつ明瞭に記述できるっていってるから
そのコードを見たいだけ。

1320
デフォルトの名無しさん[sage]   投稿日:2016/08/02 05:55:14  ID:wOSsX6OQ.net(6)
デコレータパターンはそもそも静的に型がつけられることからくるクラス階層への制約を誤魔化すための小手先の技術でしかない。
型が完全に動的なSmalltalkやSelfではデコレータパターン自体が不要。

1321
デフォルトの名無しさん[sage]   投稿日:2016/08/02 10:26:45  ID:KjBiyzhL.net(2)
型が動的だと>535の例のようなコードはどうなるの?

1322
デフォルトの名無しさん[sage]   投稿日:2016/08/02 10:29:15  ID:YMxtX/GD.net(2)
そそ
例えばアセンブリや機械語は制約がないからデコレータパターンとか要らないでしょ
それと同じでSmalltalkには何も必要ないよ

1323
デフォルトの名無しさん[sage]   投稿日:2016/08/02 13:11:20  ID:KCBRtMku.net(4)
全然違うのだが。デコレータもSmallTalkも理解してないとみた。

1324
デフォルトの名無しさん[sage]   投稿日:2016/08/02 13:40:40  ID:C0zGukRC.net(2)
アセンブリというかC言語だとこんな感じか。出来るには出来るけどちょっとねえ
http://codepad.org/XgRtJlQb

1325
デフォルトの名無しさん[sage]   投稿日:2016/08/02 15:34:07  ID:lROFhaXh.net(10)
なにも知らなくても語れる。
それが Smalltalk のいいところらしい。
人間の悲しさがほの見えるな・・・

1326
デフォルトの名無しさん[sage]   投稿日:2016/08/02 16:01:47  ID:wOSsX6OQ.net(6)
>540
Smalltalkはよくわからないけど、
DoublePriceとかWholesalePriceとかいうクラスを増やすより、
元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。
SmalltalkのPluggableMVCとかもクロージャで柔軟な変換を実装しているし。

1327
デフォルトの名無しさん[sage]   投稿日:2016/08/02 16:53:22  ID:I0xQlCpI.net(4)
>545
> 元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。

こんなんでどうですかね?
http://ideone.com/d8iLSE

ついでにRuby版も書いてみた
http://ideone.com/WW8gva

1328
デフォルトの名無しさん[sage]   投稿日:2016/08/02 17:16:35  ID:I0xQlCpI.net(4)
>543
これだと Java 版でいうところの getValue() する前に
毎回、二倍にして 利益80乗せて、また二倍にしてもう一度 利益200乗せて…とかって
いちいち書かないと 840を返せないから、結果は合っているけど要求仕様を満たしていないような気がする

1329
デフォルトの名無しさん[sage]   投稿日:2016/08/02 18:25:05  ID:lROFhaXh.net(10)
いつになったら、
人間クラスと美少女クラスの問題に辿りつけるのかね?
悲しいの〜。

1330
デフォルトの名無しさん[sage]   投稿日:2016/08/02 20:24:15  ID:wOSsX6OQ.net(6)
>548
とっくに解けてるじゃん
ばか?

1331
デフォルトの名無しさん[sage]   投稿日:2016/08/02 20:30:55  ID:lROFhaXh.net(10)
どう解けてるんだよ。
人間の肛門と天使の肛門にコンポーネントするのか?

1332
デフォルトの名無しさん[]   投稿日:2016/08/02 20:41:47  ID:UCo4tbLK.net(6)
用途も分からず闇雲に現実世界をクラス化して行ったら、一生掛かっても終わらないから無駄な事すんな。

1333
デフォルトの名無しさん[sage]   投稿日:2016/08/02 20:42:03  ID:9rM4/wP9.net(2)
美少女は偶像であり人間ではない

1334
デフォルトの名無しさん[sage]   投稿日:2016/08/02 20:57:34  ID:flPsn8Jo.net(14)
もうそろそろいいかな?

みんな「デコレーターパターン」をどうするか?というテーマで
会話が成り立ってるよね?

つまりこういうことさ。デザインパターンっていうのは用語。
実装じゃない。

デコレーターパターンをJavaならこう書く、SmallTalkならこう書くと
いうふうに共通認識ができてる。これこそデザインパターンの有用な所。

だからコードの書き方が決まってるわけじゃないんだよ。
設計だからね。言語が決まらない状態であっても話はできる。

デザインパターンをどういうふうに書くかってのは例でしか無いんだよ。
目的を達成できるならどう書くてもいいし、デコレータパターンを
どう書いてもそれはデコレータパターンなのさ。

SmallTalkであってもデコレーターパターンっていうのは存在する。
だからこそSmallTalkでデコレータパターンをシンプルに書くことができる!と
主張できる。

1335
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:16:53  ID:LOKS06K+.net(6)
>553
なんでみんなより二歩も三歩も手前な意見を
そんな長文で書き込めるの?

1336
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:20:29  ID:flPsn8Jo.net(14)
>554
言いたいことはそれだけかw

1337
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:22:05  ID:LOKS06K+.net(6)
ごめんね

1338
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:24:18  ID:e9gYPknx.net(4)
Smalltalk の t を大文字で書くやつは無知か知ったかぶり

1339
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:24:35  ID:lROFhaXh.net(10)
実は誰も Smalltalk なんて知らない www

1340
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:27:22  ID:flPsn8Jo.net(14)
反論あるなら待ってるよw

1341
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:32:29  ID:LOKS06K+.net(6)
>557
ワロタw

1342
デフォルトの名無しさん[]   投稿日:2016/08/02 21:38:39  ID:UCo4tbLK.net(6)
言語は関係無いと言う内容の話への反論が、言語名のミスプリントの指摘とか、レベル低過ぎだろw
小学生の負け惜しみかよw

1343
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:39:26  ID:flPsn8Jo.net(14)
>561
え?それ反論だと思ってたの?
反論はまだ一つも来てませんよw

1344
デフォルトの名無しさん[]   投稿日:2016/08/02 21:40:28  ID:UCo4tbLK.net(6)
うゎw
保育園だなここはw

1345
デフォルトの名無しさん[sage]   投稿日:2016/08/02 21:47:57  ID:6KXXOitA.net(6)
>561
「プリント」とかまさに小並

1346
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:08:58  ID:e9gYPknx.net(4)
>553
>538で「見たいだけ」って言ってるところをみると、これは反語で
>546みたいに簡潔なのが出てくるとはこの時点では考えてなかったんじゃない?
だからデザパタは用語で実装じゃない、言語は関係ないって趣旨替えしたように読むのは穿ちすぎ?

1347
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:14:56  ID:flPsn8Jo.net(14)
>565
いやw
最初からこのために、
デコレータパターンをSmallTalkで書いたらどうなるの?って
話題を振って会話をさせたんだよ。

デコレータパターンという共通知識があり、
SmallTalkでそれを実装することができるという会話をね。

もし実装が決まっているものであれば、
SmallTalkでデコレータパターンを実装すれば
シンプルな形で実装できるんだっていう話はでてこない。

1348
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:27:10  ID:KCBRtMku.net(4)
そもそもC++でデコレーターでもそんな難しくないでしょw
シングルトンの方がよっぽどややこしい。

1349
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:30:18  ID:flPsn8Jo.net(14)
「シングルトン」だけで話が通じる所がデザインパターンの
便利なところだね。

さてシングルトンにもいろんな実装があるけど、
DIコンテナを使ってシングルトンに見せるっていう方法もあるよね。
これだと普通にクラスを作るだけで良くなる。

1350
デフォルトの名無しさん[sage]   投稿日:2016/08/02 22:34:48  ID:qU1dasmj.net(2)
兄さん、そこでPythonですよ
ですしおすし

1351
デフォルトの名無しさん[sage]   投稿日:2016/08/02 23:26:19  ID:QqIbwu4d.net(2)
Java8ならもっとHENTAIなコードが書けるぞ
http://ideone.com/DbIiD0

1352
デフォルトの名無しさん[sage]   投稿日:2016/08/02 23:41:10  ID:6KXXOitA.net(6)

1353
デフォルトの名無しさん[sage]   投稿日:2016/08/02 23:59:46  ID:lROFhaXh.net(10)
Smalltalk の最大の魅力は、
それが雑談に過ぎないということである。
by アラン・ケイ

1354
デフォルトの名無しさん[sage]   投稿日:2016/08/03 00:45:18  ID:qJ0ntPw4.net(2)
>570
new Price((120*2+80)*2+200) を作りたいわけではなくて
new Price(120) をデコって 840 を返させるのが Decorator
だからデコったあとに setValue(100) してから getValue() すると 760 が返るはず
http://ideone.com/Z24LFA
http://ideone.com/Diod1I
http://ideone.com/x2goNr
http://ideone.com/do6fT9

1355
デフォルトの名無しさん[sage]   投稿日:2016/08/03 11:21:17  ID:nNt8IZmK.net(2)
>566
まるでちがう。>546はデコレータパターンじゃない。
Javaではデコレータパターンを使う問題を
デコレータパターンを使わずにより簡潔に記述した例。

1356
デフォルトの名無しさん[sage]   投稿日:2016/08/03 12:45:10  ID:XBNCNfrP.net(2)
>539
型が動的だと>535の例のようなコードはどうなるの?

1357
デフォルトの名無しさん[sage]   投稿日:2016/08/03 15:55:24  ID:8J75MUHP.net(6)
SmallTalkとか

1358
デフォルトの名無しさん[sage]   投稿日:2016/08/03 17:09:10  ID:R0iPm5qU.net(2)
関数型インターフェースの方が簡潔になる
http://ideone.com/6MAwKM

>573
setValue(100)してからgetValueしたら100返らなきゃバグってるだろ
setOriginalValueとかに修正するところだな

1359
デフォルトの名無しさん[sage]   投稿日:2016/08/03 18:07:08  ID:8J75MUHP.net(6)
Wikipediaにある
> Decorator パターンの方針は、既存のオブジェクトを新しい Decorator オブジェクトでラップすることである。
がわかってない奴がいるな

1360
デフォルトの名無しさん[sage]   投稿日:2016/08/03 18:17:54  ID:qhbdc1zB.net(2)
デザパタの目的とされがちであるが
常に失敗しているのが語彙の共有

いつでもつねに認識がバラバラw

1361
デフォルトの名無しさん[sage]   投稿日:2016/08/03 18:21:38  ID:8J75MUHP.net(6)
>579
ごく一部の人間が正しく理解できてないだけで、
> いつでもつねに認識がバラバラw
は言い過ぎ

1362
デフォルトの名無しさん[sage]   投稿日:2016/08/03 18:45:37  ID:9oohU77o.net(2)
>577
> 関数型インターフェースの方が簡潔になる

そんなんでいいなら Smalltalk でも簡潔に書けるけどね

http://ideone.com/RZHQ7P

1363
デフォルトの名無しさん[sage]   投稿日:2016/08/03 19:57:46  ID:N9MmOijn.net(4)
Smalltalkに意味なんかないよ
登場してから30年とか40年とか経ってるのに
誰も現場で使ってない言語だからね
40年という歳月は結論を出すのに十分な時間だと思うよ
これから先もずっと使われないだろう
こんな言語についてあれこれ考えるのは時間の無駄だよ
御幣を恐れずに言うと、Smalltalkは間違っている、机上の空論
本当によくできていたなら、もうちょっとぐらい使われていてもおかしくない
少なくともRuby程度ぐらいには使われてないと話にならない
Smalltalkは実用にならないスジの悪い言語だということ

1364
デフォルトの名無しさん[]   投稿日:2016/08/03 20:22:04  ID:M+rE/wd/.net(4)
Smalltalkは言語だけじゃダメで。
windows上では使い物にならないから仕方無い。

1365
デフォルトの名無しさん[]   投稿日:2016/08/03 20:23:22  ID:M+rE/wd/.net(4)
要するに、windows自体がオブジェクト指向に向いてないんだよ。

1366
デフォルトの名無しさん[sage]   投稿日:2016/08/03 20:29:26  ID:1jcdD/Xi.net(2)
結論。
誰も Smalltalk なんて知らない www

1367
デフォルトの名無しさん[sage]   投稿日:2016/08/03 20:32:04  ID:N9MmOijn.net(4)
それは関係ない
なぜなら概念上の問題より運用上の問題のほうが大事だから
いくら概念的な素晴らしさを語ったところで
まともに運用できないならゴミ
使えない

1368
デフォルトの名無しさん[sage]   投稿日:2016/08/03 20:45:27  ID:YtpqVXv4.net(2)
>574
> Javaではデコレータパターンを使う問題を
> デコレータパターンを使わずにより簡潔に記述した例。

お前は勘違いしているな。

デコレータパターンを実装しなさいというお題なんだから
それがデコレータパターンなんだよ。

Javaならこういう実装でやるが、他の言語では
その実装方法が違うだけ。

1369
デフォルトの名無しさん[sage]   投稿日:2016/08/03 21:24:23  ID:TE6NppPB.net(2)
>582
まあ仮にSmalltalkが本当に誰も使ってなくて
処理系も失われたり、あるいは as-is で放置された言語だとしたら
そんなものに意味がないって意見は全くもって正しいよね

1370
デフォルトの名無しさん[sage]   投稿日:2016/08/03 21:37:23  ID:46yxFVyN.net(2)
シングルトンやアイテレーターなどは時代が変わっても重要だろうけど、
デコレーターは継承関係への依存度が高いから微妙だな。

1371
デフォルトの名無しさん[sage]   投稿日:2016/08/03 22:46:55  ID:PwtoF+FA.net(2)
>583
Smalltalkは独自のGUIもそうだけれども、もうひとつ、通常のセルフホスティング
(自身で自身を記述)にとどまらず、処理系を構成する実行時オブジェクト群を
仮想イメージと呼ばれる、ある種のオブジェクトストアに永続化して次回起動時も
継続利用する運用スタイルも毛嫌いされるよね。個人的には示唆に富んでいて好きなんだけど

1372
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:17:31  ID:iDV12Qqy.net(10)
>587
いや?
クロージャで実装しているのだから、デコレータパターンによる実装ではないよ。
コード読めない子?

1373
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:19:01  ID:jTAWnEUa.net(44)
> クロージャで実装しているのだから、

クロージャで "何を" 実装しているの?

1374
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:24:24  ID:ClPuKc3B.net(2)
デコレータパターンを実装できてはいないんだよw

これでわかった?w

1375
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:25:35  ID:jTAWnEUa.net(44)
いや、何を実装したのかを聞いたんだが?
実装したものは何?

1376
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:30:18  ID:ynLXOlFE.net(2)
>590
あのあたりはむしろメモリや記憶装置いくらでも使える現代向けというか
過去にオブジェクト指向の要素をちょっとだけ輸入してみた中途半端なオブジェクト指向言語が次々出ては滅びの興亡続けてたのは
"コンパイル後のサイズが大きいじゃないか"とかいまじゃヘソが茶を沸かすような理由がメインなわけだし。

1377
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:31:24  ID:w6fnMNqO.net(8)
デコレータパターンと同等の機能をクロージャで実装した
じゃね?

同等の機能を持った違った実装があるのは当たり前じゃね?
デコレータパターンと同じような機能をもたらすけど
デコレータパターンじゃない実装は普通にあり得るんじゃね?

1378
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:34:51  ID:jTAWnEUa.net(44)
>595
パターンは機能じゃないよ。設計。
デコレータパターンという設計

この設計の実装はいろいろある。
決まっていない。

Javaだったらクラスで実装し
クロージャーでも実装できるってだけの話。

1379
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:36:04  ID:jTAWnEUa.net(44)
wikipediaにすら書いてあるしw

https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%...(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

デザインパターンは、よく使われる設計を一般化された形でまとめたものに過ぎない。
そのため、具体的な実装を提供するものではなく、
あくまでもコンセプトとして参照されることが意図されている。
つまり、サンプルコードは、実装例に過ぎない。

1380
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:42:01  ID:w6fnMNqO.net(8)
>パターンは機能じゃないよ。設計。

それで、その設計パターンとは合致しないけど
同等の機能や目的を満たす他の設計はあり得る
ってことでしょ?
俺の言ってることと一緒だね

1381
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:44:00  ID:fESKb5E9.net(2)
ID:jTAWnEUaを教育してあげる義務は我々には無い

1382
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:45:06  ID:jTAWnEUa.net(44)
>599
わざわざ複雑にしないでいいよw

やりたいことがある。
でも説明するのが面倒くさい。

じゃあ「デコレーターパターン」と呼びましょう。

これで話は通じてるじゃん。
だからこれだけの情報でコードを書くことができる。

そのデコレーターパターンを
クロージャーで実装したんでしょ?
そういえば良いんだよ。

1383
デフォルトの名無しさん[sage]   投稿日:2016/08/04 00:48:34  ID:jTAWnEUa.net(44)
>600
じゃあ一緒に勉強していきましょう(笑)

http://www.techscore.com/tech/DesignPattern/foundation/foundation1.htm...#dp0-2

> 前章でも説明したとおり、デザインパターンとは、「よく出会う問題とそれにうまく対処するための設計」を
> まとめたものです。 デザインパターンを利用するメリットとして、最初にあげられるのが、
> 「再利用性の高い柔軟な設計ができる」という点です。各パターンには、多くの知恵が凝縮されています。
> これまでは、設計者の直感や経験などに依存していた設計が、デザインパターンを導入することで、
> 初心者でも先人たちが詰め込んだ「知恵」を利用した設計をすることが可能となります。
> また、先人たちの知恵を参考にすることで、設計力の向上も期待できます。
>
> 次のメリットは、「技術者どうしの意思疎通が容易になる」ことが挙げられます。
> デザインパターンを習得している技術者どうしであれば、設計について相談するとき
> 「Singleton パターンで行きましょう」とか「Strategy パターンが応用できるのではないでしょうか」と
> いうようにパターン名で設計の概要の合意を取ることが可能です。デザインパターンを
> 習得していない技術者には「こんなクラスを作って、このクラスはこんな役割を持っていて・・・。」と
> 延々と説明しなければなりません。このように、デザインパターンを学習しておくことで
> 開発者どうしの意思疎通がスムースになるのです。

あなたは何で勉強していますか?

1384
デフォルトの名無しさん[sage]   投稿日:2016/08/04 01:13:23  ID:w6fnMNqO.net(8)
話をややこしくしているのはあなたです

>パターンは機能じゃないよ。設計。

↑これは君が言ったことだよね

その上で俺は、同等の機能を持った、違ったデザインなんじゃね?って言ってるわけ

機能が同じであっても、同じデザインパターンとは限らない
何故なら、デザインパターンは機能じゃないから、設計のパターンだから
↑君の言ってることと全く同じだよね

だから同じ機能だけど、違った設計パターンであり
同じデザインパターンに属さない設計は有る
ということを君は認めているということ

1385
デフォルトの名無しさん[sage]   投稿日:2016/08/04 01:43:58  ID:w6fnMNqO.net(8)
デザインパターンは機能では無く、よくある設計パターンに名前を付けたもの
ってのは正に君が自分で言ったことであって
それは俺も了承している

だから同じ機能であっても、それだけで同じデザインパターンとは言えないよね
と俺は言ってるわけ
なぜならデザインパターンは機能では無いから(君の言ったことだよね)

そもそも俺とお前とのやり取りに、何のとどこおりも無い
俺は、>596で同等の機能を別の設計で実装したんじゃないか、と言い
お前は>597でデザインパターンの分類は機能で決まるものではなく設計で決まる、と言っている
合わせると、「同等の機能であっても同じデザインパターンであるとは限らない、設計で決まる」
という結論が得られる

1386
デフォルトの名無しさん[sage]   投稿日:2016/08/04 01:56:34  ID:tMKvO+zV.net(2)
デコレータパターンの解決できる問題領域は他の(オブジェクト指向でない)方法でもっと簡潔に書ける、のはいいだろうか。

これと同じことが他のデザインパターンでもできるんじゃね?という主張だったと思うんだが。

Singletonは言語によって容易に達成できるものもあればそうでない言語もあるが、そう難しくは無いはず。
OCamlだったらmutable valueを持ったモジュール使えば同等のことが実現できる。
Adapterパターンも変更できない物がオブジェクトだったら関数1つで済むし、
モジュールだったらファンクタ使えば良い。

これを続けていけばデザインパターンがOOPの表現力の低さを解決する妥協案である、と示せる気がするが、
逆にOOPでデザパタ使うのが一番簡潔になる問題を探す方が難しいかもね。

1387
デフォルトの名無しさん[sage]   投稿日:2016/08/04 03:16:53  ID:jTAWnEUa.net(44)
やっぱりデザインパターンを
実装パターンと勘違いしているとしか思えないな。

まず大前提としてデザインパターンに言語は関係ない。
だから言語は関係なく設計の話、
オブジェクト指向での設計の話を考える。

そうするとそこにデザインパターンが出てくる
ここまでで言語の話は出てこないから
当然実装の話もでてこないんだよ。

1388
デフォルトの名無しさん[sage]   投稿日:2016/08/04 03:18:24  ID:jTAWnEUa.net(44)
OOPじゃなくてC言語でも当てはまる話だよね。
シングルトンやデコレータなどは。

C言語であってもオブジェクト指向で設計していれば
自然とデザインパターンは出てくる。

1389
デフォルトの名無しさん[sage]   投稿日:2016/08/04 06:27:25  ID:iDV12Qqy.net(10)
>605
だから、GoFはSmalltalkなら簡単に記述できる構造や機能を
JavaやC++の表現力で解決する妥協案を集めたものなの。

JavaやC++の表現能力や抽象度が低いことを勝手にOOPの表現能力の低さにすり替えるな。

1390
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:14:32  ID:jTAWnEUa.net(44)
>608
それはオレオレ定義ですよね。

1391
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:31:36  ID:0aO0sFCL.net(26)
デザパタの実装はいろいろあっていいし、言語によって簡単に書けたりそもそも必要なかったりもする。


「オブジェクト指向における再利用のためのデザインパターン」←GoFのデザパタ提唱本ね。念のため。

プログラミング言語の選択は重要である。なぜなら、どの言語を使うかによってどのような観点でデ
ザインパターンをまとめるかが違ってくるからである。我々のパターンはSmalltalk/C+十レベルの言
語形態を想定している。その選択によって、容易に実現できることとできないことが決まる。たとえば、
もし、我々が手続き型言語を想定していれば、Inheritance(継承)、Encapsuladon(カプセル化)、
Polymorphism(ポリモルフィズム)といったデザインパターンを組み入れたであろう。また、我々のパタ
ーンの中には、あまリー般的でない言語によって直接サポートされているものもある。たとえば、CLOS
はマルチメソッドを有しているので、Visitorパターン(P.53)のようなパターンは必要性がなくなるの
である。実際のところ、SmalltalkとC十+の間にも違いがあり、どちらの言語を使うとより簡単に表現
できるかは、パターンによっても違ってくる(例としては、Iteratorパターン(P.275)を参照)。

1392
デフォルトの名無しさん[]   投稿日:2016/08/04 09:33:28  ID:IwXa2U8x.net(6)
内容を理解してないから例にある記述方法しか受け付けないんだよ。

1393
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:33:48  ID:jTAWnEUa.net(44)
> だから、GoFはSmalltalkなら簡単に記述できる構造や機能を
> JavaやC++の表現力で解決する妥協案を集めたものなの。

じゃあなんでこんな本が存在するんですか?w

Rubyによるデザインパターン-Russ-Olsen/
http://www.amazon.co.jp/dp/4894712857/

JavaScriptデザインパターン
https://www.oreilly.co.jp/books/9784873116181/

The Design Patterns Smalltalk Companion
https://www.amazon.com/dp/0201184621

1394
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:34:24  ID:0aO0sFCL.net(26)
>610
あ。引用部分は自炊本の OCR のコピペなんで、タイポは脳内補完ねがいます。

1395
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:35:44  ID:0aO0sFCL.net(26)
>612
GoF も「Smalltalk では簡単に記述できるものもある」とは言っているけど、
ぜんぶがぜんぶとは言っていないよね。

1396
デフォルトの名無しさん[]   投稿日:2016/08/04 09:35:54  ID:IwXa2U8x.net(6)
>612
おまいみたいなバカに本を売り付ける為だろw

1397
デフォルトの名無しさん[sage]   投稿日:2016/08/04 09:38:22  ID:jTAWnEUa.net(44)
>615
え?捨て台詞?w

1398
デフォルトの名無しさん[sage]   投稿日:2016/08/04 10:07:48  ID:e/09ny1R.net(2)
これはまさに捨て台詞で十分な一例。

1399
デフォルトの名無しさん[sage]   投稿日:2016/08/04 10:14:03  ID:0aO0sFCL.net(26)
> だから、GoFはSmalltalkなら簡単に記述できる構造や機能を
> JavaやC++の表現力で解決する妥協案を集めたものなの。

Smalltalkを好意的にとらえて持ち上げてくれるのは、狭い視野で意味なし認定しちゃう人たちよりは
ファンとしてはありがたいけど、これはさすがにオーバーエスティメートだし、
もうちょっとSmalltalkならではのアドバンテージを学んでから、適切な持ち上げ方をしてほしい…

1400
デフォルトの名無しさん[sage]   投稿日:2016/08/04 10:47:43  ID:iDV12Qqy.net(10)
「GoFは、」と、「デザインパターンは、」の区別がつかない人たちと技術を語るのは非常に困難である。

1401
デフォルトの名無しさん[sage]   投稿日:2016/08/04 11:37:47  ID:0aO0sFCL.net(26)
>619

もしそうだとしても、少なくとも>591は「GoFの(デコレーター)」と明記すべきですよね

1402
デフォルトの名無しさん[sage]   投稿日:2016/08/04 12:27:01  ID:CY/jwgqy.net(2)
smalltalkって簡単に色々できるんでしょ?
なんで現代でメジャーじゃないの?

1403
デフォルトの名無しさん[]   投稿日:2016/08/04 12:30:59  ID:IwXa2U8x.net(6)
日本語の方が優れてるのに、世界じゃ日本人しか使ってないだろ?

1404
デフォルトの名無しさん[sage]   投稿日:2016/08/04 12:31:27  ID:79cTVfxr.net(2)
MSがVisual Smalltalkをつくらなかったから

1405
デフォルトの名無しさん[sage]   投稿日:2016/08/04 12:57:32  ID:iDV12Qqy.net(10)
>620
GoFの定義如何に関わらず、>546はデコレータパターンの実装ではないのだが?

1406
デフォルトの名無しさん[sage]   投稿日:2016/08/04 13:05:00  ID:rDDGHvQu.net(2)
はやく、
人間クラスと美少女クラスの問題に
たどり着いてくれよ。

1407
デフォルトの名無しさん[sage]   投稿日:2016/08/04 13:16:23  ID:0aO0sFCL.net(26)
>624
だとするとちょっと分からないのですが、
あなたの言う「Smalltalkなら簡単に記述できる構造や機能」で実現された
デコレーターパターン(GoFの定義如何に関わらない)というのを提示してもらうことはできますか?
Smalltalk は書けないということでしたら、端的に方針だけ示してもらえればこちらで書きますので。

そもそも Smalltalk ではデコレーターパターンが不要(なので、実装はナンセンス)とのお考えでしたら
代替として Smalltalk 組み込みのどういう構造や機能を使うかを示してもらえればさいわいです。

1408
デフォルトの名無しさん[sage]   投稿日:2016/08/04 14:01:27  ID:gwNa+xfa.net(10)
つか、>546のruby版って一体何?
デコレータパターンのつもり?

1409
デフォルトの名無しさん[sage]   投稿日:2016/08/04 14:13:24  ID:0aO0sFCL.net(26)
>627
自分にはウィキペのデコレーターにあるJavaの例の要求仕様は満たしているように見えるけど。
具体的にはどこが不満?

1410
デフォルトの名無しさん[sage]   投稿日:2016/08/04 14:41:37  ID:gwNa+xfa.net(10)
>628
あ、デコレータパターンの実装だったんだ。
同じ感じでこれ実装できる?
class Log
def output(s)
puts s
end
end

class TimeStampLog
def initialize(log)
@log = log
end

def output(s)
@log.output "#{Time.now} #{s}"
end
end

class PidLog
def initialize(log)
@log = log
@pid = Process.pid
end

def output(s)
@log.output "[#{@pid}] #{s}"
end
end

1411
デフォルトの名無しさん[sage]   投稿日:2016/08/04 14:42:24  ID:gwNa+xfa.net(10)
log = TimeStampLog.new(PidLog.new(Log.new))
log.output 'aaa'
log.output 'bbb'

log2 = PidLog.new(TimeStampLog.new(Log.new))
log2.output 'aaa'
log2.output 'bbb'

結果:
[24968] 2016-08-04 14:41:58 +0900 aaa
[24968] 2016-08-04 14:41:58 +0900 bbb
2016-08-04 14:41:58 +0900 [24968] aaa
2016-08-04 14:41:58 +0900 [24968] bbb

1412
デフォルトの名無しさん[sage]   投稿日:2016/08/04 16:18:58  ID:0aO0sFCL.net(26)
>629

これでいい?

http://ideone.com/WGTiOD

1413
デフォルトの名無しさん[sage]   投稿日:2016/08/04 16:59:33  ID:gwNa+xfa.net(10)
>631
なんか実装手段が違ってきてますが・・・。

>546のruby版はいったいどういう意図なのかが知りたいんだけど。
「rubyでclosureを使えばデコレータパターン同等のことができる」とか、そういう「意図」。

1414
デフォルトの名無しさん[sage]   投稿日:2016/08/04 17:09:10  ID:0aO0sFCL.net(26)
>632
> なんか実装手段が違ってきてますが・・・。

本質部分は変えてないでしょ
変えたのも、クラスを直にいじるか、モジュールをprependするかくらいなもので


> closureを使えばデコレータパターン同等のことができる

>540,545,546 の流れで、件のコードにそれ以外の意図を思いつくなら逆に聞きたい

1415
デフォルトの名無しさん[sage]   投稿日:2016/08/04 17:41:28  ID:gwNa+xfa.net(10)
>633
うまく説明できないので、最後まで残っている違和感だけを説明して終わる。

WikipediaのDoublePriceクラスで、何か振る舞いを変えようと思えばDoublePriceクラスのみを変更すればいい。
DecoratorTestクラスの変更もしなくていい。

一方、>546のコードだとそうはいかない。
これを「デコレータパターンを実装している」といっていいのか?
というのが俺の違和感。
まあ、それが本質なのか本質じゃないのかはわからんが。

1416
デフォルトの名無しさん[sage]   投稿日:2016/08/04 18:07:30  ID:iDV12Qqy.net(10)
>626
だーかーらー、

デコレータパターンという、修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで型に互換性を持たせる、というバッドノウハウは静的型OOPLのためのものにすぎなくて、
同等の機能はSmalltalkでクロージャを使った実装(当然、上記デコレータパターンの実装ではない)で実現できる。

という主張に、どうして「じゃあSmalltalkで実装したデコレータパターンはどうなんだよ」がどれだけ的外れか理解できてる?

1417
デフォルトの名無しさん[sage]   投稿日:2016/08/04 18:33:42  ID:0aO0sFCL.net(26)
>634
> 一方、>546のコードだとそうはいかない。

単純に、ideone.com/WW8gva はデコレートをテストにハードコードしているからそうなるってだけで
http://ideone.com/HOkUN1 というふうに書いておけば、デコレーターの振る舞いを変えたければ
それを定義した decorate_price.rb だけを変えれば、decorate_price_test.rb は変更不要でしょう。

1418
デフォルトの名無しさん[sage]   投稿日:2016/08/04 18:57:12  ID:0aO0sFCL.net(26)
>635
なるほど。たしかにおっしゃるとおりです。的外れなことを言ってすみません。

1419
デフォルトの名無しさん[sage]   投稿日:2016/08/04 18:59:34  ID:iP1jJ0aF.net(2)
>610
iteratorはどっちが楽なの?

1420
デフォルトの名無しさん[sage]   投稿日:2016/08/04 19:27:18  ID:0aO0sFCL.net(26)
>638
Smalltalk と C++ との比較で? それならもちろん Smalltalk です。

(同書P.289より)
Smalltalkではiteratorを明示的に定義する必要はない。標準的なコレクションクラス(Bag、
Set、Dictionary、OrderedCollection、Stringなど)で、内部iteratorのメソッドdo:を定義してい
るからである。do:はブロック(つまり、closure)を引数としてとる。

(標準的なコレクションクラスの例になぜか名前がありませんが当然Arrayも含みます。念のため。)

1421
デフォルトの名無しさん[sage]   投稿日:2016/08/04 19:40:49  ID:HlIXxJdQ.net(4)
>639
それでいうと今のC++もSTLでイテレーターが実装されてるから、
必要ないって言ってるようなもんじゃね?
別にSmalltalkが特別ってことにはならない。

1422
デフォルトの名無しさん[sage]