オブジェクト指向について、調べれば調べるほど疑問が募ります。低レベルで粗末な疑問かも知れませんが、ご教授願いたいです。
・データと振る舞いをまとめる?
まとめると何か良いことあるの?
ファイルあるいはモジュールにはまとまってるよね?
丁度いい単位があるのに、何故わざわざオブジェクトという概念を導入するの?
(Javaには1ファイル1クラスという文化あるらしいけど)
・カプセル化?
モジュールのimport, exportでも実現出来るよね?
(構造体などへのアクセスを制限できれば)
・ポリモーフィズム?
別にデータと振る舞いをまとめなくても実現出来るよね?
・モノのように扱いたい?
モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?
探検
オブジェクト指向を教えてくれ!
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2021/03/16(火) 17:06:02.41ID:VhqTt897122デフォルトの名無しさん
2021/03/18(木) 23:19:54.35ID:1sWV2MVC >>120
あわしろ氏は、オブジェクトとチンポは無関係と言ってるぞ。
あわしろ氏は、オブジェクトとチンポは無関係と言ってるぞ。
123デフォルトの名無しさん
2021/03/18(木) 23:23:31.36ID:TebuVfaR 部品に例えられた
124デフォルトの名無しさん
2021/03/19(金) 06:58:20.75ID:UjV/RtqC いろんな起源があるけどsmalltalk系のベースの考え方は
プログラムモジュールを「独立したロボットのようなもの」として考える考え方で
これは大型コンピュータがネットワークで繋がって動いてる背景想定で
この場合、どの順番で結果が出るかは非同期的だし予想はできないから
モジュールに「これ頼むよ、はい」って命令と素材渡してあとは勝手にできてくるのを待つ
モジュールそのものに自分をコピーする命令があって
例えば「画面上にウィンドウを開く」モジュールがあったら
それを雛形に「おいおまえのこういう亜種を作れ」と命令すると
命令に従って新ウィンドウが開く。
いいじゃんそれ!とコンピュータサイエンス側では大絶賛だったけど
そこまでは要らないかな…ってエンジニアリング側の思想や技術的制約で
思想仕様をつまみ食いしていろんな言語コネ上げて現在に至る。
プログラムモジュールを「独立したロボットのようなもの」として考える考え方で
これは大型コンピュータがネットワークで繋がって動いてる背景想定で
この場合、どの順番で結果が出るかは非同期的だし予想はできないから
モジュールに「これ頼むよ、はい」って命令と素材渡してあとは勝手にできてくるのを待つ
モジュールそのものに自分をコピーする命令があって
例えば「画面上にウィンドウを開く」モジュールがあったら
それを雛形に「おいおまえのこういう亜種を作れ」と命令すると
命令に従って新ウィンドウが開く。
いいじゃんそれ!とコンピュータサイエンス側では大絶賛だったけど
そこまでは要らないかな…ってエンジニアリング側の思想や技術的制約で
思想仕様をつまみ食いしていろんな言語コネ上げて現在に至る。
125デフォルトの名無しさん
2021/03/19(金) 08:55:07.75ID:MkYE3X1+ データ構造とデータフローがしっかり設計されていると
プロセスフローが適切に動き出す
プロセスフローが適切に動き出す
126デフォルトの名無しさん
2021/03/19(金) 11:25:59.11ID:CuRSo4nW >>122
チンポが勃起したり射精したりするメカニズムは、いかなるオブジェクト指向言語をもってしても不可能。
チンポが勃起したり射精したりするメカニズムは、いかなるオブジェクト指向言語をもってしても不可能。
127デフォルトの名無しさん
2021/03/19(金) 12:13:53.83ID:GmtzzOvY いや?
チンコに別スレッドでイベントループ回して性的刺激イベントが来たら勃てば良いだけだが
チンコに別スレッドでイベントループ回して性的刺激イベントが来たら勃てば良いだけだが
128デフォルトの名無しさん
2021/03/19(金) 12:38:16.79ID:7QYaWD+G >>89
自分で作ったものがモジュール化してリサイクルする価値のあるものになってきたら
カタマリから切り出す事が出来る好きにやればいいさ
何本か作ればここをモジュール化したら便利だなとか見えてくる
オブジェクト指向が思考の中心に有っちゃだめなんだよ頭の片隅にある程度でいい
自分で作ったものがモジュール化してリサイクルする価値のあるものになってきたら
カタマリから切り出す事が出来る好きにやればいいさ
何本か作ればここをモジュール化したら便利だなとか見えてくる
オブジェクト指向が思考の中心に有っちゃだめなんだよ頭の片隅にある程度でいい
129デフォルトの名無しさん
2021/03/19(金) 12:53:19.14ID:8Q0/9bhg >>85
目的と手段を履き違えてる
別にポリモーフィズムで実現しなくてもいい
その場合は変更に対して弱くなるというだけ
ポリモーフィズムでやりたいならジェネリクスでもTraitオブジェクトでもimpl Traitでも構わないがそれぞれメリットとデメリットがある
継承もそれらと同じでメリット・デメリットがある
まずはそれを理解すること
次に状況に応じて適切な選択ができる力を身につけること
目的と手段を履き違えてる
別にポリモーフィズムで実現しなくてもいい
その場合は変更に対して弱くなるというだけ
ポリモーフィズムでやりたいならジェネリクスでもTraitオブジェクトでもimpl Traitでも構わないがそれぞれメリットとデメリットがある
継承もそれらと同じでメリット・デメリットがある
まずはそれを理解すること
次に状況に応じて適切な選択ができる力を身につけること
130デフォルトの名無しさん
2021/03/19(金) 12:57:03.86ID:7QYaWD+G >>93
AVクラスにまとめて便利ならいいんじゃない
AVクラスにまとめて便利ならいいんじゃない
131デフォルトの名無しさん
2021/03/19(金) 13:33:14.14ID:kf2p0gMa あらゆるメソッドを詰め込んだ神クラスを作ります
132デフォルトの名無しさん
2021/03/19(金) 14:54:37.42ID:ZwQV5hpU 結局のところ、目的は関数の呼び出し側と呼ばれる側の依存関係を逆にしたいってところなんだよ。
それをバカがどこまでも無駄に適用範囲を広げてわかりにくくしたっていうところ。
それをバカがどこまでも無駄に適用範囲を広げてわかりにくくしたっていうところ。
133デフォルトの名無しさん
2021/03/19(金) 17:13:06.19ID:prgkhYTe >>132
それは関数の受け渡しができればいいだけなのでオブジェクト指向とは関係ないやろ
それは関数の受け渡しができればいいだけなのでオブジェクト指向とは関係ないやろ
134デフォルトの名無しさん
2021/03/19(金) 18:13:21.05ID:mnFdHosS staticおじさんという用語あるやん
あれってさ
議論に負けそうになった側の人間がよくやるやつに見えてきたな
論点じゃなくて相手の人格ごとケチつけようとレッテル張り始めるやつ
つまりstaticおじさんと言う用語に頼った時点でもう負けてんだね
あれってさ
議論に負けそうになった側の人間がよくやるやつに見えてきたな
論点じゃなくて相手の人格ごとケチつけようとレッテル張り始めるやつ
つまりstaticおじさんと言う用語に頼った時点でもう負けてんだね
135デフォルトの名無しさん
2021/03/19(金) 18:27:45.62ID:AFuTfpel staticおじさんが急に予防線張り出したwww
136デフォルトの名無しさん
2021/03/19(金) 18:35:09.75ID:zfX0YSnj staticを理由も無く多用する奴って実際理解していないという意味だしねw
137デフォルトの名無しさん
2021/03/19(金) 18:41:18.39ID:AYbRm47O 議論を勝ち負けで判断してる時点でstaticおじさんの素質あり
138デフォルトの名無しさん
2021/03/19(金) 18:51:56.07ID:FeUkda/f 勝ち負けに拘らないなんて奴は
こんなクソスレに何しにしてるんだ?
バトルをしに来てんじゃねーのかよ
こんなクソスレに何しにしてるんだ?
バトルをしに来てんじゃねーのかよ
139デフォルトの名無しさん
2021/03/19(金) 19:36:48.79ID:ZpeY8wVS >>134
それには僕も同意します
それには僕も同意します
140デフォルトの名無しさん
2021/03/20(土) 02:17:44.90ID:+o6sxQZ6 オブジェクト指向が本当に「自然な」モデリング手法であったならこんな疑問は出てこず誰でも「自然に」理解して使えているはず。
結局オブジェクト指向が解決する問題とやらはオブジェクト指向を使うことによって産み出される問題なのだ。
とんだマッチポンプである。
結局オブジェクト指向が解決する問題とやらはオブジェクト指向を使うことによって産み出される問題なのだ。
とんだマッチポンプである。
141デフォルトの名無しさん
2021/03/20(土) 02:37:42.57ID:aAnJLG0Q 人間は自然に言葉を話し、自然に考えるが
言語学や哲学があるのと一緒
人間は自然に物事を考えてるがそれを曖昧さが許されない
コンピュータ上で表現しようとすると体系化が必要になる
言語学や哲学があるのと一緒
人間は自然に物事を考えてるがそれを曖昧さが許されない
コンピュータ上で表現しようとすると体系化が必要になる
142デフォルトの名無しさん
2021/03/20(土) 06:52:48.05ID:1uyV6M03 >>1
オブジェクト指向とは元々アラン・ケイが提案したようにオブジェクトが他のオブジェクトにメッセージングをすることに本質があるわけよ
その実装のために各オブジェクトがどういうメッセージングを受け取るか発するかを定義する方法としてクラスベースやプロトタイプベースがあるわけ
そこを間違えて最初にクラスを出発点にしちゃったりクラスを唯一の必須事項だと勘違いしてしまうと本質を見失う
つまりオブジェクト間はメッセージングによってのみ相互作用が可能であり
オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
それを実現するために各プログラミング言語によって表現方法や実装方法が様々に異なるだけ
この最初に提案されたオブジェクト指向の考えをきちんと理解できれば
あなたが疑問は解けるはず
実装方法の一つに過ぎないクラスとかに囚われるダメな人にはならないように
オブジェクト指向とは元々アラン・ケイが提案したようにオブジェクトが他のオブジェクトにメッセージングをすることに本質があるわけよ
その実装のために各オブジェクトがどういうメッセージングを受け取るか発するかを定義する方法としてクラスベースやプロトタイプベースがあるわけ
そこを間違えて最初にクラスを出発点にしちゃったりクラスを唯一の必須事項だと勘違いしてしまうと本質を見失う
つまりオブジェクト間はメッセージングによってのみ相互作用が可能であり
オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
それを実現するために各プログラミング言語によって表現方法や実装方法が様々に異なるだけ
この最初に提案されたオブジェクト指向の考えをきちんと理解できれば
あなたが疑問は解けるはず
実装方法の一つに過ぎないクラスとかに囚われるダメな人にはならないように
143デフォルトの名無しさん
2021/03/20(土) 08:00:59.81ID:aAnJLG0Q アラン・ケイはコロンブスと同じで、誰もやったことがない頃に
やったからすごいと言われてる。0から1を生み出すのは誰にでも出来ることではない
それに比べれば1から2、2から3にするのは簡単
だがゆっくりと技術は進化する。技術だけを見ればアラン・ケイの
オブジェクト指向よりも今のオブジェクト指向の方が実用的
一人の天才よりも多数の人の手によって改善された今のほうが優れてるんだ
いつまでも原始的な初期のオブジェクト指向にとらわれていては駄目だぞ
やったからすごいと言われてる。0から1を生み出すのは誰にでも出来ることではない
それに比べれば1から2、2から3にするのは簡単
だがゆっくりと技術は進化する。技術だけを見ればアラン・ケイの
オブジェクト指向よりも今のオブジェクト指向の方が実用的
一人の天才よりも多数の人の手によって改善された今のほうが優れてるんだ
いつまでも原始的な初期のオブジェクト指向にとらわれていては駄目だぞ
144デフォルトの名無しさん
2021/03/20(土) 08:19:08.05ID:CVxVjVQF それぞれのプログラムでデータを纏めたりしてそれが結果的にオブジェクトになったりするわけで
オブジェクト指向って聞いてこういうものだってって事ではないような
古いとか新しいとかオブジェクト指向が目的となってるのかな
オブジェクト指向って聞いてこういうものだってって事ではないような
古いとか新しいとかオブジェクト指向が目的となってるのかな
145デフォルトの名無しさん
2021/03/20(土) 10:06:45.20ID:swqMBZjM カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
146デフォルトの名無しさん
2021/03/20(土) 10:21:53.05ID:R72307UF >>141
チンポ【を】しこしこするのではなくて、チンポ【が】しこしこする!
チンポ【を】しこしこするのではなくて、チンポ【が】しこしこする!
147デフォルトの名無しさん
2021/03/20(土) 10:35:45.54ID:ct9wvzVp148デフォルトの名無しさん
2021/03/20(土) 11:13:47.08ID:YVZkTbgb149デフォルトの名無しさん
2021/03/20(土) 11:38:06.43ID:tGB0HigS サルでもわかるみたいな解説サイト見ると一般人向けに曖昧に書いてあるから余計イミフなんだよな
150デフォルトの名無しさん
2021/03/20(土) 11:40:05.73ID:vUNrx7r3 しにそう
151デフォルトの名無しさん
2021/03/20(土) 11:40:56.14ID:vUNrx7r3 rpcって最近聞かなくなったな
152デフォルトの名無しさん
2021/03/20(土) 11:46:11.22ID:ARQDcx4T154デフォルトの名無しさん
2021/03/20(土) 12:44:05.75ID:R72307UF >>153
チンポ【が】しこしこする、チンポは主語であり独立した主体存在である。
チンポ【が】しこしこする、チンポは主語であり独立した主体存在である。
155デフォルトの名無しさん
2021/03/20(土) 12:44:08.47ID:ebrbGMYs >>152
はい?
>目的は関数の呼び出し側と呼ばれる側の依存関係を逆にしたいってところなんだよ。
これがオブジェクト指向の目的だと主張してるんだよね?
型のキャストの有無に何の関係があるのかわからんが
ある型を引数として受け取る関数を
別の関数の引数や戻り値として受け渡しできればキャスト不要だよね?
オブジェクト指向関係ある?
オブジェク指向じゃなければCって前提なのかな?
はい?
>目的は関数の呼び出し側と呼ばれる側の依存関係を逆にしたいってところなんだよ。
これがオブジェクト指向の目的だと主張してるんだよね?
型のキャストの有無に何の関係があるのかわからんが
ある型を引数として受け取る関数を
別の関数の引数や戻り値として受け渡しできればキャスト不要だよね?
オブジェクト指向関係ある?
オブジェク指向じゃなければCって前提なのかな?
156デフォルトの名無しさん
2021/03/20(土) 12:44:37.50ID:ebrbGMYs >>151
gRPC
gRPC
157デフォルトの名無しさん
2021/03/20(土) 12:48:47.06ID:iZK7E0+o kindle unlimitedにある「オブジェクト指向でなぜつくるのか」を読めスッキリするから
158デフォルトの名無しさん
2021/03/20(土) 12:49:19.48ID:ebrbGMYs >>142
「オブジェクト指向を使うメリットって何?」って聞いてる相手に対して
>つまりオブジェクト間はメッセージングによってのみ相互作用が可能であり
>オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
こういう説明しかできないならオブジェクト指向を理解してないか
オブジェクト指向そのものにメリットないと言われても仕方がないなと思うぞ
「オブジェクト指向を使うメリットって何?」って聞いてる相手に対して
>つまりオブジェクト間はメッセージングによってのみ相互作用が可能であり
>オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
こういう説明しかできないならオブジェクト指向を理解してないか
オブジェクト指向そのものにメリットないと言われても仕方がないなと思うぞ
159デフォルトの名無しさん
2021/03/20(土) 12:53:18.27ID:R72307UF >>142
>つまりオブジェクト間はメッセージングによってのみ相互作用が可能であり
>オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
そして、トイレへ行き尿を出そうと思うと、脳が「出してよい」という信号を送ります。ここで副交感神経が
主にはたらき、尿道の筋肉がゆるみ、反対に膀胱の筋肉は締まって尿を押し出し、尿が排出されるのです。
健康な成人では、1回の排尿量は300ミリリットルほどで、約30秒で膀胱が空っぽになるのが普通です。
https://www.hainyou.com/sp/m/mechanism/
>つまりオブジェクト間はメッセージングによってのみ相互作用が可能であり
>オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
そして、トイレへ行き尿を出そうと思うと、脳が「出してよい」という信号を送ります。ここで副交感神経が
主にはたらき、尿道の筋肉がゆるみ、反対に膀胱の筋肉は締まって尿を押し出し、尿が排出されるのです。
健康な成人では、1回の排尿量は300ミリリットルほどで、約30秒で膀胱が空っぽになるのが普通です。
https://www.hainyou.com/sp/m/mechanism/
160デフォルトの名無しさん
2021/03/20(土) 12:55:02.24ID:ebrbGMYs161デフォルトの名無しさん
2021/03/20(土) 12:58:39.45ID:tGB0HigS 教本丸暗記してるか初心者相手に言葉遊びしてるのかどのみち害悪だよな
リサイクルしたり拡張したり切った貼ったしやすくするためにある
リサイクルしたり拡張したり切った貼ったしやすくするためにある
162デフォルトの名無しさん
2021/03/20(土) 13:05:16.75ID:ebrbGMYs >つまりオブジェクト間はメッセージングによってのみ相互作用が可能であり
>オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
つまり関数間は関数呼び出しによってのみ相互作用が可能であり
関数内部がどうなっているかは見えないし知る必要もないのが関数型?
んなわけないしそんな説明されても意味ないよね
呼び出し側が知るべき要素と知る必要がない要素を分けられるのは
オブジェクト指向特有の機能じゃないんだから
>オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
つまり関数間は関数呼び出しによってのみ相互作用が可能であり
関数内部がどうなっているかは見えないし知る必要もないのが関数型?
んなわけないしそんな説明されても意味ないよね
呼び出し側が知るべき要素と知る必要がない要素を分けられるのは
オブジェクト指向特有の機能じゃないんだから
163デフォルトの名無しさん
2021/03/20(土) 13:11:27.57ID:paFdJ8yI164デフォルトの名無しさん
2021/03/20(土) 13:31:51.79ID:PoGobC7U >>155
そういう動的で型の弱い言語なら全く問題ないし、
オブジェクト指向を無理にやる必要もないって話だわ。
cの不便さとオブジェクト指向が流行ったことにはかなり関係がある。
まああんまり話を理解できてなさげだから言っても理解できるとは思えんけど。
そういう動的で型の弱い言語なら全く問題ないし、
オブジェクト指向を無理にやる必要もないって話だわ。
cの不便さとオブジェクト指向が流行ったことにはかなり関係がある。
まああんまり話を理解できてなさげだから言っても理解できるとは思えんけど。
165デフォルトの名無しさん
2021/03/20(土) 13:42:15.23ID:paFdJ8yI >>162
それは概念のレイヤーが異なることをあなたが理解できていないだけ
例えばオブジェクト指向でのメッセージングとは関数呼び出しではないです
さらに言えばローカルとリモートを区別するRPCでもないです
メッセージングはオブジェクトから別のオブジェクトへの一方向の通信であり
もし何らか返事が必要となる場合は逆向きのメッセージングを行いますがその二つのメッセージングは非同期です
概念だけではわかりにくいから具体的な実現例をで言うと
例えば皆がよくわかる例としてJavaScriptでは
ネット通信やファイルアクセスは各オブジェクトの非同期関数になっていて
1つ目のメッセージングはその非同期関数の呼び出しとして
2つ目のメッセージングはその非同期関数のコールバックとしてこの言語では実現しているようですが
概念としてのオブジェクト指向のメッセージングとその各言語における様々な実現例にはもちろん乖離があります
そしてこのスレで混乱しているのは各言語における実現例だけを取り上げて話すからであって
元々の概念を理解してそれと共に話せばわらりやすいです
各言語の様々な記法なんていうのは単なる実現例側の話ですからそこに囚われていてはダメ
それは概念のレイヤーが異なることをあなたが理解できていないだけ
例えばオブジェクト指向でのメッセージングとは関数呼び出しではないです
さらに言えばローカルとリモートを区別するRPCでもないです
メッセージングはオブジェクトから別のオブジェクトへの一方向の通信であり
もし何らか返事が必要となる場合は逆向きのメッセージングを行いますがその二つのメッセージングは非同期です
概念だけではわかりにくいから具体的な実現例をで言うと
例えば皆がよくわかる例としてJavaScriptでは
ネット通信やファイルアクセスは各オブジェクトの非同期関数になっていて
1つ目のメッセージングはその非同期関数の呼び出しとして
2つ目のメッセージングはその非同期関数のコールバックとしてこの言語では実現しているようですが
概念としてのオブジェクト指向のメッセージングとその各言語における様々な実現例にはもちろん乖離があります
そしてこのスレで混乱しているのは各言語における実現例だけを取り上げて話すからであって
元々の概念を理解してそれと共に話せばわらりやすいです
各言語の様々な記法なんていうのは単なる実現例側の話ですからそこに囚われていてはダメ
166デフォルトの名無しさん
2021/03/20(土) 14:04:16.02ID:IyzEzHor Ruby on Rails 6 の本を出している人の、入門書が出た。
Erlang/OTP 上で動く、Ruby風の関数型言語
Elixir実践ガイド、黒田努、2021/2/5
Ubuntu 20.04, Docker CE 19.03, Elixir 1.11
Erlang/OTP 上で動く、Ruby風の関数型言語
Elixir実践ガイド、黒田努、2021/2/5
Ubuntu 20.04, Docker CE 19.03, Elixir 1.11
167デフォルトの名無しさん
2021/03/20(土) 14:05:57.32ID:ct9wvzVp >>165
非同期であることはそんなに大事なことではないのではないかな
smalltalkは九州大学病院のプロジェクトで大爆死してVBが
生き残ったわけなのでプログラミングにおいては同期の方が
わかりやすく使いやすかったことを歴史が証明してるんじゃなかろうかと
非同期であることはそんなに大事なことではないのではないかな
smalltalkは九州大学病院のプロジェクトで大爆死してVBが
生き残ったわけなのでプログラミングにおいては同期の方が
わかりやすく使いやすかったことを歴史が証明してるんじゃなかろうかと
168デフォルトの名無しさん
2021/03/20(土) 14:13:04.27ID:ct9wvzVp 非同期のメッセージングは普通のプログラミングではあまり必要とされない
非同期の処理が必要なときはPromiseオブジェクトを使うように
非同期のメッセージングさえも併呑して現代のオブジェクト指向は成り立ってると思う
アラン・ケイのオブジェクトは、オブジェクトの一形態なんだよ
非同期の処理が必要なときはPromiseオブジェクトを使うように
非同期のメッセージングさえも併呑して現代のオブジェクト指向は成り立ってると思う
アラン・ケイのオブジェクトは、オブジェクトの一形態なんだよ
169デフォルトの名無しさん
2021/03/20(土) 14:16:57.35ID:R72307UF >クリントンの「不適切な関係」
class チンポ{
super.不適切な関係;
}
クリントン
↑
チンポ
class チンポ{
super.不適切な関係;
}
クリントン
↑
チンポ
170デフォルトの名無しさん
2021/03/20(土) 14:17:05.69ID:ct9wvzVp そうして考えた場合にオブジェクトは何かと言われると
データと操作をガッチャンコしたプログラムということになろうかと
データと操作をガッチャンコしたプログラムということになろうかと
171デフォルトの名無しさん
2021/03/20(土) 14:25:14.73ID:ct9wvzVp オブジェクト指向の設計論でよく言われる貧血ドメインはダメだという
考え方は僕は嫌いで、データと操作を分けた方が良いこともある
JavaはRecordやパターンマッチなど関数型言語の機能を取り込んでいってる
オブジェクト指向+関数型がベストプラクティスだと思う
考え方は僕は嫌いで、データと操作を分けた方が良いこともある
JavaはRecordやパターンマッチなど関数型言語の機能を取り込んでいってる
オブジェクト指向+関数型がベストプラクティスだと思う
172デフォルトの名無しさん
2021/03/20(土) 14:28:17.96ID:R72307UF173デフォルトの名無しさん
2021/03/20(土) 14:31:51.39ID:M+lSuHvS >>167
ネットワークアクセスもファイルアクセスもユーザーアクセス(インターフェース)も全て本質的に同期ではなく非同期ですよ
それを無理やりに同期で書こうとすると
例えば低レイヤーではブロッキングのシステムコールとなってしまい時間のかかる相手に対してブロックされ待つ間は何も出来なくなってしまう
もちろんマルチスレッドという別の概念&実現例を使って誤魔化すことはできますがそれでもそのスレッドがブロックされて何も出来なくなってリソースを無駄にするのは事実です
実際にこの問題はいわゆる有名な『C10K問題』として無数のスレッドがリソースを無駄に消費してサーバーが破綻する現実問題を引き起こしました
そこでも解決方法として取られたプログラミング方法は通信などで無駄にブロックされるスレッドを生じさせないこと
すなわちノンブロッキングなシステムコールにより非同期なプログラミングを行なうことでC10K問題も解決されて現在我々が使う多くの通信サーバーはこの非同期な実装方法です
このように相手がいるオブジェクト指向においてはオブジェクト間での非同期なメッセージングが基本
計算だけするならともかく多くのアプリ/ソフトでは人間UIやファイルI/Oやネット通信といった同期では非常に待たされる処理が重要ですから
ネットワークアクセスもファイルアクセスもユーザーアクセス(インターフェース)も全て本質的に同期ではなく非同期ですよ
それを無理やりに同期で書こうとすると
例えば低レイヤーではブロッキングのシステムコールとなってしまい時間のかかる相手に対してブロックされ待つ間は何も出来なくなってしまう
もちろんマルチスレッドという別の概念&実現例を使って誤魔化すことはできますがそれでもそのスレッドがブロックされて何も出来なくなってリソースを無駄にするのは事実です
実際にこの問題はいわゆる有名な『C10K問題』として無数のスレッドがリソースを無駄に消費してサーバーが破綻する現実問題を引き起こしました
そこでも解決方法として取られたプログラミング方法は通信などで無駄にブロックされるスレッドを生じさせないこと
すなわちノンブロッキングなシステムコールにより非同期なプログラミングを行なうことでC10K問題も解決されて現在我々が使う多くの通信サーバーはこの非同期な実装方法です
このように相手がいるオブジェクト指向においてはオブジェクト間での非同期なメッセージングが基本
計算だけするならともかく多くのアプリ/ソフトでは人間UIやファイルI/Oやネット通信といった同期では非常に待たされる処理が重要ですから
174デフォルトの名無しさん
2021/03/20(土) 14:34:16.10ID:zfB5pfEe オブジェクト指向とは関係のない話しても
175デフォルトの名無しさん
2021/03/20(土) 14:39:47.24ID:paFdJ8yI176デフォルトの名無しさん
2021/03/20(土) 14:43:44.55ID:zfB5pfEe177デフォルトの名無しさん
2021/03/20(土) 14:46:18.10ID:ct9wvzVp >>173
それはIOの話ですよね
ドメインオブジェクトの関数を呼び出したりとか
メモリ上で行われる処理まで非同期にする必要はないので
オブジェクト指向にとって非同期はオブジェクトが持つことができる機能の一部だと思いました
それはIOの話ですよね
ドメインオブジェクトの関数を呼び出したりとか
メモリ上で行われる処理まで非同期にする必要はないので
オブジェクト指向にとって非同期はオブジェクトが持つことができる機能の一部だと思いました
178デフォルトの名無しさん
2021/03/20(土) 14:49:51.05ID:ct9wvzVp アラン・ケイは非同期なオブジェクトだけの世界を夢見てたんでしょうね
一方で同期的に処理するオブジェクトもあるので
アラン・ケイのオブジェクトはオブジェクト指向の一部でしかないと思うんですよね
同様に非同期なメッセージングもメッセージングの一部でしかなくて
同期的なメソッドコールもメッセージングとして良いと思います
一方で同期的に処理するオブジェクトもあるので
アラン・ケイのオブジェクトはオブジェクト指向の一部でしかないと思うんですよね
同様に非同期なメッセージングもメッセージングの一部でしかなくて
同期的なメソッドコールもメッセージングとして良いと思います
179デフォルトの名無しさん
2021/03/20(土) 14:50:49.82ID:ct9wvzVp そのように考えるとJavaなどの言語がオブジェクト指向言語と
言われることとも整合します
言われることとも整合します
180デフォルトの名無しさん
2021/03/20(土) 14:58:01.68ID:ct9wvzVp 非同期IOでC10K問題が解決したのはそうでしょうけど
プログラミング言語のライブラリには非同期IOも同期IOもありますから
非同期がオブジェクトの本質だとは思わないです
オブジェクトは非同期に処理するものもあるし同期に処理するものもあるという
ことだと思います
アラン・ケイがオブジェクト指向という言葉を作って
そこから抽象化されていって今に至るんじゃないかと思います
プログラミング言語のライブラリには非同期IOも同期IOもありますから
非同期がオブジェクトの本質だとは思わないです
オブジェクトは非同期に処理するものもあるし同期に処理するものもあるという
ことだと思います
アラン・ケイがオブジェクト指向という言葉を作って
そこから抽象化されていって今に至るんじゃないかと思います
181デフォルトの名無しさん
2021/03/20(土) 15:02:10.13ID:M+lSuHvS >>177
それは逆です
別の話ですが例えで出すとインターネットの基本であるIPパケットは非同期で一方向ですが
それを利用したTCP上のHTTPなどは戻り値がある両方向で(時間はかかれど)同期に見えるよう作られてます
このように基本は非同期でその上に同期を実現はできます
逆は無理です
ここが一番重要なところです
オブジェクト指向のメッセージングも本質的には非同期で一方向です
その上に擬似的にRPCもしくは関数といった同期呼び出しは可能です
それらの概念があった上で実装としてはプログラミング言語によっては関数呼び出しとして実現してるといった状況です
それは逆です
別の話ですが例えで出すとインターネットの基本であるIPパケットは非同期で一方向ですが
それを利用したTCP上のHTTPなどは戻り値がある両方向で(時間はかかれど)同期に見えるよう作られてます
このように基本は非同期でその上に同期を実現はできます
逆は無理です
ここが一番重要なところです
オブジェクト指向のメッセージングも本質的には非同期で一方向です
その上に擬似的にRPCもしくは関数といった同期呼び出しは可能です
それらの概念があった上で実装としてはプログラミング言語によっては関数呼び出しとして実現してるといった状況です
182デフォルトの名無しさん
2021/03/20(土) 15:09:23.37ID:ct9wvzVp >>181
同期を実現してるというところが大事なところなんじゃないかと
必要もないのにそうしてるわけではないでしょう
同期な方がわかりやすくて使いやすいから同期にしてるわけで
同期が基本で非同期にしたいところは非同期の処理を書いてというのが
プログラミング言語の主流なわけですから、非同期にした方が効率が良いところもあるでしょうけど
そういうケースがあるからといって非同期がオブジェクト指向の本質ではないと思います
同期を実現してるというところが大事なところなんじゃないかと
必要もないのにそうしてるわけではないでしょう
同期な方がわかりやすくて使いやすいから同期にしてるわけで
同期が基本で非同期にしたいところは非同期の処理を書いてというのが
プログラミング言語の主流なわけですから、非同期にした方が効率が良いところもあるでしょうけど
そういうケースがあるからといって非同期がオブジェクト指向の本質ではないと思います
183デフォルトの名無しさん
2021/03/20(土) 15:17:38.11ID:ct9wvzVp 通信を同期に行うか非同期に行うかは通信の詳細なので
オブジェクトという高次の概念にそういった詳細を入れるのは抽象度が合わないと思うんですよね
オブジェクトに同期、非同期の縛りがないならばIPパケットが非同期で流れてることとも
矛盾は生じないわけだから、問題ないと思うんですよね
オブジェクトという高次の概念にそういった詳細を入れるのは抽象度が合わないと思うんですよね
オブジェクトに同期、非同期の縛りがないならばIPパケットが非同期で流れてることとも
矛盾は生じないわけだから、問題ないと思うんですよね
184デフォルトの名無しさん
2021/03/20(土) 15:17:46.32ID:ebrbGMYs >>164
>そういう動的で型の弱い言語なら全く問題ないし、
そういう動的で型の弱い言語?
“そういう”て言われても何のこと言ってるの?
ある型を引数として受け取る関数を別の関数の引数や戻り値として受け渡しするのに
型が動的か静的かも関係ないければ型付けが弱いか強いかも関係なやろ
>そういう動的で型の弱い言語なら全く問題ないし、
そういう動的で型の弱い言語?
“そういう”て言われても何のこと言ってるの?
ある型を引数として受け取る関数を別の関数の引数や戻り値として受け渡しするのに
型が動的か静的かも関係ないければ型付けが弱いか強いかも関係なやろ
185デフォルトの名無しさん
2021/03/20(土) 15:18:56.03ID:M+lSuHvS >>182
話の流れを勘違いしてるようだが
「オブジェクト指向の本質はメッセージング」という流れだよ
その話と「そのメッセージングの基本は一方向非同期であり両方向同期はその上に作られる」という話をごっちゃにしてる
もちろんどちらも正しい
反論があるならば上記のどちらかの話なついて書いてほしい
一方で「オブジェクト指向の本質は非同期」という主張は誰もしていない
話の流れを勘違いしてるようだが
「オブジェクト指向の本質はメッセージング」という流れだよ
その話と「そのメッセージングの基本は一方向非同期であり両方向同期はその上に作られる」という話をごっちゃにしてる
もちろんどちらも正しい
反論があるならば上記のどちらかの話なついて書いてほしい
一方で「オブジェクト指向の本質は非同期」という主張は誰もしていない
186デフォルトの名無しさん
2021/03/20(土) 15:19:36.07ID:PoGobC7U >>184
とりあえずcでpthreadをお前の思うように実装してみれば?まず無理だから。
とりあえずcでpthreadをお前の思うように実装してみれば?まず無理だから。
187デフォルトの名無しさん
2021/03/20(土) 15:23:16.73ID:R72307UF >>174
オブジェクト指向は生まれた時から俺の股間に付いているが?
オブジェクト指向は生まれた時から俺の股間に付いているが?
188デフォルトの名無しさん
2021/03/20(土) 15:24:43.62ID:ebrbGMYs >>165
>それは概念のレイヤーが異なることをあなたが理解できていないだけ
>例えばオブジェクト指向でのメッセージングとは関数呼び出しではないです
レイヤーが異なるかどうかは捉え方によるんだよ
オブジェクト指向の観点だけから関数呼び出しとは違うと言っても意味がないよ
「オブジェクト指向を使うメリットは何?」
>それは概念のレイヤーが異なることをあなたが理解できていないだけ
>例えばオブジェクト指向でのメッセージングとは関数呼び出しではないです
レイヤーが異なるかどうかは捉え方によるんだよ
オブジェクト指向の観点だけから関数呼び出しとは違うと言っても意味がないよ
「オブジェクト指向を使うメリットは何?」
189デフォルトの名無しさん
2021/03/20(土) 15:25:44.75ID:R72307UF トイレでオシッコを出したり止めたりだな!
>>185
>「オブジェクト指向の本質はメッセージング」という流れだよ
928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは
チンポ.オシッコを出す
チンポ.オシッコを止める
さっきトイレでやってきた。
929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く
>>185
>「オブジェクト指向の本質はメッセージング」という流れだよ
928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは
チンポ.オシッコを出す
チンポ.オシッコを止める
さっきトイレでやってきた。
929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く
190デフォルトの名無しさん
2021/03/20(土) 15:26:48.24ID:ct9wvzVp191デフォルトの名無しさん
2021/03/20(土) 15:28:21.44ID:ct9wvzVp メッセージングを実装するときの話ですね、非同期の処理があれば同期の処理は実装できるぜってことですね
つまりオブジェクト指向と非同期は関係ないという僕の考えと同じですね
つまりオブジェクト指向と非同期は関係ないという僕の考えと同じですね
192デフォルトの名無しさん
2021/03/20(土) 15:31:58.55ID:R72307UF 831 デフォルトの名無しさん sage 2018/11/11(日) 10:00:59.18 ID:Tyd11AGx
たとえば、CycはFredという名前の男がドナルドダックのモノマネをするという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には羽がないことは知っているが、
アヒルのように歩き、アヒルのように鳴くものはアヒルに違いないと考えた。
したがって、CycはFredがドナルドダックのモノマネしている間、
Fredはそれでも人間なのかと尋ねた。
925 デフォルトの名無しさん 2018/11/21(水) 18:36:07.42 ID:8Yc2p7H1
>>919
>そもそもアランケイの言う「実行中」は「起動中」であって
>「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に
チンポがシコシコしている間、俺はそれでも俺なのかと尋ねた。
829 デフォルトの名無しさん 2018/11/11(日) 09:52:59.70 ID:y84pWKv0
(第1章 はじめに 2頁)
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。
『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル
たとえば、CycはFredという名前の男がドナルドダックのモノマネをするという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には羽がないことは知っているが、
アヒルのように歩き、アヒルのように鳴くものはアヒルに違いないと考えた。
したがって、CycはFredがドナルドダックのモノマネしている間、
Fredはそれでも人間なのかと尋ねた。
925 デフォルトの名無しさん 2018/11/21(水) 18:36:07.42 ID:8Yc2p7H1
>>919
>そもそもアランケイの言う「実行中」は「起動中」であって
>「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に
チンポがシコシコしている間、俺はそれでも俺なのかと尋ねた。
829 デフォルトの名無しさん 2018/11/11(日) 09:52:59.70 ID:y84pWKv0
(第1章 はじめに 2頁)
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。
『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル
193デフォルトの名無しさん
2021/03/20(土) 15:33:56.91ID:paFdJ8yI194デフォルトの名無しさん
2021/03/20(土) 15:38:17.09ID:R72307UF 785 名無し三等兵 sage 2019/12/03(火) 08:03:27.78 ID:sujZBpWD
>>762
>「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
チンポにチンポ自身を扱く機能が備わっていないので自動詞は不適切だから(34文字)
胸(心臓)には鼓動する機能があるため自動詞の適用対象だが
チンポには勃起する機能はあっても自身を扱く機能はないので「チンポ『が』勃起する」は成立しても「チンポ『が』シコシコする」は成立しない
夢精した状況を「チンポ『が』シコシコした」と称したければ「チンポがエロい夢を見させ夢精した」=「脳ではなくチンポが思考を司りエロい夢を見させて夢精させた」という状況で可となる
脳でなくチンポで物を考える生物についてなら「チンポ『が』シコシコする」は成り立つ
如何にもだつお的じゃないか
>>762
>「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
チンポにチンポ自身を扱く機能が備わっていないので自動詞は不適切だから(34文字)
胸(心臓)には鼓動する機能があるため自動詞の適用対象だが
チンポには勃起する機能はあっても自身を扱く機能はないので「チンポ『が』勃起する」は成立しても「チンポ『が』シコシコする」は成立しない
夢精した状況を「チンポ『が』シコシコした」と称したければ「チンポがエロい夢を見させ夢精した」=「脳ではなくチンポが思考を司りエロい夢を見させて夢精させた」という状況で可となる
脳でなくチンポで物を考える生物についてなら「チンポ『が』シコシコする」は成り立つ
如何にもだつお的じゃないか
195デフォルトの名無しさん
2021/03/20(土) 15:50:32.64ID:ct9wvzVp >>193
元々のというのはアラン・ケイのオブジェクト指向ではってことですね
アラン・ケイのオブジェクトが非同期にやりとりするのはわかりましたが
アラン・ケイのオブジェクト指向は現代のオブジェクト指向の概念からすると
特殊例の一つだと思っています
オブジェクト指向 -> (詳細化) -> アラン・ケイのオブジェクト指向 -> (詳細化) -> メッセージングは非同期
という話だと思っていて、あなたがいう本質とは実装のことを指してるんだと思ってます
僕は現代のプログラミング言語でも通用するより抽象的なオブジェクト指向という概念に興味があります
元々のというのはアラン・ケイのオブジェクト指向ではってことですね
アラン・ケイのオブジェクトが非同期にやりとりするのはわかりましたが
アラン・ケイのオブジェクト指向は現代のオブジェクト指向の概念からすると
特殊例の一つだと思っています
オブジェクト指向 -> (詳細化) -> アラン・ケイのオブジェクト指向 -> (詳細化) -> メッセージングは非同期
という話だと思っていて、あなたがいう本質とは実装のことを指してるんだと思ってます
僕は現代のプログラミング言語でも通用するより抽象的なオブジェクト指向という概念に興味があります
196デフォルトの名無しさん
2021/03/20(土) 15:50:46.76ID:R72307UF オブジェクト指向が一時的な流行語ではなく、ソフトウェア開発の世界に自然に浸透していったのは
それが人間の自然本来の考え方であり、根源的なものであり、普遍性がある考え方だからなのです。
河合 昭男 『オブジェクト指向と哲学』
https://www.sociomedia.co.jp/8740
チンポは自分とは繋がっているけれども独立している、それがオブジェクト指向なのである!
それが人間の自然本来の考え方であり、根源的なものであり、普遍性がある考え方だからなのです。
河合 昭男 『オブジェクト指向と哲学』
https://www.sociomedia.co.jp/8740
チンポは自分とは繋がっているけれども独立している、それがオブジェクト指向なのである!
197デフォルトの名無しさん
2021/03/20(土) 15:55:08.77ID:R72307UF 657 仕様書無しさん [sage] 2020/08/12(水) 11:11:53.67 ID:
>>655
ちんぽをシコシコするというのは主体が別に存在する(おそらく右手であろう)
しかし、ちんぼがシコシコするというのはちんぽさんが主体となって別の輪状、もしくは固定された箇所に向かって
往復運動をすることを言う
そしてそれはシコシコと形容される範囲内におけるような物体や部位である必要がある
つまり、日本語でいうところのチンポがシコシコするというのは文法上は正しい
しかしである
ちんぽは主語になってよいものかという問題が残る
ちんぽは思考できるのか、主体的な存在であるのかという疑問んである
我々はちんぽを自由自在に動かす事はできない
「勃つんだ!ジョー!!」などと呼びかけた人もいるであろう
ちんぽは人の付属物であると同時に1本の主体的な存在でもある
思考や意識といったものはないかもしれないし他動的な刺激により、また体調により変化を兆す。
つまり、チンポがシコシコするというのはチンポが主体的な存在かどうかが問われているのであり
勃起に至る過程からそれはまさに肯定されるべきなのである
>>655
ちんぽをシコシコするというのは主体が別に存在する(おそらく右手であろう)
しかし、ちんぼがシコシコするというのはちんぽさんが主体となって別の輪状、もしくは固定された箇所に向かって
往復運動をすることを言う
そしてそれはシコシコと形容される範囲内におけるような物体や部位である必要がある
つまり、日本語でいうところのチンポがシコシコするというのは文法上は正しい
しかしである
ちんぽは主語になってよいものかという問題が残る
ちんぽは思考できるのか、主体的な存在であるのかという疑問んである
我々はちんぽを自由自在に動かす事はできない
「勃つんだ!ジョー!!」などと呼びかけた人もいるであろう
ちんぽは人の付属物であると同時に1本の主体的な存在でもある
思考や意識といったものはないかもしれないし他動的な刺激により、また体調により変化を兆す。
つまり、チンポがシコシコするというのはチンポが主体的な存在かどうかが問われているのであり
勃起に至る過程からそれはまさに肯定されるべきなのである
198デフォルトの名無しさん
2021/03/20(土) 16:05:13.64ID:paFdJ8yI >>195
君はウェブブラウザを使ってる?
ブラウザ上で動いており現代に最も使われているプログラミング言語の一つであるJavaScriptはオブジェクト指向で非同期プログラミング
君はJavaScriptでプログラミングすらしたことがないですか?
君はウェブブラウザを使ってる?
ブラウザ上で動いており現代に最も使われているプログラミング言語の一つであるJavaScriptはオブジェクト指向で非同期プログラミング
君はJavaScriptでプログラミングすらしたことがないですか?
199デフォルトの名無しさん
2021/03/20(土) 16:11:47.63ID:b4o+GKeK 美しい女優のパンツにウン筋がついてたから、ウンコは美味みたいな論法だな。
200デフォルトの名無しさん
2021/03/20(土) 16:12:19.29ID:ct9wvzVp201デフォルトの名無しさん
2021/03/20(土) 16:33:43.93ID:ct9wvzVp var a = 1;
var b = a + 2;
のようなプログラムを書いたら同期的に処理されるので基本は同期ですよね
DOMのイベントなどは非同期に処理されますけど
処理が同期か非同期かはオブジェクト指向の本質ではないと僕は思っていて
僕がいう本質はそれがなければある物事が成り立たないことで
オブジェクト指向という概念に処理が同期か非同期かは必要ないですよね
オブジェクトという概念がまずあって
それの実装として非同期的な処理を行えるということだと思うんですよ
オブジェクトは、データと操作をガッチャンコしたもので
データと操作をガッチャンコすると何が嬉しいのっていうのがオブジェクト指向を
理解する上で最も重要なことだと思います
var b = a + 2;
のようなプログラムを書いたら同期的に処理されるので基本は同期ですよね
DOMのイベントなどは非同期に処理されますけど
処理が同期か非同期かはオブジェクト指向の本質ではないと僕は思っていて
僕がいう本質はそれがなければある物事が成り立たないことで
オブジェクト指向という概念に処理が同期か非同期かは必要ないですよね
オブジェクトという概念がまずあって
それの実装として非同期的な処理を行えるということだと思うんですよ
オブジェクトは、データと操作をガッチャンコしたもので
データと操作をガッチャンコすると何が嬉しいのっていうのがオブジェクト指向を
理解する上で最も重要なことだと思います
202デフォルトの名無しさん
2021/03/20(土) 17:00:33.75ID:ct9wvzVp >>1の感覚はバランスが取れてて
オブジェクトは使えるところで使えば良くて何でもかんでもオブジェクトにする必要がないのは
そのとおりだと思う
オブジェクト指向の本によっては何でもかんでもオブジェクトにするのが成功の秘訣ですと
書いてあるんだよね、僕もいろいろ本は読んだけどこればかりはウソだと思ったし
今でもその恨みは忘れていない
こういう住所が与えられたときに
京都府京都市山科区御陵天徳町
愛媛県伊予市市場
秋田県由利本荘市岩城勝手
『都道府県』と『市郡区』と『町村地区』に分けて処理しなければいけないことがあったんだけど
Prefectureオブジェクト、Cityオブジェクト、Townオブジェクトを作って大失敗した
全部文字列型で処理する方が速く正確に処理できた
オブジェクトは使えるところで使えば良くて何でもかんでもオブジェクトにする必要がないのは
そのとおりだと思う
オブジェクト指向の本によっては何でもかんでもオブジェクトにするのが成功の秘訣ですと
書いてあるんだよね、僕もいろいろ本は読んだけどこればかりはウソだと思ったし
今でもその恨みは忘れていない
こういう住所が与えられたときに
京都府京都市山科区御陵天徳町
愛媛県伊予市市場
秋田県由利本荘市岩城勝手
『都道府県』と『市郡区』と『町村地区』に分けて処理しなければいけないことがあったんだけど
Prefectureオブジェクト、Cityオブジェクト、Townオブジェクトを作って大失敗した
全部文字列型で処理する方が速く正確に処理できた
203デフォルトの名無しさん
2021/03/20(土) 17:04:57.36ID:paFdJ8yI >>200
Promiseは全く関係ないです
Promiseはデザインパターンの一つなのでどの言語でも自分でプログラミングできます
ただし様々な仕様になりうるので最近は各言語が公式サポートするようになりブラウザ上のJavaScriptでも6年前にようやくPromiseオブジェクトが導入され始めました
したがって更新のないIEブラウザにはPromiseオブジェクトはありません
そしてJavaScriptは登場した25年前からオブジェクト指向かつ非同期プログラミングです
Promiseは全く関係ないです
Promiseはデザインパターンの一つなのでどの言語でも自分でプログラミングできます
ただし様々な仕様になりうるので最近は各言語が公式サポートするようになりブラウザ上のJavaScriptでも6年前にようやくPromiseオブジェクトが導入され始めました
したがって更新のないIEブラウザにはPromiseオブジェクトはありません
そしてJavaScriptは登場した25年前からオブジェクト指向かつ非同期プログラミングです
204デフォルトの名無しさん
2021/03/20(土) 17:12:05.40ID:dAj+8+Ce205デフォルトの名無しさん
2021/03/20(土) 17:16:48.10ID:L/wa3g20206デフォルトの名無しさん
2021/03/20(土) 17:26:37.14ID:ct9wvzVp207デフォルトの名無しさん
2021/03/20(土) 17:35:40.64ID:M+lSuHvS >>205
こういう流れ
「オブジェクト指向を産み出したアラン・ケイによるオブジェクト指向は非同期なメッセージング」
↓
「現代のメジャーなオブジェクト指向の言語では全て同期プログラミングでしょ?」
↓
「現代のメジャーなオブジェクト指向の言語の一つであるJavaScriptは非同期プログラミング」
こういう流れ
「オブジェクト指向を産み出したアラン・ケイによるオブジェクト指向は非同期なメッセージング」
↓
「現代のメジャーなオブジェクト指向の言語では全て同期プログラミングでしょ?」
↓
「現代のメジャーなオブジェクト指向の言語の一つであるJavaScriptは非同期プログラミング」
208デフォルトの名無しさん
2021/03/20(土) 17:41:34.77ID:ct9wvzVp 「JavaScriptは非同期プログラミング」
クリスマスは七面鳥をこんがりみたいな、なかなか味のある表現だなって思いました
クリスマスは七面鳥をこんがりみたいな、なかなか味のある表現だなって思いました
209デフォルトの名無しさん
2021/03/20(土) 18:06:45.97ID:ebrbGMYs >オブジェクト内部がどうなっているかは見えないし知る必要もないのがオブジェクト指向
と主張してるにも関わらず
オブジェクト指向を使うメリットを理解するためには
アラン・ケイの主張や実装手段の非同期メッセージングなど
内部がどうなっているかを知る必要があるみたいな話をされても困るよね
オブジェクト指向の価値を理解して実践できてるなら
相手が知る必要がない実装の詳細とインターフェースを分けて話せばいいのに
と主張してるにも関わらず
オブジェクト指向を使うメリットを理解するためには
アラン・ケイの主張や実装手段の非同期メッセージングなど
内部がどうなっているかを知る必要があるみたいな話をされても困るよね
オブジェクト指向の価値を理解して実践できてるなら
相手が知る必要がない実装の詳細とインターフェースを分けて話せばいいのに
210デフォルトの名無しさん
2021/03/20(土) 18:10:28.59ID:ct9wvzVp >>203
非同期プログラミングは、非同期のプログラムを書くことだと思いますけど
25年前のJavaScriptの非同期のプログラムってDOMのイベントですか?
言語の機能ではなくてDOMの機能のような気がしますけどそもそもあれって非同期なんでしたっけ?
非同期プログラミングは、非同期のプログラムを書くことだと思いますけど
25年前のJavaScriptの非同期のプログラムってDOMのイベントですか?
言語の機能ではなくてDOMの機能のような気がしますけどそもそもあれって非同期なんでしたっけ?
211デフォルトの名無しさん
2021/03/20(土) 18:16:11.81ID:paFdJ8yI >>209
非同期メッセージングは実装手段ではないよ
オブジェクト指向の本質的な概念であり様々な実装手段の上位にある
だから実装は各言語の特色に応じて実装しても構わないので各プログラミングスタイルは異なってくる
例えばJavaScriptではクロージャーによる継続渡しの非同期コールバックで帰りのメッセージングを受けているね
非同期メッセージングは実装手段ではないよ
オブジェクト指向の本質的な概念であり様々な実装手段の上位にある
だから実装は各言語の特色に応じて実装しても構わないので各プログラミングスタイルは異なってくる
例えばJavaScriptではクロージャーによる継続渡しの非同期コールバックで帰りのメッセージングを受けているね
212デフォルトの名無しさん
2021/03/20(土) 18:19:06.81ID:pSr3PkfH ここにいる人達に同じ要望書を渡しても、全員がバラバラなクラス書きそうだな
213デフォルトの名無しさん
2021/03/20(土) 18:20:47.46ID:ct9wvzVp WindowオブジェクトのsetTimeoutとかかな?
非同期に処理するオブジェクトもあるよってだけな気がします
オブジェクトという概念があってWindowオブジェクトはその実装の一つでしかないので
非同期メッセージングがオブジェクト指向の本質とは言えないと思います
非同期に処理するオブジェクトもあるよってだけな気がします
オブジェクトという概念があってWindowオブジェクトはその実装の一つでしかないので
非同期メッセージングがオブジェクト指向の本質とは言えないと思います
214デフォルトの名無しさん
2021/03/20(土) 18:29:07.83ID:ct9wvzVp Windowsで動くJScriptはWindowオブジェクト使えないですから
非同期がJavaScriptに必須というわけでもないですよね
JavaScriptはプロトタイプベースのオブジェクト指向言語でしかなくて
非同期の処理も書けるよってだけな気がします
アラン・ケイのオブジェクト指向と繋げるのは筋悪だと思います
非同期がJavaScriptに必須というわけでもないですよね
JavaScriptはプロトタイプベースのオブジェクト指向言語でしかなくて
非同期の処理も書けるよってだけな気がします
アラン・ケイのオブジェクト指向と繋げるのは筋悪だと思います
215デフォルトの名無しさん
2021/03/20(土) 18:38:59.94ID:M+lSuHvS >>213
JavaScriptはブラウザ上で全て非同期プログラミングで動いている
例えばマウスをクリックしたりスマホでタップしたりなどあらゆるヒューマンインターフェースは非同期イベント
AJAXのAがAsynchronousであるように通信も非同期で行われる
JavaScriptはブラウザ上で全て非同期プログラミングで動いている
例えばマウスをクリックしたりスマホでタップしたりなどあらゆるヒューマンインターフェースは非同期イベント
AJAXのAがAsynchronousであるように通信も非同期で行われる
216デフォルトの名無しさん
2021/03/20(土) 18:43:25.67ID:ct9wvzVp Javaのオブジェクト指向は非同期メッセージングがなくても成り立ちますが
アラン・ケイのオブジェクト指向は非同期メッセージングがなければ成り立ちません
アラン・ケイのオブジェクト指向はより多くの条件が付随するという意味で
オブジェクト指向の概念を特化したものと捉えるべきだと思います
現代のプログラミング言語は非同期に処理を行うプログラムを書くこともできますが
それは言語による実装の機能の一部でしかないです
アラン・ケイのオブジェクト指向は非同期メッセージングがなければ成り立ちません
アラン・ケイのオブジェクト指向はより多くの条件が付随するという意味で
オブジェクト指向の概念を特化したものと捉えるべきだと思います
現代のプログラミング言語は非同期に処理を行うプログラムを書くこともできますが
それは言語による実装の機能の一部でしかないです
217デフォルトの名無しさん
2021/03/20(土) 18:50:44.19ID:ct9wvzVp >>215
プログラミングはプログラムを書くことなので、非同期で動いているで良いと思います
たとえばボタン押したときのリスナーの処理って非同期ではないんじゃないですか?
処理を非同期に実装しないとたぶん同期的に処理されると思います
AJAXはそれはそうでしょうね
XMLHttpRequestオブジェクトが非同期の処理を行えるよってだけですね
オブジェクト指向という概念があって、同期の処理も非同期の処理も書けますよってことですね
だから処理を同期で行うか非同期で行うかはオブジェクト指向とは関わりがないと思うんですよ
プログラミングはプログラムを書くことなので、非同期で動いているで良いと思います
たとえばボタン押したときのリスナーの処理って非同期ではないんじゃないですか?
処理を非同期に実装しないとたぶん同期的に処理されると思います
AJAXはそれはそうでしょうね
XMLHttpRequestオブジェクトが非同期の処理を行えるよってだけですね
オブジェクト指向という概念があって、同期の処理も非同期の処理も書けますよってことですね
だから処理を同期で行うか非同期で行うかはオブジェクト指向とは関わりがないと思うんですよ
218デフォルトの名無しさん
2021/03/20(土) 18:57:38.06ID:ct9wvzVp ブラウザ上で動くJavaScriptでなぜ非同期の処理が多いかというと
GUIがあるからだと思います、GUIの描画を止めてしまうとユーザビリティが悪いので
時間がかかる処理は非同期に行ってGUIの描画が止まらないようにしましょうということだと思うんですよ
オブジェクト指向という高次の概念から導かれることではなくて
GUIを見るユーザにとって使いやすいという現実的な理由によるものです
GUIがあるからだと思います、GUIの描画を止めてしまうとユーザビリティが悪いので
時間がかかる処理は非同期に行ってGUIの描画が止まらないようにしましょうということだと思うんですよ
オブジェクト指向という高次の概念から導かれることではなくて
GUIを見るユーザにとって使いやすいという現実的な理由によるものです
219デフォルトの名無しさん
2021/03/20(土) 18:59:45.50ID:ebrbGMYs >>211
>オブジェクト指向の本質的な概念であり様々な実装手段の上位にある
「オブジェクト指向を使うメリット」を説明した上で
その内容を理解するために非同期メッセージングの理解が必要というならまだ理解できるが
どちらも説明してないのに「非同期メッセージングはオブジェクト指向の本質的な概念だから〜」と言っても意味ないよ
インターフェースと実装の詳細を分けろって意味が分からないのかな?
>オブジェクト指向の本質的な概念であり様々な実装手段の上位にある
「オブジェクト指向を使うメリット」を説明した上で
その内容を理解するために非同期メッセージングの理解が必要というならまだ理解できるが
どちらも説明してないのに「非同期メッセージングはオブジェクト指向の本質的な概念だから〜」と言っても意味ないよ
インターフェースと実装の詳細を分けろって意味が分からないのかな?
220デフォルトの名無しさん
2021/03/20(土) 19:04:21.43ID:N3y6R9Zx 全部非同期でいいんだよただ
メッセージボックスとかは同期じゃないと困る
ファイルを削除して上書きとかが非同期じゃ問題になる
言語や志向と関係ない
メッセージボックスとかは同期じゃないと困る
ファイルを削除して上書きとかが非同期じゃ問題になる
言語や志向と関係ない
221デフォルトの名無しさん
2021/03/20(土) 19:16:40.55ID:ct9wvzVp 僕は普段Javaでシングルスレッド+同期の処理ばかり書いてますけど
オブジェクト指向のありがたみは感じます
ハッシュテーブルやリストなどのオブジェクトは使いまくりです
オブジェクト指向のありがたみは感じます
ハッシュテーブルやリストなどのオブジェクトは使いまくりです
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★6 [BFU★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★2 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★6 [ぐれ★]
- 被爆者は「怒りが腹の底から湧いてくる」高市首相“非核三原則見直し報道”に被爆地で懸念や憤りの声《長崎》 [1ゲットロボ★]
- 中国側が首相答弁の撤回要求、日本側拒否★3 [夜のけいちゃん★]
- 「沖縄は日本ではない」とは言ってなかった。中国メディアのインタビューを韓国紙が誇張して報道か [夜のけいちゃん★]
- 【悲報】三越伊勢丹「おーい、インバウンドが居なくなったらお前ら代わりに店来いよ」ネトウヨ「そんな金あるわけねーだろ、ボケ!」 [616817505]
- ホテル業界、高市のせいで中国から大量キャンセル 「大変厳しい状態。一刻も早い収束を願います」 [271912485]
- 【正論】玉木雄一郎「高市さんの答弁は米軍が攻撃を受けた場合を前提としており、撤回するのは難しい」特定野党を完全論破 [519511584]
- おっぱい舐めさせて
- 【悲報】ネトウヨ「中国人観光客が減って観光しやすくなって良かったじゃん。俺は代わりに旅行しないけど」 [616817505]
- 👩「諸事情でミーアキャット飼えなくなったから誰か20万以上で買って😢」 [394133584]
