探検
オブジェクト指向はオワコン
■ このスレッドは過去ログ倉庫に格納されています
2023/08/26(土) 22:00:53.85ID:H4l7y46b
最近の言語には採用されないことが増えている
178デフォルトの名無しさん
2023/09/21(木) 00:30:07.90ID:Zhn9cjmN >>175
Rustでももちろんインスタンスが状態を持つよ
Rustでももちろんインスタンスが状態を持つよ
179デフォルトの名無しさん
2023/09/21(木) 00:31:45.48ID:Zhn9cjmN Cで書いた抽象データ型のインスタンスでも状態持つものはいくらでもある
180デフォルトの名無しさん
2023/09/21(木) 00:37:01.04ID:MHm+UEXg >>177
クロージャからオブジェクトを生成する事もできるから似ていることは認めるが、オブジェクトを生成できるのは関数型でも破壊的変更ができるcommon lispとかschemeだけ。sicpにも書いてある。
純粋関数型のhaskellはクロージャからオブジェクトを生成するのは無理。破壊的変更ができないから。
schemeをもとにしたというjavascriptは実際クラスを使わない場合、クロージャでオブジェクトを生成する。真似するとオブジェクト指向でクラスは本質ではない。
クロージャからオブジェクトを生成する事もできるから似ていることは認めるが、オブジェクトを生成できるのは関数型でも破壊的変更ができるcommon lispとかschemeだけ。sicpにも書いてある。
純粋関数型のhaskellはクロージャからオブジェクトを生成するのは無理。破壊的変更ができないから。
schemeをもとにしたというjavascriptは実際クラスを使わない場合、クロージャでオブジェクトを生成する。真似するとオブジェクト指向でクラスは本質ではない。
181デフォルトの名無しさん
2023/09/21(木) 00:39:36.94ID:MHm+UEXg182デフォルトの名無しさん
2023/09/21(木) 02:13:11.73ID:5L348Pt1 【根拠あり】フリーランスエンジニアは年収862万円取れて普通という話【高収入】
【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法
ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方
月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です
フリーランスの年収は平均いくら?年収1000万円以上の割合とは
2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い!
【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法
ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方
月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です
フリーランスの年収は平均いくら?年収1000万円以上の割合とは
2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い!
183デフォルトの名無しさん
2023/09/21(木) 10:11:19.31ID:gdQGfC6C インスタンスとか面倒くさい
全部グローバルなstaticクラスで良くね?
全部グローバルなstaticクラスで良くね?
184デフォルトの名無しさん
2023/09/21(木) 10:12:39.58ID:eeeUNNfX ただの置物となった今ではオブジェ指向でいい
185デフォルトの名無しさん
2023/09/21(木) 12:25:41.73ID:bQKF4ZJD みんなオブジェクト指向で作ってんだし合わせようよガキじゃないんだからさぁ!
186デフォルトの名無しさん
2023/09/21(木) 13:32:02.03ID:kBQIqVu1 悪いことは少しでも改善しないと進歩がない。
187デフォルトの名無しさん
2023/09/21(木) 13:38:45.02ID:6kzUrMUc ガキじゃないんだからさぁ!
188デフォルトの名無しさん
2023/09/21(木) 14:04:48.18ID:KxLc2ofK189デフォルトの名無しさん
2023/09/21(木) 14:59:44.19ID:kBQIqVu1 オブジェクト指向はイメージが広がる(といえば聞こえはいいが妄想を掻き立てられる)
人がいるからオレオレ定義があちこちで膨らんだり独善が独り歩きして
おかしな慣わしみたいになり弊害が出てきた
人がいるからオレオレ定義があちこちで膨らんだり独善が独り歩きして
おかしな慣わしみたいになり弊害が出てきた
190デフォルトの名無しさん
2023/09/21(木) 23:48:33.39ID:UfkHHyEe それはおまえの意見、何の根拠もない
残念、はい論破
オブジェクト指向は非常に重要
これはプログラミング言語界で結論が出ている
オブジェクト指向の大勝利
残念、はい論破
オブジェクト指向は非常に重要
これはプログラミング言語界で結論が出ている
オブジェクト指向の大勝利
191デフォルトの名無しさん
2023/09/22(金) 00:01:25.05ID:J2JYhUeP aiもだいたいオブジェクト指向でかくしなぁ
192デフォルトの名無しさん
2023/09/22(金) 00:14:03.42ID:2pjQfvCi >>189
わかる
わかる
193デフォルトの名無しさん
2023/09/22(金) 00:24:21.80ID:nZQCXJJN >>188
ご都合主義はお互いじゃね?
俺が言ってるのは値でもlet mutで宣言したら状態持ってるように見えるから、抽象データ型が状態持ってると言ってんじゃねっと言ってる
極端なこと言うと
let mut x:usize = 0;
x += 1;
こう書いたらxは状態持ってるように見えるけど
単なるデータ型が状態持ってると考えるのはおかしいからこれは単なる可変の変数に入った値と考えるべきじゃないか?
と言っているんだよ。
ご都合主義はお互いじゃね?
俺が言ってるのは値でもlet mutで宣言したら状態持ってるように見えるから、抽象データ型が状態持ってると言ってんじゃねっと言ってる
極端なこと言うと
let mut x:usize = 0;
x += 1;
こう書いたらxは状態持ってるように見えるけど
単なるデータ型が状態持ってると考えるのはおかしいからこれは単なる可変の変数に入った値と考えるべきじゃないか?
と言っているんだよ。
194デフォルトの名無しさん
2023/09/22(金) 00:29:47.98ID:nZQCXJJN 単純に状態を持った局所変数環境のオブジェクトって概念が新しいんだよ。
言ってしまうとそれを使えば全部オブジェクト指向と言える。
言ってしまうとそれを使えば全部オブジェクト指向と言える。
195デフォルトの名無しさん
2023/09/22(金) 00:59:30.50ID:pJdskUNF >>189
ソフトウエアを開発できないくせに薀蓄だけは立派な
宣教師みたいなやついるよな。
あれもマウントの一種、というか飯のタネなんだろう。
悲惨なのは今だに新たな入門者が宣教師の餌食になって
犠牲者が増えつづけていること
ソフトウエアを開発できないくせに薀蓄だけは立派な
宣教師みたいなやついるよな。
あれもマウントの一種、というか飯のタネなんだろう。
悲惨なのは今だに新たな入門者が宣教師の餌食になって
犠牲者が増えつづけていること
196デフォルトの名無しさん
2023/09/22(金) 01:48:01.87ID:PcXfPQTh 指向という言葉がダサイ
197デフォルトの名無しさん
2023/09/22(金) 03:06:05.54ID:UufRKzh2 宣教師が最近布教してるのは、アジャイル開発やドメイン駆動だから
オブジェクト指向はオワコンなのかもな
オブジェクト指向はオワコンなのかもな
198デフォルトの名無しさん
2023/09/22(金) 08:48:16.06ID:ghnEkhiW オブジェクトを信じなさい
オブジェクトこそが唯一無二の真理
オブジェクトこそが唯一無二の真理
199デフォルトの名無しさん
2023/09/22(金) 09:10:31.15ID:dkRHHNCe200デフォルトの名無しさん
2023/09/23(土) 05:00:06.68ID:AGrNs2HH >>197
そもそもアジャイル開発やドメイン駆動はオブジェクト指向と直交する概念では無い。というかレイヤーが違う
むしろオブジェクト指向はアジャイル開発やドメイン駆動を実現する根幹手法の一つと言って良い
そもそもアジャイル開発やドメイン駆動はオブジェクト指向と直交する概念では無い。というかレイヤーが違う
むしろオブジェクト指向はアジャイル開発やドメイン駆動を実現する根幹手法の一つと言って良い
201デフォルトの名無しさん
2023/09/23(土) 10:10:00.44ID:i9fpyxKg いやいや
202デフォルトの名無しさん
2023/09/23(土) 12:51:50.80ID:tQpIWXxa パトラッシュ、疲れただろう?
ボクもマジメに突っ込むのはもう疲れたよ。
ボクもマジメに突っ込むのはもう疲れたよ。
203デフォルトの名無しさん
2023/09/23(土) 18:54:47.60ID:IJ8IqG3m *'``・* 。
| `*。
, 。∩∧ ∧ * これで元気にな〜れ
+ (´・ω・`) *。+゚
`*。 ヽ、 つ *゚*
`・+。*・' ゚⊃ +゚
☆ ∪~ 。*゚
`・+。*・ ゚
っ
https://i.imgur.com/RFbLlK2.gif
| `*。
, 。∩∧ ∧ * これで元気にな〜れ
+ (´・ω・`) *。+゚
`*。 ヽ、 つ *゚*
`・+。*・' ゚⊃ +゚
☆ ∪~ 。*゚
`・+。*・ ゚
っ
https://i.imgur.com/RFbLlK2.gif
204デフォルトの名無しさん
2023/09/23(土) 21:15:19.84ID:ChB9aNsl 元気があればオブジェクト指向もわかる
ありがとー!!
ありがとー!!
205デフォルトの名無しさん
2023/09/24(日) 09:15:37.08ID:AyCWE2s/ ・クラス型オブジェクト指向はオワコン
・プロトタイプ型オブジェクト指向は有用
って考えでいいの?
・プロトタイプ型オブジェクト指向は有用
って考えでいいの?
206デフォルトの名無しさん
2023/09/24(日) 11:08:15.86ID:jYY1d0Rr プログラム構造と、開発技法を比較されましても…
207デフォルトの名無しさん
2023/09/24(日) 11:23:16.51ID:gTj5LbbT208デフォルトの名無しさん
2023/09/24(日) 11:25:26.13ID:Cw9+et/n javascriptのカオス具合からして失敗だろうプロトタイプは
209デフォルトの名無しさん
2023/09/24(日) 16:23:52.68ID:3YxY27wg jsのエコシステムはoopどころじゃない邪悪じゃろ
210デフォルトの名無しさん
2023/09/24(日) 23:57:23.50ID:oGK434I1 継承は規模が大きければ使いどころがある
無理に使うと害悪なので、必要に迫られるまで使うな
無理に使うと害悪なので、必要に迫られるまで使うな
211デフォルトの名無しさん
2023/09/25(月) 00:33:21.23ID:OWge9pjh 継承の良いところと悪いところを両方把握して使い所を見極めればいいんだよ
何でもかんでも継承するのがよくないというだけ
クラスベースの継承、プロトタイプ継承、委譲の3つを比較してそれぞれの良いところ悪いところをきちんとおさえること
何でもかんでも継承するのがよくないというだけ
クラスベースの継承、プロトタイプ継承、委譲の3つを比較してそれぞれの良いところ悪いところをきちんとおさえること
212デフォルトの名無しさん
2023/09/25(月) 00:35:49.52ID:HQWAHROu 継承が悪いとかもう何十年も前から言われてるから
それについてはもう語らずに置くけど
クラス化が難しい
クラス化の難しさが悪い
クラス化の難しさの自覚しにくさ語りにくさが悪い
と言いたい
継承関係のないクラスを数個つくる
その時点で難しい
分担、切り分け、依存関係がもう難しい
再利用性のある単位でくくりだすのが難しい
スッキリしたインタフェースを提供するのが難しい
これもっと一般化して言うなら
単に抽象化の難しさってことでもあるけど
それについてはもう語らずに置くけど
クラス化が難しい
クラス化の難しさが悪い
クラス化の難しさの自覚しにくさ語りにくさが悪い
と言いたい
継承関係のないクラスを数個つくる
その時点で難しい
分担、切り分け、依存関係がもう難しい
再利用性のある単位でくくりだすのが難しい
スッキリしたインタフェースを提供するのが難しい
これもっと一般化して言うなら
単に抽象化の難しさってことでもあるけど
213デフォルトの名無しさん
2023/09/25(月) 00:57:40.87ID:aQ9tHgH2214デフォルトの名無しさん
2023/09/25(月) 01:08:01.38ID:aQ9tHgH2 >>210
大規模アプリケーションで広範囲・多階層に渡る継承を多用してソフトを構築したら地獄やでー
初期CDするときはいいんよ。
やっちゃえやっちゃえって感じでソースベースのメソッドなどの単位で差分プログラミングできるところ
どんどん継承活用して、流用性を高めたとか言って俯瞰せずコード書き進めちゃえばなんとかCDが進む
がしかし、ふと立ち止まり、あるいは時間がたち別の者が全体を見渡しなおすと
もうクロスファイルでソースベースマクロ展開みたいな継承がクチャンクチャンの依存のジャングルを成していて
gotoの嵐とはまた違った混沌に手がつけられなくなるぜ
大規模アプリケーションで広範囲・多階層に渡る継承を多用してソフトを構築したら地獄やでー
初期CDするときはいいんよ。
やっちゃえやっちゃえって感じでソースベースのメソッドなどの単位で差分プログラミングできるところ
どんどん継承活用して、流用性を高めたとか言って俯瞰せずコード書き進めちゃえばなんとかCDが進む
がしかし、ふと立ち止まり、あるいは時間がたち別の者が全体を見渡しなおすと
もうクロスファイルでソースベースマクロ展開みたいな継承がクチャンクチャンの依存のジャングルを成していて
gotoの嵐とはまた違った混沌に手がつけられなくなるぜ
215デフォルトの名無しさん
2023/09/25(月) 01:10:18.53ID:aQ9tHgH2 入門書のサンプルコードレベルで一見便利そうに見えても
継承が有用なケースというものはあるにはあるが、
実践では実はあまり多くない
継承が有用なケースというものはあるにはあるが、
実践では実はあまり多くない
216デフォルトの名無しさん
2023/09/25(月) 01:17:35.87ID:aQ9tHgH2 >>212
それは抽象化が難しいのではなく、
ソフトウエアプログラムの構造(アーキテクチャー)を
いわゆる迷信のように流布するクラスベースオブジェクト型にはめて現そうとしたけど
うまく現せないことに気が付いたってことだよ
いつまでも気が付かないよりはるかにまし
それは抽象化が難しいのではなく、
ソフトウエアプログラムの構造(アーキテクチャー)を
いわゆる迷信のように流布するクラスベースオブジェクト型にはめて現そうとしたけど
うまく現せないことに気が付いたってことだよ
いつまでも気が付かないよりはるかにまし
217デフォルトの名無しさん
2023/09/25(月) 10:14:44.94ID:fq2bVCra >>214
それはクラス使わなくても変わらない。
混沌に見えるのは大規模になったことが原因であって継承が原因ではない。
クラスにも継承にも欠点は無い。
理解できない人がアホみたいに欠点欠点言ってるだけ。
それはクラス使わなくても変わらない。
混沌に見えるのは大規模になったことが原因であって継承が原因ではない。
クラスにも継承にも欠点は無い。
理解できない人がアホみたいに欠点欠点言ってるだけ。
218デフォルトの名無しさん
2023/09/25(月) 10:18:35.43ID:8PlaAgAt 継承があるメソッドは必ずoverrideするって決めたら
ベースクラスの事も思い出されて良いのでは?
まあ、無駄な処理挟むけど、忘れてしまうよりは良いのでは?
ベースクラスの事も思い出されて良いのでは?
まあ、無駄な処理挟むけど、忘れてしまうよりは良いのでは?
219デフォルトの名無しさん
2023/09/25(月) 10:37:24.49ID:2mEvB720 書けてしまうのが問題
継承使うのはライブラリやフレームワークで留めて
応用では使わんことやね
継承使うのはライブラリやフレームワークで留めて
応用では使わんことやね
220デフォルトの名無しさん
2023/09/25(月) 10:42:26.44ID:PH+ByLf2 継承使うかクラスコードコピペしまくるかの違いなら
継承の方が何万倍マシだろうに
継承の方が何万倍マシだろうに
221デフォルトの名無しさん
2023/09/25(月) 11:40:39.55ID:KK/E8/oR オブジェクト指向は
コードの再利用のためという建前で余計な文法を追加すること
コードの再利用のためという建前で余計な文法を追加すること
222デフォルトの名無しさん
2023/09/25(月) 12:33:16.07ID:2IrvX93h 顕わに目に見えないところでコード展開&マージが起きているのと同じなので
小さくて浅い階層なら把握できるが広範で深い階層に渡る依存のジャングルは
何かどうなっているのかわからなくなってしまう
小さくて浅い階層なら把握できるが広範で深い階層に渡る依存のジャングルは
何かどうなっているのかわからなくなってしまう
223デフォルトの名無しさん
2023/09/25(月) 12:33:41.40ID:2IrvX93h >>220
委譲使いなよ
委譲使いなよ
224デフォルトの名無しさん
2023/09/25(月) 12:34:57.59ID:IRZWO8eC >>220
それはもう既に発想がおかしいんだよ
そのままだとコピペになる(同じコードになる)ところはプログラムに当然発生して多くはコピペを回避すべきなんだけど
それを継承という間違ったやり方で解決するのは間違っているという話だよ
その時に継承しか知らないと継承するしかないと思いこんじゃう
だから継承禁止もしくは原則として継承を使わないというプロジェクトや会社があったり指導が入ったりするわけだよ
最近のプログラミング言語は継承自体を無くしたものが増えてるのもその流れだね
それはもう既に発想がおかしいんだよ
そのままだとコピペになる(同じコードになる)ところはプログラムに当然発生して多くはコピペを回避すべきなんだけど
それを継承という間違ったやり方で解決するのは間違っているという話だよ
その時に継承しか知らないと継承するしかないと思いこんじゃう
だから継承禁止もしくは原則として継承を使わないというプロジェクトや会社があったり指導が入ったりするわけだよ
最近のプログラミング言語は継承自体を無くしたものが増えてるのもその流れだね
225デフォルトの名無しさん
2023/09/25(月) 12:36:18.97ID:2IrvX93h226デフォルトの名無しさん
2023/09/25(月) 12:58:59.41ID:8PlaAgAt まあ、フレームワークで継承使わないとかどんだけ縛りだよって話だ罠
227デフォルトの名無しさん
2023/09/25(月) 13:04:11.51ID:2IrvX93h228デフォルトの名無しさん
2023/09/25(月) 13:09:20.84ID:zA4g5CbZ >>225
その大規模アプリをオブジェクト指向じゃなくて何を使えばましになるの?
その大規模アプリをオブジェクト指向じゃなくて何を使えばましになるの?
229デフォルトの名無しさん
2023/09/25(月) 13:24:45.11ID:2IrvX93h 言語や開発ツールが規模の大きいソフトウエアの構築を支援するために提供しているモジュラリティ―のための
パッケージなどを利用した機能階層・分割設計の方がましだろ
パッケージなどを利用した機能階層・分割設計の方がましだろ
230デフォルトの名無しさん
2023/09/25(月) 13:27:11.83ID:+N84ygWf クラスは物とその動作の設計図なんだろうけど
動作だけをうまく整理してまとめて設計図にして、物はその動作によって加工されるだけでよくて、別に物自体が何かしてくれなくていい発想の方が自然なことは多いと思う
だからクラスベースだと頭の中と噛み合わなくて残念な気持ちになる
動作だけをうまく整理してまとめて設計図にして、物はその動作によって加工されるだけでよくて、別に物自体が何かしてくれなくていい発想の方が自然なことは多いと思う
だからクラスベースだと頭の中と噛み合わなくて残念な気持ちになる
231デフォルトの名無しさん
2023/09/25(月) 13:56:58.76ID:8PlaAgAt 動作とか考えるからおかしくなる
役割と考えれば分かりやすい
役割と考えれば分かりやすい
232デフォルトの名無しさん
2023/09/25(月) 14:00:54.45ID:dKK05iVY233デフォルトの名無しさん
2023/09/25(月) 14:01:29.91ID:cH5L00do 右に動かすメソッドが
WindowでもRectでもウンコでもなんでも動かせるのが自然で良いということかな?
WindowでもRectでもウンコでもなんでも動かせるのが自然で良いということかな?
234デフォルトの名無しさん
2023/09/25(月) 14:10:00.64ID:8PlaAgAt オブジェクト指向より
エージェント指向
エージェント指向
235デフォルトの名無しさん
2023/09/25(月) 15:41:32.02ID:bPtriFyH236デフォルトの名無しさん
2023/09/25(月) 15:45:33.94ID:8PlaAgAt 他言語待ち出してオブジェクト指向言語の作法説いても意味が無いだろw
そんな事言った何でも不用で最後はアセンブラに回帰するわw
そんな事言った何でも不用で最後はアセンブラに回帰するわw
237デフォルトの名無しさん
2023/09/25(月) 15:54:54.23ID:bPtriFyH238デフォルトの名無しさん
2023/09/25(月) 16:02:29.40ID:1Oz14nin つまりライブラリ前提で作るくらい設計がしっかりしてるモノ以外、独自クラスを継承させまくるようなコードは難あり?
239デフォルトの名無しさん
2023/09/25(月) 16:13:29.29ID:zA4g5CbZ >>235
あなたがどう思うのもあなたの問題なのでそれでよいと思う
あなたがどう思うのもあなたの問題なのでそれでよいと思う
240デフォルトの名無しさん
2023/09/25(月) 16:17:53.44ID:8PlaAgAt241デフォルトの名無しさん
2023/09/25(月) 16:19:38.57ID:8PlaAgAt まあ、ここでマイポリシー語るのもいいが、決めつけたり他人に強要するなよってな
242デフォルトの名無しさん
2023/09/25(月) 16:28:37.60ID:s0yAomY2 客観的な根拠が一番強い
過去のしがらみのない最近の各プログラミング言語GoやNimやRustなどはいずれも継承を持たない
継承がないという以外の点では全く方向性の異なる各プログラミング言語が継承は不要という同じ結論に辿り着いている
過去のしがらみのない最近の各プログラミング言語GoやNimやRustなどはいずれも継承を持たない
継承がないという以外の点では全く方向性の異なる各プログラミング言語が継承は不要という同じ結論に辿り着いている
243デフォルトの名無しさん
2023/09/25(月) 16:31:16.00ID:E8ARCJfk 継承に限ったことではないが Pros/Cons両面理解した上で状況に応じた使い分けがてきないうちはいつまで経っても素人のまま
244デフォルトの名無しさん
2023/09/25(月) 16:34:24.96ID:8PlaAgAt else不用論者みたいな奴だなぁ
245デフォルトの名無しさん
2023/09/25(月) 16:50:14.80ID:zA4g5CbZ しがらみとか考え方次第でどうとでもなるからそれは客観的じゃないよw
246デフォルトの名無しさん
2023/09/25(月) 16:52:29.42ID:8PlaAgAt とある言語仕様に無いから全言語に渡って不用って
極端なw
極端なw
247デフォルトの名無しさん
2023/09/25(月) 17:09:03.89ID:F0mcF4FZ Rustはトレイトのデフォルト実装で継承の一部をまかなってる
それ以上の部分はマクロでコピペコードを生成するかそのままコピペすることで継承相当を実現している
それ以上の部分はマクロでコピペコードを生成するかそのままコピペすることで継承相当を実現している
248デフォルトの名無しさん
2023/09/25(月) 17:11:03.38ID:0g73jH4i 必要と不要ではなく静的と動的で分けるのが、商業的でない中立な見方
継承は不要だから採用されないのではなく
動的ディスパッチだから動的言語に近い言語でしか採用されない
継承は不要だから採用されないのではなく
動的ディスパッチだから動的言語に近い言語でしか採用されない
249デフォルトの名無しさん
2023/09/25(月) 17:11:12.20ID:s0yAomY2 最近のプログラミング言語
【継承がない】Elixir、Go、Julia、Nim、Rust、Zig
【継承がある】Kotlin(Javaの後継)、Swift(Objective-Cの後継)
つまり過去のしがらみで継承を含めざるを得なかったKotlinとSwiftを除いて全ての言語に継承はない
【継承がない】Elixir、Go、Julia、Nim、Rust、Zig
【継承がある】Kotlin(Javaの後継)、Swift(Objective-Cの後継)
つまり過去のしがらみで継承を含めざるを得なかったKotlinとSwiftを除いて全ての言語に継承はない
250デフォルトの名無しさん
2023/09/25(月) 17:12:48.35ID:moYp0tPu >>247
Derefが継承の代替として使われることもあるよ
Derefが継承の代替として使われることもあるよ
251デフォルトの名無しさん
2023/09/25(月) 17:15:24.44ID:hRr4oOqW >>249
広く使われてるGUIライブラリのある言語とそうでない言語の分類そのものですね
広く使われてるGUIライブラリのある言語とそうでない言語の分類そのものですね
252デフォルトの名無しさん
2023/09/25(月) 18:09:35.84ID:8PlaAgAt GUI処理書くのに継承無いとか嫌過ぎる
253デフォルトの名無しさん
2023/09/25(月) 18:33:50.47ID:0g73jH4i jsにはラムダがあるからGUI目的の継承をしなくなった
254デフォルトの名無しさん
2023/09/25(月) 19:32:34.54ID:UoPxhUhD255デフォルトの名無しさん
2023/09/25(月) 19:36:58.29ID:FlTLze7i rust や go だと継承に相当するようなことができるのでいまいちピンとこないんだよね。
256デフォルトの名無しさん
2023/09/25(月) 22:27:07.39ID:SCrjiBQI >>247
ちょっと違うので補足するね
Rustのトレイトは機能・性質を示すもので型でもクラスでもなく変数(やその値)を持つこともなく各型に対して横断的な位置付けであり
クラスとその継承を排除したRustでは各型に対して必要な複数のトレイトを実装すなわち合成していくわけだけど
トレイトのメソッドは二種類に分かれていて
必須メソッド(required methods)は各型で実装コードが異なるメソッド
提供メソッド(provided methods)は各型で実装コードが共通にできるメソッドで必須メソッドやトレイト境界となる他のトレイトのメソッドを用いてデフォルト実装している
つまり機能性質を示すトレイトに対して各型固有の実装と各型共通の実装の二種類に整理しているだけにすぎないよ
したがってRustではトレイトとそのメソッドをきちんと設計すればコピペは出て来ない
複数の型でコードが全く同じとなるならば上述のように各型共通の実装となる提供メソッド(provided methods)になりデフォルト実装となる
もしマクロでメソッド実装を自動生成する場合はそれは各型固有の実装となる必須メソッド(required methods)に対してマクロの引数指定部分だけが各型で実装が異なる場合になりコピペではないね
ちょっと違うので補足するね
Rustのトレイトは機能・性質を示すもので型でもクラスでもなく変数(やその値)を持つこともなく各型に対して横断的な位置付けであり
クラスとその継承を排除したRustでは各型に対して必要な複数のトレイトを実装すなわち合成していくわけだけど
トレイトのメソッドは二種類に分かれていて
必須メソッド(required methods)は各型で実装コードが異なるメソッド
提供メソッド(provided methods)は各型で実装コードが共通にできるメソッドで必須メソッドやトレイト境界となる他のトレイトのメソッドを用いてデフォルト実装している
つまり機能性質を示すトレイトに対して各型固有の実装と各型共通の実装の二種類に整理しているだけにすぎないよ
したがってRustではトレイトとそのメソッドをきちんと設計すればコピペは出て来ない
複数の型でコードが全く同じとなるならば上述のように各型共通の実装となる提供メソッド(provided methods)になりデフォルト実装となる
もしマクロでメソッド実装を自動生成する場合はそれは各型固有の実装となる必須メソッド(required methods)に対してマクロの引数指定部分だけが各型で実装が異なる場合になりコピペではないね
257デフォルトの名無しさん
2023/09/26(火) 00:48:16.96ID:mW7xEcGz Rustだとライブラリで定義済みのトレイト実装を少しカスタマイズしたいだけでも
変更の必要ないメソッドやトレイト実装も全て元の構造体に委譲するコードを書かないといけない
継承がないから構造体1つに対して10個や20個トレイト実装があるのは普通なのでマクロ使わないとコピペ地獄でやってられない
一般的OOPならメソッド1つオーバーライドするだけの簡単な作業
変更の必要ないメソッドやトレイト実装も全て元の構造体に委譲するコードを書かないといけない
継承がないから構造体1つに対して10個や20個トレイト実装があるのは普通なのでマクロ使わないとコピペ地獄でやってられない
一般的OOPならメソッド1つオーバーライドするだけの簡単な作業
258デフォルトの名無しさん
2023/09/26(火) 01:12:22.03ID:i+iKqNf9 >>257
発想がおかしい
そんなことが必要になることはない
使わないメソッドを生やす必要はない
もし元の型の全てのメソッドを生やす必要があるのならばその時はDerefを使えばよくて自動的に全てのメソッドが生えた形になる
発想がおかしい
そんなことが必要になることはない
使わないメソッドを生やす必要はない
もし元の型の全てのメソッドを生やす必要があるのならばその時はDerefを使えばよくて自動的に全てのメソッドが生えた形になる
259デフォルトの名無しさん
2023/09/26(火) 02:37:40.13ID:LjeIbJUy Derefのそういう使い方はアンチパターンでしょ
Traitをカスタムするという発想がおかしいというのは同意
オーバーライドなんてするな
Traitをカスタムするという発想がおかしいというのは同意
オーバーライドなんてするな
260デフォルトの名無しさん
2023/09/26(火) 09:00:17.20ID:HGB+okJ7 世の中、似た様な画面で項目だけ違う処理がたくさんあり過ぎる
261デフォルトの名無しさん
2023/09/26(火) 09:10:04.28ID:75MGfnhF 型クラス構造を階層的に取り込んで内包していくような設計に
考えが凝り固まっているんじゃねーかな
昨日階層の抽象化は本来そういうものではなく
階層が上がるにつれより抽象的な構造に「昇華」していく筈だと思うが
考えが凝り固まっているんじゃねーかな
昨日階層の抽象化は本来そういうものではなく
階層が上がるにつれより抽象的な構造に「昇華」していく筈だと思うが
262デフォルトの名無しさん
2023/09/26(火) 09:11:41.08ID:HGB+okJ7 まあ、フレームワークくらいにしか使わないけどな
263デフォルトの名無しさん
2023/09/26(火) 09:32:49.19ID:75MGfnhF264デフォルトの名無しさん
2023/09/26(火) 09:36:16.66ID:TLEYFp/r 以前Javaのユーザグループミーティングに出席した際、James Gosling(Javaの生みの親)がメインの講演者として招かれていました。
すばらしいQ&Aセッションの途中に、こんな質問が出ました。
「もう一度最初からJavaを作り直すとしたら、どこを変更したいですか?」
答えは「クラスを除外するでしょうね」というものでした。
笑いが静まった後、彼が説明したのは、本当の問題はクラス自体ではなく実装継承(extendsの関係)なのだということでした。
インターフェースによる継承(implementsの関係)のほうが望ましいのです。できる限り実装継承は避けたほうがよいでしょう。
すばらしいQ&Aセッションの途中に、こんな質問が出ました。
「もう一度最初からJavaを作り直すとしたら、どこを変更したいですか?」
答えは「クラスを除外するでしょうね」というものでした。
笑いが静まった後、彼が説明したのは、本当の問題はクラス自体ではなく実装継承(extendsの関係)なのだということでした。
インターフェースによる継承(implementsの関係)のほうが望ましいのです。できる限り実装継承は避けたほうがよいでしょう。
265デフォルトの名無しさん
2023/09/26(火) 09:37:57.06ID:75MGfnhF カプセル化とアクセサーがまたクソなんだよな
ソフトウエアの規模拡大に伴う複雑さをより増長させる
ソフトウエアの規模拡大に伴う複雑さをより増長させる
266デフォルトの名無しさん
2023/09/26(火) 09:45:45.09ID:Pu+bW/hr だから、エージェント指向だよ
267デフォルトの名無しさん
2023/09/26(火) 09:49:57.35ID:fxfYOiWX おっと、明後日の方向から不思議な球が飛んできたw
268デフォルトの名無しさん
2023/09/26(火) 09:56:26.60ID:Pu+bW/hr 同一マシン内である事すら不用な仕組み
全ての手続きはメッセージでやり取りされる
ゆえにアクセサは各エージェントに1組だけ
全ての手続きはメッセージでやり取りされる
ゆえにアクセサは各エージェントに1組だけ
269デフォルトの名無しさん
2023/09/26(火) 09:58:18.98ID:fxfYOiWX ソフトウエアを作っていない人と見た。
270デフォルトの名無しさん
2023/09/26(火) 10:03:09.62ID:fxfYOiWX271デフォルトの名無しさん
2023/09/26(火) 11:27:47.44ID:J0zXOsdf272デフォルトの名無しさん
2023/09/30(土) 16:53:59.14ID:lIYH5p6r273デフォルトの名無しさん
2023/09/30(土) 16:58:25.69ID:syF3qyzI なんとか技法とか、なんとか指向とか
宗教みたいなもんだから、別に従う必要も無いんだよなぁ
宗教みたいなもんだから、別に従う必要も無いんだよなぁ
274デフォルトの名無しさん
2023/09/30(土) 17:05:11.09ID:nY8APa4N275デフォルトの名無しさん
2023/09/30(土) 17:08:33.49ID:syF3qyzI 頭弱いのバレバレな文章だなぁ
276デフォルトの名無しさん
2023/09/30(土) 17:11:28.38ID:nY8APa4N 性格が悪いのがまたからかわれに出てきたのか
277デフォルトの名無しさん
2023/09/30(土) 17:12:32.20ID:nY8APa4N ↓と申しております、とか書くころ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本の立場説明へ…外務省局長が北京到着 “台湾有事”首相答弁に中国反発 ★3 [煮卵★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★2 [蚤の市★]
- NHK、受信料の未払い世帯に督促強化へ 民事手続きの新組織を設置 差し押さえなどの強制執行も [1ゲットロボ★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★2 [1ゲットロボ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 【悲報】女性初の総理大臣 高市早苗氏、安倍晋三さんが積み上げてきたものを一瞬でぶっ壊してしまう😱wwwwwwwwwwwwwwwwwwwwww [871926377]
- 高市のおばちゃん「毎年5兆円あれば食料品の消費税軽減税率をずーっとゼロにできるよ」👈いきなり2兆円の損失を出す😲 [521921834]
- 愛国者ナザレンコ「左翼は自己中な差別主義者で偽善者。日本人ファーストを叩いておいて台湾人が死んでも知らな〜いでしょ。中露の犬」 [856698234]
- 高市早苗のあだ名「キングボンビー」に決まる [931948549]
- 【悲報】有名ウヨ論客、「現実的に考えて中国と仲直りするしかなくね?」と言ったら野良ウヨから総叩きにあう [856698234]
- 【高市悲報】経団連会長、高市と面談「おい!ちゃんと中国と対話しろよ!😨」 [359965264]
