オブジェクト指向って自然な文法だな 3 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/02(日) 16:30:38.65ID:n7h/bBRg
前スレ
オブジェクト指向って自然な文法だな 2
http://echo.2ch.net/test/read.cgi/tech/1490506257/
2017/06/17(土) 17:38:01.77ID:hpXZLyYV
>>795
物理法則っていうのは、

例えばすべての物体は引力があるとか?
あ、これ複数のオブジェクトにまたがるんじゃなくて
個々のオブジェクトに引力があるのか

例えば、熱を加えると発火するとか?
あ、これもその物体が変化するだけか

複数のオブジェクトにまたがるメソッドってなんですかね?
2017/06/17(土) 17:40:22.96ID:hpXZLyYV
>>797
数値を入力してボタンを押すと足し算を行うのは
計算機というオブジェクトが持ってる機能ですよね?
それとも電気信号レベルの話をすれば良いのですか?

そろばんでも足し算ができますが、
もしかしてこの2つを同一のものとみなしてるのですか?
そろばんは電気信号じゃなくて物体の位置で表現するって
だけですからね。
2017/06/17(土) 18:01:41.38ID:qMkdrUOQ
アホか
数学上での足し算という「概念」の話だ
1に2を足すと3になるっていう概念上の関係性の話だ
別に現実世界に実装があるわけじゃないが、1に2を足すと3になるし、有用なんだよ
ついでに言うと、1とか2とかいう数字自体からして現実世界に実装が存在しているわけではない
1とか2はあくまで数学上の概念だ
もう本当にあほだなぁと思う、あきれて言葉も出ない
こうなったらもうエンジニアとして終わりなんだと思うし
人としても鬱病になる末路なんだろうか、知ったこっちゃないが
2017/06/17(土) 18:08:50.48ID:qMkdrUOQ
>数値を入力してボタンを押すと足し算を行うのは
>計算機というオブジェクトが持ってる機能ですよね?
>それとも電気信号レベルの話をすれば良いのですか?

この発言もかなり面白くて、この言葉通りにプログラムをすれば
すべてのメソッドはコンピュータインスタンスに紐づくことになる
computer.add(1,2); computer.func(a,b,c);ってところか?
OOだなんだいったって、実際に処理をするのは「コンピュータ」
に他ならないんだから至極当然な意見だわなwww
たしかに現実世界を模してるわ
いわゆるGODクラス、staticおじさんと同じだ
つまりもう、自分がどういう立場をとっていて何を言っているのかすら
よくわかっていない状態ということだな
病的
2017/06/17(土) 18:17:41.65ID:hpXZLyYV
>>800
> 1に2を足すと3になるっていう概念上の関係性の話だ

1という値の数値オブジェクトに
2という数値オブジェクトを引数に
数値オブジェクトの加算メソッドを呼び出すと
3という数値オブジェクトになるって話?
2017/06/17(土) 19:35:16.50ID:+xCSnEDa
>>798
引力を物体間の相互作用じゃなくてオブジェクト単体で定義される性質と思ってんの?
2017/06/17(土) 19:48:30.88ID:hpXZLyYV
>>803
そりゃそうでしょw

地球の引力を計算するには、月の存在が必要だ!
などといったら笑われるよw
2017/06/17(土) 20:34:57.52ID:qMkdrUOQ
ほらまたバカなこと言いだしたでしょ、すごいでしょ、この病気
俺がかなり煽った文体で書きこんでるのにもかかわらず
お前の援軍は誰も現れないでしょ、これが現実
頭悪すぎて他人の言っていることも自分の言っていることすら理解できないという
もうどうしようもない残念さで、誰も味方がいない

この手の人は本当にもうどうしようもなくて
かわいそうだからと周りの人が説得を試みても全くの無駄というか
普通の人が当たり前にできる思考が、どうにも理解できないらしく
必ず自分にわかる範囲で自分の領域に持ち込んで考えようとするんだが
その行為自体が間違っているってことが何故か分からないらしい
袋小路でとにかく打つ手なし
2017/06/17(土) 20:38:27.45ID:hpXZLyYV
駄文乙
2017/06/17(土) 20:44:48.25ID:qMkdrUOQ
まず引力に関して言えば、引力という力の存在は認められているが
なぜ引力という力が働くのかということは
本当のところは誰にもわからない
つまりは表面上そう見えるからそういう力があるのだろうという程度のものであり
根本的な原理は未解明なので、誰が引力を実行しているかとか考えるだけバカ

あと本質的に>>803が言いたいのは、オブジェクトが一つしかなければ
引力など定義しても無意味だし、引力の効能は性質となって表れないから
定義もされないっていう意味だろう
まぁ一般的な考え方だな
世の中は極めて相対的だしな
お金の価値ですらそうだしな
2017/06/17(土) 20:46:44.94ID:hpXZLyYV
> オブジェクトが一つしかなければ
> 引力など定義しても無意味だし、

オブジェクトが一つしかない状態に限っていえば
無意味なんだと言われましても・・・

数字だって一つしかなければ
足し算は無意味ですよ?
2017/06/17(土) 20:48:06.62ID:hpXZLyYV
あ、そうか
マルチメソッドはオブジェクトが一つしかなければ無意味だ!
って言いたいんだな。
2017/06/17(土) 21:15:05.61ID:qMkdrUOQ
わかりやすいところでWeb検索の例だと
Googleのページランクの仕組みは非常に現代的だったわな
たくさんあちこちからリンクが張られているページは有用性が高いのだろう
そして有用性の高いページからリンクが張られているページもまた有用性が
高いのだろうっていう
そんで、かつてのYAHOO方式は負けたわけだ
でも別に珍しいことではなくて、論文とかでもたくさん引用されている論文は
価値が高いってことになってるし、まぁ基本といいますか
たくさん友達のいる人は有能なんだろうってのも大体あってるし
取引先の多い企業、特に大企業との取引がある会社は信用が有るってのも
一般的な価値基準だわなぁ
資本主義に関しても、お金のような流動性のあるものに着目するっていうのが
現代的であるし、お金をどんどん回して経済を発展させようってのも
政治家の大好きな謳い文句だわな
大体世の中そういう構図になっているから、反対へ行く人や軽んじる人
もしくは君みたいに理解できない人は北朝鮮になる
ただ何事もバランスは大事なんだけど、そうはいってもどっちに軸足を置いておくか
ってのはあるわな
簡単な方の考え方は誰にでもできるし、意識する必要もないし、学ぶべき部分もないから
あまり重要視されないんだけど、本音と建て前みたいな話にもなってくるわ
ただ、とっちが建前になってどっちが本音になるかは相手とシチュエーションによるという
つまり俺もOOPを、「使う」わけだが、いつも「必要悪」という考えはある
絶えず反対のことを考えながら吟味してOOする
そのぐらいでちょうど良いバランス
ただ、本音と建前の世界なのでコンセンサスが取りにくい
hpXZLyYVみたいなのが入ってくると破たんする
いちいち面倒くさいんでLinusがC++を追い出す気持ちもわかる
OOPをおもちゃにする奴はマジで糞
2017/06/17(土) 21:26:18.74ID:qMkdrUOQ
あと、物理量としての引力、っつーか質量と、相互作用としての引力の働き
では差があるわな
しかも現実世界の引力のメカニズムは解明されていない
どういう理屈で力が働くのかとか、だれにも分からん

>例えばすべての物体は引力があるとか?
>あ、これ複数のオブジェクトにまたがるんじゃなくて
>個々のオブジェクトに引力があるのか

「個々のオブジェクトに引力がある」って何ですか?
すべての人には年齢がある、と同じノリですか?
2017/06/17(土) 21:59:39.35ID:qMkdrUOQ
>>343
あぁごめんな
ただあの人のインタビューとか読めばわかるけど
逆張り逆張り言ってる
あの人自身もRubyの筋が良いとかメインストリーム的な思想であるとは
考えてないんだよ
ただ、自分の人生の中で逆張りした場合にうまくいくことが多かったので
逆張りし続けているんだとか
だからRuby3.0でも逆張りの一種として
静的型の機能は導入しない方向を検討しているんだろうな
ただそう何度も逆張りが上手くいくとは思わないし
逆張りはしょせん逆張りだろ?あだ花というかなんというか
そういうこともあって結局Rubyはプチブームで終わった現状があるわけだし
変なことして注目を集めることはあってもそれは一過性だよ、芸人じゃあるまいし
しかも逆張りしたときに自分にとって都合がよいことが多かったってだけで
使い手のことは別に考慮されてないんだよなー
813すまそ
垢版 |
2017/06/17(土) 22:00:28.43ID:qMkdrUOQ
いわゆるこれは誤爆だな
814デフォルトの名無しさん
垢版 |
2017/06/17(土) 22:12:00.21ID:8ikdtkeK
シングルディスパッチ擁護勢ってwikipediaの多重ディスパッチのページのJavaの例を許容してるんだろうか?
2017/06/17(土) 22:54:41.66ID:ExP73Jcy
モノにこれこれの機能がある、なんていうモデリングは現実世界には適用しづらいのではないか
いわんや物理法則をや
2017/06/18(日) 00:10:58.25ID:Sub4PpSI
物理法則は存在させるなら基底クラスかシステムに仕込んで全てのオブジェクトが従うもんでしょう。
個別のふるまいレベルで弄るもんじゃないから、そもそも例えですら出てくるようなもんじゃない。
2017/06/18(日) 00:40:47.93ID:mYyShhNF
そうだね
相互作用は全部神クラスに書けばいいね
オブジェクト指向w
2017/06/18(日) 01:22:28.32ID:V3LLSwOE
>>817
割とそのアプローチで合ってる

キャットドアの出番だ
819デフォルトの名無しさん
垢版 |
2017/06/18(日) 01:35:23.79ID:LYWH9ARf
オブジェクト志向が現実のものをそのままモデル化するためにあるなんて大嘘誰が言い始めたんだ
2017/06/18(日) 01:42:11.38ID:dLIsPmeH
× オブジェクト志向が現実のものをそのままモデル化するためにある
○ 人間が自然に認識している現実のもの(オブジェクト)を使って
モデル化するから理解しやすいものが出来上がる。
821デフォルトの名無しさん
垢版 |
2017/06/18(日) 01:48:39.71ID:LYWH9ARf
オブジェクト指向は、現実世界で実現しているオブジェクトにソフトウェアの設計を合わせようとするものなんていう大嘘誰が言い始めたんだ
2017/06/18(日) 02:09:35.32ID:Sub4PpSI
「せんし」に「たたかえ」送るとプレイヤーは細かいこと指示しなくても自分で戦ってくれる。
これはあくまでモデル上でのすっきりした切り分けの話であって、こういうオブジェクト化に
「戦場で仲間に"たたかえ"ってなんだよw」とか「順番に交互に殴るのかよ」とか言ってもまったく無意味だというのに
キャットドアじじいはなんかそういうことから理解できてない知恵遅れだからね。
2017/06/18(日) 02:54:24.42ID:dLIsPmeH
オブジェクト指向の話をしていると
よく勘違いしてるやつが出てくる。


オブジェクト指向で現実世界を実現しようとするやつだ。
シミュレーションでもやらない限りそんなものは意味がない。


その逆、実現したいものを現実世界をヒントに
オブジェクト指向でモデル化するんだよ。

そうすることで現実世界という共通認識を利用して
実現したいものをわかりやすく表現することができる。
2017/06/18(日) 06:41:42.42ID:qrBB1bp9
雲をつかむような話でわからん
具体例かいてくれ
2017/06/18(日) 06:56:57.61ID:pnvlJ80w
あくまでモデルであり振る舞いをシミュレートしてるだけ
2017/06/18(日) 06:57:50.55ID:ECvs/sM3
ドア本体とそれに付属するノブの状態(「開閉」と「回す、離す」)、
ノブに付属するラッチ(固定具)の状態(ノブの回転に応じて引っ込む)
をオブジェクト指向でモデリングしてみてよ

オートクローザーやドアストッパーが設置されることも加味しつつ
827デフォルトの名無しさん
垢版 |
2017/06/18(日) 07:37:54.80ID:ZkAshefq
「たたかえ」送ってないのに勝手に雑な戦いを始めたがる「ばか」たち
2017/06/18(日) 07:37:54.40ID:pnvlJ80w
勘違いの典型
2017/06/18(日) 07:53:36.83ID:/PaBW9c2
現実世界とか言い出すといくらでも後出し要件が出てくる。
「でも現実を見てみなよ」って。
モデリング終わりがなくなってしまうわけだ。
そういうバカには5000兆円の見積書でも送りつけてやればいい。
2017/06/18(日) 08:07:11.57ID:pnvlJ80w
物事を分類整理するための手法なのだから管理する要件でない不用な要素は極力排除しないとな
2017/06/18(日) 09:07:26.63ID:GpgbwXNc
相互作用という物理では当たり前の考え方を
理解できない文系のためのモデリング
それがオブジェクト指向
2017/06/18(日) 11:56:10.30ID:dLIsPmeH
>>824
例えば>>826のようの

現実世界にある何か(ドア)をオブジェクト指向で表現してくれ
なんていう考え方がアホなんだよ。

ソフトウェアでドアを作ることがあるとしたら、
ゲームとかだろうけど、ゲームとして必要なドアを
ソフトウェアで実現するならば、オブジェクト指向が便利ですね

なぜなら、ゲーム世界のドアをオブジェクトとして実装することができるので
現実世界で我々がよく知ってるドアを参考にできるからです。

ってな具合
2017/06/18(日) 13:56:58.20ID:/PaBW9c2
文系って言い方はあれだけど、物理法則を因果関係的に捉えてるのかもな。
あれがこうしたらこれがこうなる、みたいに。
834デフォルトの名無しさん
垢版 |
2017/06/18(日) 14:23:38.73ID:ZkAshefq
理系って言い方はあれだけど、物理法則を因果何的に捉えてるの?
835理系
垢版 |
2017/06/18(日) 14:27:11.50ID:GE9zkfwM
>>834
因果応報。
2017/06/18(日) 14:30:00.44ID:dLIsPmeH
人間って何歳の頃から、現実世界を
オブジェクト指向として認識するのだろうか?

同じ人間であっても自分の母親と他人の母親は別だって
理解できるし、人間と動物の区別もついているだろう。
そして、犬はワンワン、猫はニャーニャーって鳴くことを
理解するだろう。

人間の認識とはかくもオブジェクト指向であるものだろうか
2017/06/18(日) 15:46:42.41ID:dGQ95y/Y
因果何的?
838デフォルトの名無しさん
垢版 |
2017/06/18(日) 19:18:13.12ID:M+qF4ayC
>>832
ゲームのドアなんぞ開く閉じるの状態と、開く条件(鍵とか)ぐらいだろ。

んで、自動ドア制御とかだとセンサーから信号が来た時だけ開いて、数秒したら閉じれば良い。
人が通った時の赤外線センサーか、人が挟まった時の圧力センサーかはプログラムは知る必要無い。

これらに共通のドアクラスなんぞ作って何か共通点があるの?
839デフォルトの名無しさん
垢版 |
2017/06/18(日) 19:24:10.12ID:ZkAshefq
>>838
開く閉じるの状態があるのは開口部のほうやけんど?
2017/06/18(日) 21:49:56.86ID:dGQ95y/Y
開口部ってなんですか?
2017/06/18(日) 21:51:50.67ID:dLIsPmeH
>>839
それは現実世界のドアの話だろう?

ゲームの世界のドアは、現実世界を参考にできるが
ゲーム特有のドアという仕様を作る。

3Dゲームであれば、ドアには開く閉じるという状態は必要ないだろう
なぜなら物体をすり抜けられないという仕様と
蝶番を支点にドアを動かせるという仕様があればよいからだ

だけど2D RPGみたいなドアであれば、ドアの状態というものがあってもよい
開いているドアであれば、その上を移動することができ、
取っじているドアであれば、その上に移動することはできない。

このようにオブジェクト指向は現実世界の物シミュレートためのものじゃなくて
作りたい仕様を、みんなが持っている現実世界の共通認識を使って
わかりやすくする表現するための技術なんだよ

それにしても現実世界のドアについての人間の認識ってのも面白いよな。
ドアからすれば、物理的にはどういう位置にあるかでしかないのに、
人間は「開いている」「閉まっている」というドアの状態として認識しているわけだ
この認識、利用しない手はない!
842デフォルトの名無しさん
垢版 |
2017/06/18(日) 21:54:52.64ID:ZkAshefq
>>841
開口部の状態だって教わったのに意地はっちゃってw
ドアオブジェクトなんてそもそも必要ないんや
こーゆーのをモデリングゆーんやわかったかボケカス
2017/06/18(日) 21:57:16.87ID:dLIsPmeH
>>842
開口部って何って聞かれてるんだから
質問に答えなよw
2017/06/18(日) 22:01:44.39ID:dLIsPmeH
アスペだと「ドアが開いている」ときいて

ドアが開いているとか意味がわからない
開口部があってそこがドアというもので塞がれているかどうかだ。
だから「開口部がドアで塞がれていない」と言うべきだ

とか思うのだろうか?

アスペには常人の共通認識は通用しない
オブジェクト指向には不向きな人間だなw
845デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:09:09.19ID:ZkAshefq
>>844
なあ?お前の考えた最強の抽象化ってぜんぜん抽象化じゃなかっただろ?
恥ずかしいけどこれで一つ賢くなったんだ
次はもう少し長くドヤれるようになるじゃないかw
2017/06/18(日) 22:11:24.68ID:dLIsPmeH
>>845
誰が最強の抽象化とか言ったんだ?
お前はだれと戦ってるんだ?

俺の言ってることに何一つ反論して無くて
俺のほうが正しかったと主張してるだけ
妄想も大概にしろよ。
847デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:14:21.01ID:ZkAshefq
>>846
え?お前なんか意味のある事言ってたの?
じゃあもう一度言ってみ?聞いてやるからw
2017/06/18(日) 22:15:23.98ID:dLIsPmeH
抽象化というのは本質的な所

ドアには開いている・閉じているという
状態があると認識することだよ。


本当は開口部だーとか細かいことに
こだわるのは抽象化とは逆の考え


はい論破♪
2017/06/18(日) 22:15:46.63ID:dLIsPmeH
>>847
もう一度言えばいいの?

それは現実世界のドアの話だろう?

ゲームの世界のドアは、現実世界を参考にできるが
ゲーム特有のドアという仕様を作る。

3Dゲームであれば、ドアには開く閉じるという状態は必要ないだろう
なぜなら物体をすり抜けられないという仕様と
蝶番を支点にドアを動かせるという仕様があればよいからだ

だけど2D RPGみたいなドアであれば、ドアの状態というものがあってもよい
開いているドアであれば、その上を移動することができ、
取っじているドアであれば、その上に移動することはできない。

このようにオブジェクト指向は現実世界の物シミュレートためのものじゃなくて
作りたい仕様を、みんなが持っている現実世界の共通認識を使って
わかりやすくする表現するための技術なんだよ

それにしても現実世界のドアについての人間の認識ってのも面白いよな。
ドアからすれば、物理的にはどういう位置にあるかでしかないのに、
人間は「開いている」「閉まっている」というドアの状態として認識しているわけだ
この認識、利用しない手はない!
2017/06/18(日) 22:18:27.67ID:dLIsPmeH
ドアが開いている、閉じているという話をする時
開口部なんて細かい枝葉は誰も考えてないって所が重要だね。

まあ密室殺人で警察に聞かれた時に
この部屋の開口部はドアで塞がれていましたなんて
言わないのと同じこと。
851デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:22:00.29ID:ZkAshefq
>>848
ドアって開口部を制御するための具体的実装の一例にすぎんのだかw
抽象とは真逆の概念ですよ?オブジェクトハカセw
2017/06/18(日) 22:28:26.80ID:dLIsPmeH
>>851
だから、お前、オブジェクト指向を現実世界をシミュレートするために使うなって
それが間違ったオブジェクト指向の解釈なんだよ。

ドアを抽象化して考えろ。細かい枝葉は取り除け

抽象化
https://ja.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E5%8C%96
> 抽象化(ちゅうしょうか、英: Abstraction、独: Abstraktion)とは、
> 思考における手法のひとつで、対象から注目すべき要素を重点的に抜き出して他は無視する方法である。

https://goo.gl/soXPyb
> ▼誤解されがちな、「抽象化」という言葉
> 結構な人々が抽象化を「曖昧にすること」とか思っていて、抽象絵画は「なんか曖昧な絵」みたく思っているので始末に負えない。
> まず「抽象(abstraction)」っていうのは、「物事の共通部分を抽出して把握すること」だ。
> 「対象物の特徴をつかみ、枝葉を切り捨てた本質をとらえる」思考力を抽象化思考力と呼びます。
> コンサルタントが「抽象度をあげろ」というときには、実は「抽象的にしろ」とは言っていません。「概念化して語れ」と言っているのです。
2017/06/18(日) 22:30:11.78ID:dLIsPmeH
具体的実装(抽象化の逆)とか言ってるからこれも引用しておくべきだったw

> 抽象化とは、一般化(上位の概念に包括)することです。例えば亀→両生類→動物→生物という具合に、上位の分類の言葉に置き換えていくことです。
854デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:32:10.52ID:ZkAshefq
>>852
お前が抽象化できんかったからドアが残ったって言いたいんだろ?
知ってるってw
ハカセそれ抽象化ちゃうw細分化やw
2017/06/18(日) 22:33:52.30ID:dLIsPmeH
>>854
ドアが残ったってなんだ?
またお前が言い出した言葉を
俺が言ったことにしたいのか?

お前が言い出した言葉に対して、「知ってるってw」って
なに自分で自分にレスしてるんだ?

妄想も大概にしろ
2017/06/18(日) 22:34:51.41ID:dLIsPmeH
「ドアが残った」 = それは細分化や

これも意味がわからん。
こいつバカなのか?
857デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:38:08.14ID:LYWH9ARf
双方何が言いたいのかわからん
858デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:38:14.46ID:ZkAshefq
>>855
端的に言ってお前支離滅裂だぞ
少なくとも今夜俺は
お前に抽象化のなんたるかを垣間見せてやったのだから
明日からもう少しまじめに勉強しろよ
まあ今夜は恥ずかしくて顔から火がでてるだろうから
多少の発狂は仕方ないけどなw
2017/06/18(日) 22:40:28.64ID:dLIsPmeH
> お前に抽象化のなんたるかを垣間見せてやったのだから

え? どれ?
具体的実装の話をすること?

それは抽象化の逆だけど?
2017/06/18(日) 22:42:55.55ID:dLIsPmeH
これ、自分のことを話してるのかな?

> 端的に言ってお前支離滅裂だぞ
ID:ZkAshefq が支離滅裂

> 少なくとも今夜俺は
> お前に抽象化のなんたるかを垣間見せてやったのだから
ID:ZkAshefq に俺が見せてやった

> 明日からもう少しまじめに勉強しろよ
ID:ZkAshefq が勉強しろ

> まあ今夜は恥ずかしくて顔から火がでてるだろうから
ID:ZkAshefq が恥ずかしくて顔から火が出てる

> 多少の発狂は仕方ないけどなw
ID:ZkAshefq が発狂している。


本当は自分のことなのに、それをごかます
幼稚なやつがやる手段だなぁ
861デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:44:07.16ID:ZkAshefq
コイツは根本的に馬鹿なのか?
はたまた恥ずかしすぎてトボケてるだけなのか?
いまのところ前者が優勢ですけどねw
2017/06/18(日) 22:44:08.65ID:dLIsPmeH
>>857
俺が言いたいのはこれ(三度目のコピペ。二度目はID:ZkAshefq にもう一度書けと言われて書いたのに無視されたw)

それは現実世界のドアの話だろう?

ゲームの世界のドアは、現実世界を参考にできるが
ゲーム特有のドアという仕様を作る。

3Dゲームであれば、ドアには開く閉じるという状態は必要ないだろう
なぜなら物体をすり抜けられないという仕様と
蝶番を支点にドアを動かせるという仕様があればよいからだ

だけど2D RPGみたいなドアであれば、ドアの状態というものがあってもよい
開いているドアであれば、その上を移動することができ、
取っじているドアであれば、その上に移動することはできない。

このようにオブジェクト指向は現実世界の物シミュレートためのものじゃなくて
作りたい仕様を、みんなが持っている現実世界の共通認識を使って
わかりやすくする表現するための技術なんだよ

それにしても現実世界のドアについての人間の認識ってのも面白いよな。
ドアからすれば、物理的にはどういう位置にあるかでしかないのに、
人間は「開いている」「閉まっている」というドアの状態として認識しているわけだ
この認識、利用しない手はない!
2017/06/18(日) 22:45:29.07ID:dLIsPmeH
>>857
オブジェクト指向は抽象化して考えるためのものでもあって
どういう具体的実装であるかは置いといて、
「ドアが開いてる・開いてる」という状態で表現できるわけよ
864デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:50:00.87ID:ZkAshefq
もはや完全に意地になってるなw
学習できない奴の特徴まんまw
2017/06/18(日) 22:52:43.90ID:dLIsPmeH
>>864
ごめん。もうお前にレスはしてないんだw
2017/06/18(日) 23:21:09.03ID:dGQ95y/Y
開口部ってなんですか?
ドアとどう関係があるんですか?
867デフォルトの名無しさん
垢版 |
2017/06/18(日) 23:30:56.67ID:LYWH9ARf
おまえらがどう対立してるのかがわからん
オブジェクト志向には色々な側面があるんだし、その二つは別に対立せん気がするが
2017/06/18(日) 23:35:28.24ID:dLIsPmeH
対立じゃなくてオブジェクト指向は現実世界のものをシミュレート
するものじゃないってことを言ってるだけだよ。

オブジェクト指向で現実世界のあれができないこれができないっていうのは
的外れだってこと

ま、そもそもオブジェクト指向で「ドア」を実装するにはどうすればいいだ?って
ドアというオブジェクトを持ってきてる時点で、
オブジェクト指向は人間の認識と相性が良いんだってわかるんだけどねw
869デフォルトの名無しさん
垢版 |
2017/06/18(日) 23:57:27.96ID:LYWH9ARf
あ、違うID:ZkAshefqは俺にレスしてないのか
すまんやっぱり>>867はなしで
>>868
主張のまとまりがいまいち良くないけど、好意的に解釈する限り言ってることは間違ってないと思うよ
2017/06/19(月) 01:13:21.02ID:9pZo4esm
どっちも主張がよーわからんが
ID:ZkAshefqを抽出したらびっくりするほどなんにも言ってなかった。
「ばーかばーかおれの勝ちィ!」しか書いてなくね?
なんでスレ進んでんの?
2017/06/19(月) 01:19:07.10ID:JcFW0m+v
https://ja.wikipedia.org/wiki/Simula
Simula 67 ではオブジェクト、 クラス、サブクラス、継承、動的束縛(仮想関数)、
コルーチン、 ディスクリートイベントシミュレーション、ガベージコレクションの機能をもち、
オブジェクト指向プログラミングの基本概念はすべてここで発案されているといえる。

Simula はプログラミングパラダイムとして最初のオブジェクト指向言語であると考えられる。
その名前が示すように Simula はシミュレーションを行うために設計され、
その必要性から今日のオブジェクト指向言語で使われる多くの機能のためのフレームワークを提供した。
なお、Simula 当時「オブジェクト指向」という言葉はまだない。
この用語はアラン・ケイが Simula の概念として70年代ごろに使い出したのが始まりといわれている。
従ってその意味では Simula が世界最初のオブジェクト指向言語であり、
Simula は「オブジェクト指向として再認識が可能な最古の言語」ということができる。
2017/06/19(月) 01:25:04.44ID:l1liGy+g
>>870
> ID:ZkAshefqを抽出したらびっくりするほどなんにも言ってなかった。
だろ?w
2017/06/19(月) 01:27:16.04ID:l1liGy+g
志村 けんは、日本のコメディアン、お笑いタレント、司会者。ザ・ドリフターズのメンバー。
生年月日: 1950年2月20日 (67歳)


https://ja.wikipedia.org/wiki/Simula
志村(67) ではオブジェクト、 クラス、サブクラス、継承、動的束縛(仮想関数)、
コルーチン、 ディスクリートイベントシミュレーション、ガベージコレクションの機能をもち、
オブジェクト指向プログラミングの基本概念はすべてここで発案されているといえる。

志村 はプログラミングパラダイムとして最初のオブジェクト指向言語であると考えられる。
その名前が示すように 志村 はシミュレーションを行うために設計され、
その必要性から今日のオブジェクト指向言語で使われる多くの機能のためのフレームワークを提供した。
なお、志村 当時「オブジェクト指向」という言葉はまだない。
この用語は 荒井・注 が 志村 の概念として70年代ごろに使い出したのが始まりといわれている。
従ってその意味では 志村 が世界最初のオブジェクト指向言語であり、
志村 は「オブジェクト指向として再認識が可能な最古の言語」ということができる。
2017/06/19(月) 01:28:38.27ID:l1liGy+g
>>871
シミュレーションをするための言語を作ると
オブジェクト指向になるってのは
やはりオブジェクト指向は現実世界の人間の認識と
相性がいいってことなんだろうね。
2017/06/19(月) 01:44:56.66ID:9pZo4esm
>>871
毎回思ってることだけど、アランケイのオブジェクト指向のポイントは
むしろメッセージセンドでオブジェクトに命令を送るという方式の発案なので
(さらにいうと、インスタンスを作るのにクラスそのものに「複製を作れ」と命令して作らせる
言語システム(予約語)から離れてクラスが自律的に動く思想の方)
Simulaはかなり毛色の違うオブジェクト指向だし
言ってしまうとこれがカンチガイされたままオブジェクト指向だと思われた結果
C++というそびえ立つクソの山が産まれて業界を何十年も混乱に陥れた元凶だから
Simula持ってきて「オブジェクト指向とは〜」ってやった瞬間

お話にならないぐらいオブジェクト指向を理解していないバカが来た。

で話が終わるんだけど。
2017/06/19(月) 01:57:02.13ID:l1liGy+g
そういやエージェント指向ってどうなんたんかな?
昔、15年ぐらい前に学生だった時に先生がこれからはエージェント指向だって言ってたんだが
その説明きいて、俺はそれってオブジェクト指向+メタデータじゃね?程度に思ってた。

オブジェクトが自律的に仕事をする。みたいな事を言ってたんだが、
それを実現するにはどんな要望であっても、それを実現するためのモジュールが存在し
その要望を完璧に判断してモジュールを選択できるAIでも搭載してなきゃできないような
ものだったのでエージェント指向でもなんでもないし実現は不可能と思っていたが。

まあエージェント指向とやらにはさっさと見切りをつけたので
俺が間違って理解してるんだと思うけどねw
でも事実としてオブジェクト指向を置き換えるものにはならなかったようだね。
2017/06/19(月) 02:06:51.24ID:l1liGy+g
>>875
シミュレーションをするために言語を作ったけど、
本来の用途としてはあまり使われず、(よくよく考えてみれば
シミュレーションなんてそんなにするか?ってことなんだろう)

副産物として生まれてオブジェクト指向の技術の基礎とでも
呼べるようなものが独立しそれが洗練されてオブジェクト指向言語
として生まれ変わったってことなんかね。

UMLも似たようなもんだよね。元々はオブジェクト指向分析や設計の方法を
色んな人が考えていたけど、それぞれを比較検討する時、それぞれで図の書き方が
異なっていたので、分析や設計方法が色々あるのはわかる。だけどせめて図の書き方
ぐらいは統一しようじゃないかって生まれたもの。

でもオブジェクト指向の分析や設計方法はみんな飽きてしまったのか話題にならなくなり
UMLという図の書き方だけが広まったと。
2017/06/19(月) 08:54:27.70ID:1iazHqgp
歴史的な起源に拘らない人と、
「もともとはこうだったのに変質してしまった。クソが!」と思う人がいるのだなあ。

と感じました、まる
2017/06/19(月) 10:38:29.48ID:MTmJn+ZD
歴史的な起源に拘らないとsmalltalkerなんてやってられないよ
2017/06/19(月) 11:06:11.95ID:j3p5BJjc
ストラウストラップとケイの“オブジェクト指向”は別物なので混同せずちゃんと区別したほうがよい

ストラウストラップの“オブジェクト指向”はSimulaスタイルのクラスを抽象データ型(ADT)とみなして使うアイデア
抽象データ型の提唱者のリスコフ、Simulaの設計者たち(ダールとニガート)はもちろん、メイヤーも同様のアイデア同時期に提示している
抽象データ型というのは簡単にいうと「ユーザー定義型」のことで言語組み込みの具象データ型に対してこう呼ばれる
OOPの古典的三点セット「カプセル化・継承・ポリモーフィズム」に象徴されていて
カプセル化は抽象データ型の要件、継承とポリモーフィズムはクラスを使う際のオマケの機能を表わしている
ただ、早々にクックらにより継承を使ってサブタイプを表現することには問題が生じうることが指摘されていて
また動的型のダックタイピングのような自由度を得るためにインターフェース(プロトコルなど別の呼び名も)が考案され
現在はそれが汎用されている

一方、ケイの“オブジェクト指向”はSimulaのオブジェクトにメッセージの受け手を担当させるアイデア
メッセージングはあくまで方便で狙いはその先の設計・実装・運用等、あらゆる局面での「遅延結合の徹底」
遅延結合というと実装のみに固執してしまう人がいるから「決定の遅延」といった方がよいかも
Smalltalk-72はこのアイデアを元に、クラスはJSのクラスのような関数っぽい性質で実現された
このときはメソッドも関数というよりLISP等のリーダーマクロのようなメッセージとなるトークンストリームを順次処理する手順が記述された
次の世代のSmalltalk-76からはSimulaスタイルのクラスが取り込まれ、メソッドも単なる関数になり
前者のオブジェクト指向もそれなりに意識されるようになったので同じSmalltalkでも
Smalltalk-72は純粋なメッセージングのOOPL、Smalltalk-76以降はADPとメッセージングのキメラと考えた方がよいので
もしケイのメッセージングのOOPの考え方に興味があるならPharoやSqueakのような最新のSmalltalkではなく
エミュレーター等で提供されているSmalltalk-72をやるほうがいい
https://ubiteku.oinker.me/2016/05/09/what-is-oo-all-about/#comment-65
ちなみにアクター理論はこのアイデアを実行時の並行性に応用し定式化を試みたもの
2017/06/19(月) 11:42:12.84ID:1iazHqgp
実用的な言語の話をしている
2017/06/19(月) 16:38:13.20ID:LZvrLoRE
決定の遅延とは即ち実行時に決定するということ
つまりデータと処理の抽象化を徹底するということだ
2017/06/19(月) 16:49:21.59ID:LZvrLoRE
データの抽象化を徹底すると型とクラスが無くなる
型によってデータ長も処理の方法も変わるのが煩雑さの根源だ
2017/06/19(月) 19:55:43.12ID:/Mgza80D
もともと、コンピュータが巨大にそしてネットワークで接続されると
離れたユニットに「この処理をお願いします」と頼むことになって
シーケンシャルな処理待ちしていたらコンピュータが止まっちゃうし
周りの環境も実行時に刻々と変化してゆくから
オブジェクトにはある種の他と切り離された自律性がいるよね。なのに
なぜか21世紀のインターネット時代に「いいや!カッチリ制御して
他に影響が出ないように書ければこの『世界が勝手に変化するバグ』は排除できるはずだ!」
という謎のカルトが一部で流行り出してるのがどうにもよくわからないw
885デフォルトの名無しさん
垢版 |
2017/06/19(月) 21:05:37.05ID:KwjLNCYt
ガイジ
886デフォルトの名無しさん
垢版 |
2017/06/19(月) 23:09:44.33ID:g4cBDSU6
歴史的にオブジェクト指向の後にテンプレートとかジェネリックとか言われるのが導入されたけど、継承とかより移譲が重宝されてる辺り、ジェネリックだけで十分じゃね?って気がしなくも無い。
2017/06/19(月) 23:22:30.80ID:l1liGy+g
C++以外にテンプレートがある言語ってあるの?

C++のテンプレートは本来ジェネリック程度の機能で良かったのに
ちょっと道を外したら、意外と高度なことができることが分かっちゃって
本来の目的から大きくはずれてコンパイル時コードジェネレータみたいな
もんになっちゃったでしょ?
2017/06/19(月) 23:28:36.65ID:+dhODesl
そもそも継承なんてものの80%はゴミ
protcolとdelegateこそが至高
2017/06/19(月) 23:30:58.96ID:9w3QFpXl
そういのいいんで
2017/06/19(月) 23:33:07.34ID:xaFoAOZp
そういやこの1スレたてたガイジ最近みないね
891デフォルトの名無しさん
垢版 |
2017/06/20(火) 23:04:56.68ID:v+vDltnD
Haskellでガンガンよく使う処理を個人ライブラリ化なう。

Myfunc.hs
1:module Myfunc where
2:
3:import Data.List
4:import Text.Printf
5:
6:consnum::(Int,String) -> String
7:consnum (i,xs) = printf "%4d:%s" i xs
8:
9:fline f = unlines.f.lines
10:
11:fnumbering f = fline ((map consnum).(zip [1..]).f)
12:
13:numbering = fnumbering id
14:
15:revnumbering = fnumbering reverse
16:
17:allrevnumbering = fnumbering (reverse.map reverse)
18:
19:searchword w = fline (filter (isInfixOf w))
20:
21:putfc (f,c) = printf "%s\n%s" f c
22:
23:mulfileput fs f = mapM readFile fs >>=
24: return.(zip fs).map f >>=
25: mapM_ putfc
892デフォルトの名無しさん
垢版 |
2017/06/20(火) 23:05:26.93ID:v+vDltnD
number.hs
1:import System.Environment
2:import Myfunc
3:
4:main = getArgs >>=
5: \fs -> mulfileput fs numbering
6:
revnumber.hs
1:import System.Environment
2:import Myfunc
3:
4:main = getArgs >>=
5: \fs -> mulfileput fs revnumbering
6:
searchword.hs
1:import System.Environment
2:import Myfunc
3:
4:main = getArgs >>=
5: \(w:fs) -> mulfileput fs ((searchword w).numbering)
6:
2017/06/20(火) 23:52:17.95ID:pEbbmUs5
だからそういうのはブログで……
894デフォルトの名無しさん
垢版 |
2017/06/21(水) 00:42:37.70ID:Mt9AmAoV
ん。
だってオブジェクト指向言語使ってた時って、ここまで似たようなコード書かなくて良いくらいライブラリ化出来たことなかったんだもん。
2017/06/21(水) 00:55:18.54ID:nYB1lvTl
readFileの中身が謎だらけで怖くて使えない
896デフォルトの名無しさん
垢版 |
2017/06/21(水) 01:08:07.93ID:Mt9AmAoV
PythonやRubyのopenと大差ないと思うが。。。
嫌ならもっと低レベルの関数もあるよ?
2017/06/21(水) 07:06:46.09ID:nYB1lvTl
型クラスの仕組みが姑息
LISPのSETFと同じくらいガッカリ感ある
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況