オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net

2016/01/05(火) 02:10:25.72ID:hJUQcrkl
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
https://twitter.com/ProgrammingMono/status/665702678006140928

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

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

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

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

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

前スレ
オブジェクト指向は愚かな考え。この世は計算式 ★2
http://peace.2ch.net/test/read.cgi/tech/1450153388/
2016/08/09(火) 20:08:56.33ID:AUCg5/Tk
>>681
設計が実装を具体的に決めてしまったら設計の意味がないと思うんだよおトイレとお風呂が一緒になってますってことと具体的な便器の形とは分けられると思うんですデザインパターンっていうのはいわばそういうものでお風呂とトイレを一緒にしたら便利だよってことさ
2016/08/09(火) 20:10:54.82ID:AUCg5/Tk
>>724
おだまり便器野郎
2016/08/09(火) 20:24:12.28ID:FqlEy475
どうせ計算式をクラスにするんだろ?
2016/08/11(木) 18:28:28.20ID:vQt/3MfO
濃厚電波、完飲。
2016/08/15(月) 00:10:10.82ID:NEOTEyUk
いい加減、オブジェクト指向 vs 関数型なんていう無意味な議論やめようよ
直交する概念じゃん
関数型言語でも「本物の」オブジェクト指向プログラミングは出来るし、
最近の流行りはオブジェクト指向言語に関数型的な機能を付けることだろう
2016/08/15(月) 01:36:24.27ID:Yh7//hE4
本当のオブジェクトプログラムは、メッセージ交換だから、関数型が入る余地なんか無いけどな。
2016/08/15(月) 02:08:53.20ID:6fraHMZW
お前ら、早く本論に入れ!
美少女クラスはなぜ人間クラスを継承出来ないのよ!!!
2016/08/15(月) 03:13:33.69ID:Y0Jnfl62
美少女はクラスじゃなくて人間クラスのインスタンスで
パラメータが特定の値のものなだけだよ。

プリンセスメーカーであれば「魅力」のパラメータが
高くて「年齢」が若ければ美少女なんじゃね?
2016/08/15(月) 11:57:12.25ID:P1EAyeII
排便メソッドはどうなるんだ!
2016/08/15(月) 13:00:28.85ID:TUIKyN4z
>>729
本物…
2016/08/15(月) 13:36:04.19ID:Yh7//hE4
>>732
まあそうだな。
人間クラスの女性属性で年齢属性が十代で、
あとはいろんなパラメータがバランス良く絶妙なバランスであるだけ。
2016/08/15(月) 13:43:17.25ID:Y0Jnfl62
>>733
排便性能とでもいうパラメータ作れば良いんじゃねーの?
美少女じゃなくても排便が困難な人っているからな。
2016/08/15(月) 15:37:08.19ID:Yh7//hE4
便秘気味な美少女かw
2016/08/15(月) 16:44:15.38ID:uCi+R87y
            | 
            |  彡 ⌒ ミ 
           \ (´・ω・`)またうんこの話してる... 
             (|   |):::: 
              (γ /::::::: 
               し \:::
                  \
2016/08/15(月) 16:45:21.70ID:P1EAyeII
オブジェクト指向は愚かな考え。
排便メソッドを実装した人間クラスから美少女クラスが作れない。
2016/08/15(月) 17:02:42.33ID:NHD7YcMK
アヒルががーがーなくのではなく、がーがー鳴けばそれがアヒルなのである
うんこができればそれは人間なのである
2016/08/15(月) 17:08:50.15ID:Y0Jnfl62
オウムがガーガーなけばそれはアヒルなのである?
2016/08/15(月) 19:19:30.08ID:ATo5mwbJ
>>738
「ウンコを覗くときウンコもまたおまえを覗いているのだ。」

もうこの子は脳の端までウンコになっちゃったんだよ…
743デフォルトの名無しさん
垢版 |
2016/08/16(火) 12:32:47.23ID:nB+m5lHF
頬を紅潮させた少女のアナルは今にも決壊寸前のダムの如くヒクヒクと静かに脈打つのであった
そのアナルをまるで獲物を狙う蜥蜴の様な眼差しでジットリと凝視していたお前は…
2016/09/04(日) 22:44:30.10ID:AI4OMPbE
やはり、オブジェクト指向は愚かな考えなんでしょうか?
それはなぜですか?
2016/09/05(月) 23:26:30.97ID:2pvjX+vh
>>744
なんのメリットもないから
2016/09/10(土) 22:12:27.45ID:vL431mpn
クロージャという秘境
2016/09/11(日) 09:06:24.12ID:HdsNani4
オブジェクト指向にクロージャーが取り入れられてから、
オブジェクト指向は更に便利になった。
748デフォルトの名無しさん
垢版 |
2016/09/11(日) 09:11:08.53ID:xTqWSUIJ
どうせなら理想のクロージャの構文はどんなものか議論しよう。
美少女のウンコの話はもういいから。
749デフォルトの名無しさん
垢版 |
2016/09/11(日) 10:48:53.37ID:EVh79L2H
いや美少女うんこの方が重要だ
2016/09/11(日) 18:47:04.73ID:LruamEXh
間をとってクソージャ
2016/09/12(月) 10:17:01.19ID:WLe9OZIE
おあとがよろしいようで
2016/09/12(月) 11:18:07.22ID:DqPwyMnw
じゃあ質問
若い時は買ってでもするものな〜んじゃ?
2016/09/12(月) 11:24:36.38ID:R5hylYBo
コンビニでトイレだけ借りるのは気まずいので後で何か買って帰る
754デフォルトの名無しさん
垢版 |
2016/09/12(月) 13:15:37.24ID:zvXoPKj/
美少女を買う
2016/09/12(月) 21:03:27.94ID:p0km3lhz
>>752
http://find-travel.jp/article/2123

シンガポール初 キッズクラブ

12歳までの子供が安全に遊べます。小さい子供連れのファミリに―にはうれしい施設です。
セントーサエキスプレスの終点ビーチ駅で下車、徒歩五分ほどです。
子供は有料ですが、付き添いの大人は、無料です。
2016/09/12(月) 21:04:17.88ID:p0km3lhz
http://www.dan-b.com/tp_luna/page1_1.html

ウェーブスターライド

すべり台

もくば館の電動木馬
自走式のジェットコースター。小さなお子様でも、
大人の付き添いがあれば乗れる。
付き添いの大人は無料にしてくれる心遣いがうれしい。
2016/09/17(土) 19:06:05.53ID:iND/Jut9
オブジェクト指向と計算式という対比がまずおかしいスレ
2016/10/11(火) 13:34:51.26ID:SPhMZv+b
>>757
その前に>> 1の脳みそがオカシイ。
議論以前の話
2016/11/14(月) 16:47:20.70ID:cBDVjyju
>>733
排便メソッドつくってうんち吐き出させれば良いじゃん…
2017/03/21(火) 23:51:29.32ID:RJ2XVIqX
できの悪いプログラマはこうやってくだらんことに執着した挙げ句道を外すからな

オブジェクト指向を禁ずるのは当然だが、プログラムも規制すべきだろ
2017/05/12(金) 17:45:37.79ID:4b98WttR
外に公開するインターフェイスだけオブジェクト指向で中身は手続きとかできないの?
762デフォルトの名無しさん
垢版 |
2017/05/13(土) 00:36:36.42ID:1iFjjcJx
欲張りな事言うんじゃありません!
2017/05/13(土) 06:58:15.64ID:tunExteF
なんでもかんでもOOPしないといけないという強迫観念も新しい病気みたいなもんだ
2017/05/14(日) 02:14:38.21ID:92l7gqU0
OOPは自然な概念。
しようとしなくても自然にOOPで書いてしまう。
2017/05/14(日) 03:31:10.29ID:DFEPxXnF
んじゃ、Cでファイル読んで行毎に番号振るプログラムを自然にOOPで書いてくれ。

OOPな言語でも油断してると手続き的なコードになるのが実感。
手続き型言語や関数型言語のが自然と言えば自然。
OOPはどっちかと言うと手続き型言語の限界を超える苦肉の策。
有効ではあっても、自然ではない。
766デフォルトの名無しさん
垢版 |
2017/05/14(日) 07:58:36.42ID:HpXv37Pf
手続き型の言語使ってるんだからそりゃ書き方は自然に手続き的になるわw
2017/05/14(日) 08:01:38.88ID:FpH7uWr+
>>765
とりまなんかのOOPLで「ファイル読んで行毎に番号振る」操作の“油断した”版をideone.comあたりで晒して見せてよ
2017/05/14(日) 09:35:08.29ID:Kxs5LDLR
>>765は愚かな考え
2017/05/15(月) 00:15:06.25ID:pPIG/Itw
>>765
> Cでファイル読んで行毎に番号振るプログラム
FILE構造体使うからOOPだな。
2017/05/15(月) 03:18:59.80ID:sMDSuUUf
後での取り回しのために動作分離してオブジェクトにするんであって
なんで"その中身をオブジェクト指向で書けるか?"なんて
頓珍漢な発想が出るのかの方が不思議だよ。
2017/05/15(月) 07:10:20.57ID:fipzejMn
まぁそうだよね。関数型だって関数の中味に手続き書くだろうし
772デフォルトの名無しさん
垢版 |
2017/05/15(月) 07:18:26.21ID:Nl227Lk0
関数型言語で手続きは書けんですわ
2017/05/15(月) 09:31:45.07ID:OVQU3b0Y
んなこたーない何のためのモナドだよ
2017/05/15(月) 12:20:31.47ID:BOxxzUgK
>>771
関数型言語では手続きは書かない。
式か、式とパターンマッチやガードによる条件わけだけ。モナドもdo形式で書くと手続きっぽいけど、実際は大きな一つの式。

if/caseに似てるけど、文と式が入り乱れるのと違って全部式。
それで何が嬉しいかと言うと、正しい動作をすると言う証明が出来る。
775デフォルトの名無しさん
垢版 |
2017/05/15(月) 12:31:36.20ID:ADjMf5zc
せやね関数型言語でも中身はモナド駆使して手続き的に書くのが自然やからね

…せやろか?
2017/05/16(火) 00:16:27.17ID:HWJ+4Z2c
>>767
import sys

for i, line in enumerate(open(sys.argv[1])):
____print i, line,

Python3だとprint i, line end = ' '

ついついこう書いちゃうだろ?
でも、出力先がGUIになった途端破綻する。
そう言うのを見越して汎用的にしとかんと。
2017/05/16(火) 06:05:49.63ID:TdUcLCGW
出力先を切り替えられるようにしたい、は別の要件でしょ
778デフォルトの名無しさん
垢版 |
2017/05/16(火) 06:12:48.09ID:YL1OfOAE
>>776が全然破綻しとらん件
2017/05/19(金) 01:55:11.10ID:879cm/wV
CでOOPしてたやつって、なんかのGUIライブラリでなかったっけか?
2017/05/19(金) 10:49:17.61ID:sbMh7Sut
gtk
2017/05/22(月) 08:36:50.27ID:wGbbC49U
X
782デフォルトの名無しさん
垢版 |
2017/06/20(火) 16:22:37.74ID:AtKkt+PQ
オブジェクト指向の方が自然だと思うし好きだけどPythonやjsみたいな動的型付け言語でオブジェクト指向は無理というか無駄な気がしてきた
オブジェクト指向は副作用を限定化するためにカプセル化が必須だけど動的型付け言語だとそれが保証されない
横からいくらでもメンバの付け足しやメソッドのすげ替えができてしまう
そうなると副作用の保証ができないどころか、静的解析によるインテリセンスやエラー検出というメリットさえ捨てる羽目になる
そうなるともうオブジェクト指向で作る意味がない
クラス単位で保証ができない以上、関数で保証する他なく
必然的に関数型にせざるを得ない
2017/06/20(火) 18:50:11.59ID:8inGEH6m
「世界がどんどん変わって行くのを俺が全部コントロールして阻止しなければならない…
そうでなければ世界はバラバラになってしまう…」

「どうしたんですか?先輩」(もぐもぐ
「おお後輩!…なんだそれ?」
「売店がパンじゃなくて弁当扱い出したんですよ
ゴミかさばるから売店とこで捨てろですって。
まぁ、どうせ僕が一括して持ってくんでしょうがw」
「後輩」
「はい?」
「カレーある?」
「たしか」
「じゃあ、それ一つ」
「はい」
2017/06/21(水) 09:03:10.49ID:Y4WM7moX
オブジェクト指向と副作用の保証は関係ない
2017/07/27(木) 03:06:58.86ID:9ehpllTb
パイセン方、JS勉強したてでオブジェクト指向って言葉が出てきたばっかでよく分かってないドブネズミ以下の僕に教えて

オブジェクト指向ってプログラミングのルールとか具体的な所作のことを指すの?
例えば「このプログラムは誰が読んでも分かりやすいものしよう」程度のものはオブジェクト指向とは言わないの?
2017/07/27(木) 04:46:03.86ID:wpPsIhCe
オブシコきっしょ
2017/07/27(木) 19:35:15.21ID:NhSve46F
>>785
最初、「適当に飛び先決めて好きなように処理書いて戻す」やってたら
後でプログラマが死にそうになったので
"入り口があったら出口はここ"とブロック化しようぜ!が『構造化プログラミング』
Cなどが直接の成果で今の言語はほぼこの流れを受け継いでる。

次にブロック(サブルーチン)化されたからこれをクラスとして使いまわそうぜ!が『オブジェクト指向』
ここで単純に使い回しの方向でCから発展したのがC++
主目的が使い回し。
それとは別にブロックを使い回すにあたって「これをやれ」という具体的な
コマンドを受けてクラスが独自に動くようにすれば
相互の関係がゆるくなって取り回しと修正が楽になる。というのが
smalltalk>objective-C>JAVA〜と続いてるメッセージ/メソッド方式
目的はクラスの独立

もっと進んで命令すればクラスが自分でデータや仕事探すぐらいになるだろ?
というエージェント指向はまだ実現していない。
2017/07/27(木) 20:29:54.68ID:5IXklzdW
Javaをそちらのダメな考え方の方に入れるのはJavaが可哀そう
2017/07/27(木) 20:37:05.89ID:2IdVcl0s
メソッドはメッセージ側のスタイルなんでなぁ。
ウィキペディアの「影響を受けた言語」書き換えてくるかい?

「クラスとは構造体に関数がついたもの」って90年代の
C++なんかをベースにしたオブジェクト指向の説明とか
いまじゃ誰も電波すぎて理解できねぇよ。
「自動車は馬車から馬が外れたものである」かっつの…
2017/07/27(木) 21:48:06.61ID:5IXklzdW
オブジェクトはデータに自身を操作するための処理が付いたもの
というありがちな説明は、これを正しいとするかどうかは別として
電波すぎて理解できない、という程のものではない
厳密かどうかは置いておいたとして、具体性があり、ある種の分かりやすさはある
「データ」とか「処理」とかいう言葉は、プログラマじゃなくても知ってる一般的な言葉だし
大体の人が正しく理解して使っているであろう
ということと、コンピュータの根本の原理も大昔から特に変わってないので
「データ」や「処理」という言葉が、理解できないほどに意味をなさなくなっているわけでもない
普通に理解できる範囲
実際にはもっと賢い表現が適切であろうが、今は理解できる文言かどうかが焦点であるから
関係が無い
どちらかというとsmalltalkというかアランケイのオブジェクト指向の表現の方が若干電波であり
事前に知識が無ければ、何を言っているかよくわからない、正しく理解できない
現実の部分が見えてこない、拡大解釈してしまう、思考が発散する、といったところ
最終的には生態系がどうのこうの言い出すから
2017/07/28(金) 08:44:57.99ID:NpsU3dCh
>>790
> どちらかというとsmalltalkというかアランケイのオブジェクト指向の表現の方が若干電波

アラン・ケイのメッセージングのオブジェクト指向は、設計・実装・実行・運用・保守とあらゆる局面における
「遅延結合」(…という表現だと実行時のみにひっぱられる人がいるので「決定の遅延」の方がベターか)を
メッセージングというお題目を通じて実践・徹底・サポートするアイデアなのだけど
http://d.hatena.ne.jp/katzchang/20080807/p2
http://metatoys.org/oxymoron/oxymoron.html

具体的にはどこらへんが“電波”だと感じるのか、きかせてもらってもいい?
2017/07/28(金) 09:16:50.33ID:oLQXjxeQ
全部電波じゃねえかwww
2017/07/28(金) 10:03:16.12ID:orh4jmw3
>>791
前からちょいちょい思ってたけれど、脳がパソコンの一個のCPUで完結してる人とか
処理時間の遅れとか当人の脳内世界に存在しないから概念が理解できないみたい。
60年代に大学間などの通信ネットワークが作られてこのかた
現代のマルチタスク・マルチコアに至るまで
相手の処理終了が不明な状態で
"逐次実行なんか期待できない"というところから話が始まってるのに
脳が「プログラムってバッチ処理だろ?」で止まってるから
「順番に動かないプログラムなんてあるか!」って本気で思ってるんだよ、こういう人…
2017/07/28(金) 13:34:41.77ID:NpsU3dCh
>>792
>全部電波じゃねえかwww

うん。だから例えば具体的にはどんなとこころ?
あるいは件の主張を端から理解する気が無いのならレスは無用に願います
2017/07/28(金) 16:54:15.12ID:s1JdgxyV
>>790
>事前に知識が無ければ、何を言っているかよくわからない、正しく理解できない

Smalltalkを理解するために事前の知識は要らないぞ。
実践せずに本やブログ記事を読むだけで理解しようと思っている人は苦労するだろうけど。
2017/07/28(金) 19:42:10.36ID:NpsU3dCh
>>795
んー、それはどうだろう。気持ちはわらんでもないけど、ちょっと言い過ぎではないかなぁ…
たとえば同じように Python を“理解するために事前に必要とされる知識”を問われた場合、
どんな答えを想定しているか教えてもらえる?
あるいは Java なら必要だけど、Python であれば Smalltalk と同程度には必要ないとかそんな程度の話?
2017/07/29(土) 15:03:26.59ID:sLFMqneM
例のFILE構造体を用いたファイル操作はファイルシステムに対する低水準な操作がカプセル化され利用者から見えない設計だからオブジェクト指向設計、
と言って良いものかどうか…
(内部ではiob[ ]という配列操作になっておりインスタンスの個数に上限がある
 && 物理ディスクの個数はもっと小さいから、ファイル操作の内部の実装にはiob[ ]全体を操作対象とする手続き型のコードが含まれる

これをオブジェクト指向と呼んで良いのなら、ユニックスのシステムコールやWin32 APIからハンドルを受け取って
ハンドルに対して操作を行うのは全部オブジェクト指向と呼んで良いことになる
2017/07/29(土) 15:11:23.58ID:sLFMqneM
>>793
順番として書けないプログラムがあるか!!!!111!!!!1!

確かに非同期に動く複数のブツというやつは全体としては順序的でない並列的な振る舞をするが
それらを同期させる手順自体は順序として書ける(そうでないとCPUに処理させられない
2017/07/29(土) 22:52:17.25ID:H/n/hEUB
>>798
のような話もあると思う
マルチプロセスだろうが、複数のコンピュータだろうが、なんであれ
結局、処理の順番は大事だろう
というのもあるが、それは置いておいたとして

>"逐次実行なんか期待できない"というところから話が始まってるのに

逐次実行が期待できないケースがあったとして、それはそれで置いておくけど
逐次実行が期待できるケースにまでそのモデルを使わなければならないのかどうなのか
ってのは有ると思う
a = 1 + b; ・・・@
b = c + 2; ・・・A
の@Aに関しては、少なくとも逐次実行を期待したいし
複雑なモデルは必要ないと思う

全部の個所において、ありとあらゆることを想定した包括的モデル、を適用するのは
あまり好きではない
800デフォルトの名無しさん
垢版 |
2017/07/30(日) 00:46:29.50ID:k8Kwm2zH
a={1,2,........100};
sum(a);

こんな場合、遠くの鯖でも近くの鯖でも10なら10ずつ(実際ににはもっと粒度が大きくないと割に合わないけど)分割して1-10の合計+11-20の合計+...って感じで全部揃いさえすれば順番関係無いって処理もあるお。
2017/07/30(日) 02:32:19.52ID:pLyoXQEm
>>799
オブジェクト指向(C++とかじゃなくて上でいうアランケイ的な)が
逐次処理を否定していると思ってるなら、それは違う

言うならば、並列処理できるときにも逐次処理するのを否定しているという感じ。
その例にあげた依存のある計算みたいに、逐次処理が必要なところは
そうしなきゃならない。でもそうじゃないところは並列にやればいい。

CPUのスーパースカラも同じだね。前の命令の演算結果を参照するような
場合はパイプラインが止まるけど、依存が無ければ並列にどんどん進められる
2017/07/30(日) 08:12:50.06ID:oVuvng50
>>800
バ、バラバラに計算した部分和を最後にどうするんです?
803デフォルトの名無しさん
垢版 |
2017/07/30(日) 08:15:16.39ID:1m5312Xu
sumなんだから足し合わせる。
2017/07/30(日) 08:20:27.85ID:oVuvng50
>>803
1. 同期をとってから
2. 足し合わせる
のでは…
2017/07/30(日) 10:22:05.09ID:AatiOL5G
C#, Java8 の、Parallel はそう。
並列処理で、最後に同期する

各スレッドでソートして、最後にマージするとか
806デフォルトの名無しさん
垢版 |
2017/07/30(日) 20:37:12.58ID:OOsADo1S
>>804
全部揃いさえすれば=同期とったら

「最後」にどうなる?
解:合計します。

突っ込まれるような事だったかな。。。
2017/07/30(日) 22:10:03.14ID:22wh/XXk
処理が一つの処理(タスク)単位になった時に
シングルタスク指向じゃやってられないよねってあたりまえの話なのに
なんで2017年に「そんなことはない!俺はオブジェクト指向が嫌いだ!」って
頭ごとシングルタスクのじいさんが湧くんだ…
2017/07/30(日) 22:15:37.41ID:uSOmX9+I
>>801
そういう風に俺は言ってない
>逐次実行が期待できないケースがあったとして、それはそれで置いておくけど
>逐次実行が期待できるケースにまでそのモデルを使わなければならないのかどうなのか
と書いた
2017/07/30(日) 22:23:06.49ID:uSOmX9+I
シングルタスクじゃ扱いきれなくて
マルチタスクが合ってるって思える部分が出てきたら
その部分ではマルチタスク指向とやらをやれば良いのでは?
オブジェクト指向とは直接的に関係が無いね
2017/07/30(日) 22:57:11.52ID:UpPLfSXm
C++とかハードに直結してるのに使い回しにだけオブジェクト指向を使おうとしたクソを通してオブジェクト指向知った人の末路がこれ
2017/07/30(日) 22:57:44.42ID:AatiOL5G
シングルスレッドで同時接続数、1万をこなす、Node.js の、WebSocket

ただし、CPU を多く使うものは、ダメだけど
2017/07/30(日) 23:41:28.81ID:uSOmX9+I
そーゆーのとオブジェクト指向は本質的に関係なくない?
タスクの実装に向いているとしたところで
じゃあ、タスクの実装以外ではメリット無いのか?ってことになる
全体的にはマルチタスク的だったとしても、細かく見ていけば、個々はシングルタスクな部分も出てくるだろ

ほとんどのOO言語のオブジェクトの実装は
「データと処理を一纏めにしたもの」、っていう実装になってることが多いんだから
それを考えると、ほとんど何でも実装しやすいんだけども
(↑マルチタスクとかシングルタスクとか関係なくね)
この説明に拒否反応を示す人がいて
> いまじゃ誰も電波すぎて理解できねぇよ。
って言うから、どーなんだよ、と
オブジェクトはデータと処理を一纏めにしたもの、ってそんなに理解しにくいか?という話だったはず

ただ、この説明の仕方は、かなりボトムアップ的で、実装から炙り出したところがあって
「とどのつまりこういうことだろ」と頭ごなしに言われているようで気分が悪い
つまり、オブジェクト指向の効率的で有効な実装は、えてしてそうなる、というような
あとオブジェクトの全貌は語ってなくて、「言っている範囲においては間違ったことは言ってない」
程度の説明でしかないけども
しかし実際にそのような実装になってる言語が多いから、完全に無視してよいというものではないし
頭にはおいておかなければならないね
2017/07/31(月) 20:33:56.98ID:E0ER4Q8l
>>806
>全部揃いさえすれば=同期とったら
さも最初から書いてあったかのように嘘を言い…
2017/07/31(月) 20:46:14.25ID:nj7BetAr
「あ、お客さま、こちらのおリンゴ少々傷んでおりますので、交換致しますね」

レジから店員が離れたらどうなっちゃうの!どうなっちゃうの!?
もう仕事できないよね!業務崩壊だよね!!

「はい、こちらで宜しかったでしょうか? では御会計は〜」

戻ってくるなんて説明なかったよね!処理が続くとも言ってないよね!!!
ボク意味わかんない!!!!!!!!
2017/07/31(月) 21:15:55.31ID:E0ER4Q8l
>>814
お客様はCPUです!!
2017/08/01(火) 02:33:45.51ID:A0OBZNC2
オブジェクト指向は、データと処理をひと纏めにする?
馬鹿じゃないの。

機能で分けるの。
2017/08/01(火) 08:15:51.20ID:9qUpAvFS
>>816
機能で分けることはデータと処理を一体化することを否定しない
2017/08/01(火) 08:17:16.36ID:9qUpAvFS
一体化とはつまり一線を超えるということ
2017/08/01(火) 09:02:35.58ID:qHCR3K6Z
そんな集合論の話してるんじゃなかろうに
2017/08/01(火) 15:47:46.27ID:zRlG3ihR
機能で分けるって言ったら、そら、なんでも機能で分けるもんなんだよ
例えばCなんかで関数に分けるって事を考えても、当たり前、機能で分けるわ
機能で分けるってだけじゃ何の説明にもなってない
むしろ機能以外で分ける必然性がないし

だから機能で分けるのはどのような何であろうと、分ける以上は当たり前そうする前提として
「具体的にどのような方法、単位で分けるの?」って部分がないと
その時に、データと処理を一纏めにしたものをオブジェクトとして、ってのが出てくる

クラスは機能で分ける、って文言は、おかしなクラス設計をする人に対して
クラスは機能で分けなきゃダメだよ、と注意するために有るのであって
オブジェクト指向の説明にはなってないんだよ
例えば、「関数は機能でわける」って言い方も出来るし、なんでもそうじゃん
2017/08/01(火) 19:28:14.48ID:zRlG3ihR
平たく言えば「機能で分ける」ってのは
クラスの作り方や設計方針の話であって
クラスやオブジェクトの根底のメカニズムについては何も言及してないんだよ
2017/08/01(火) 21:13:20.77ID:jGPQWGeS
ふる〜いサブルーチン的な「関数」の発想だと
たとえば「ドルと円を換算する」"関数"はただの「処理機」だから
レートと額を送ると換算額が返ってくる、という発想になる。

そこがオブジェクト指向では「ドルと円を換算する」"クラス"は
そういう処理をする「処理場」なので送るのは
"換算してくれ"という命令コマンドと額になる。

違いはなんだろう?
「関数じゃなくてクラスはレートってデータを持ってて、換算という操作関数が付いてんだろ?」?
違います。自動車が馬抜き馬車ではないように。

ポイントは「換算」というタスクは当該クラスが責任を持つ仕事で
処理を頼んだ側まで責任は及ばない設計になっていることです。
オブジェクト指向の思想ではそれぞれで責任が切り分けられているので
プログラムの修正の際に修正が延々波及する事態を抑制できるし
処理はタスクを行う実行単位で切り分けられているから
処理終了を待つ必要のないタスクは並列実行できる。
"そういうこともできる"ではなく"そういうことをやるように"仕様が作られている。
そういう違いです。
2017/08/01(火) 23:31:45.78ID:zRlG3ihR
で、結局クラスやオブジェクトの持つメカニズムについては言及しないのであった
書いてある内容は「そういう風に考えてください、そういう風にとらえてください」
程度のものでしかない
後半の並列処理なんか全然オブジェクト指向と関係が無いしな
そういう風に書けば、そうなる、ってだけ

「ポイントは「換算」というタスクは〜」の部分に関してなど
一般化して他のものに関しても同じことが言えるし
何の説明にもなってない
唯の一般的に良いといわれるプログラミングの作法を説明しているに過ぎない
もちろんその作法はOOPでも通用するが、OOPの説明にはなってない

例えば、クラスを"関数"に置き換えて
「ポイントは「換算」というタスクは当該"関数"が責任を持つ仕事で
 処理を頼んだ側まで責任は及ばない設計になっていることです。
 "関数"を使う思想では、それぞれで責任が切り分けられているので
 プログラムの修正の際に修正が延々波及する事態を抑制できるし
 処理はタスクを行う実行単位で"関数"に切り分けられている」
っていう風に言ったって別に通じるし、オブジェクト指向の説明になってないことが分かる
一般的に良いといわれるプログラミングの作法を説明しているに過ぎない

となれば結局、「関数とクラスは何が違うのか」って事がクローズアップされるべきで
「関数じゃなくてクラスはレートってデータを持ってて、換算という操作関数が付いてんだろ?」
ってのは結構的を得た説明なわけだ、少なくとも君の糞みたいな説明よりは
2017/08/01(火) 23:33:36.12ID:zRlG3ihR
だたし、オブジェクトはデータと処理を一纏めにしたものって説明は
オブジェクトの性質の全部を言い表しているわけじゃない
「言っている範囲においては間違ったことは言ってない」程度のもの
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。