探検
オブジェクト指向はオワコン
■ このスレッドは過去ログ倉庫に格納されています
2023/08/26(土) 22:00:53.85ID:H4l7y46b
最近の言語には採用されないことが増えている
160デフォルトの名無しさん
2023/09/17(日) 17:25:30.93ID:EVA53Rjw オブジェクト指向はプログラム方法の一つの「説明」でしかないのに勝ち負けって頭悪すぎる
161デフォルトの名無しさん
2023/09/17(日) 17:50:31.52ID:gR/F5lVJ >>159
と、また釣れたおじさんが申しておりますw
と、また釣れたおじさんが申しておりますw
162デフォルトの名無しさん
2023/09/17(日) 18:28:12.30ID:YZPhsijr ポンポン ダボハゼみたいにすぐ釣れて釣りとしては面白くないな。
入門で目にしたオブジェクト志向以外知らない頭の悪い初心者だということはよくわかった
入門で目にしたオブジェクト志向以外知らない頭の悪い初心者だということはよくわかった
163デフォルトの名無しさん
2023/09/17(日) 19:25:51.35ID:gR/F5lVJ >>162
と素人が申しております
と素人が申しております
164デフォルトの名無しさん
2023/09/17(日) 19:48:48.58ID:YZPhsijr はい論破とオウム返しばっか、池沼かよ
┐(´д`)┌ヤレヤレダワ
┐(´д`)┌ヤレヤレダワ
165デフォルトの名無しさん
2023/09/17(日) 20:37:36.54ID:gR/F5lVJ166デフォルトの名無しさん
2023/09/18(月) 04:03:20.68ID:ALFf6KVm いまだオブジェクト指向、継承とか言っているのはこんなやつ
167デフォルトの名無しさん
2023/09/18(月) 07:00:18.19ID:8fhm6wiI 朝の4時にそのレスできて良かったじゃん
168デフォルトの名無しさん
2023/09/18(月) 07:55:33.59ID:xwdOkQ7Z 書き込み下’時間でマウントw
169デフォルトの名無しさん
2023/09/18(月) 09:12:53.00ID:vG0yZxdJ マ板でやれやバカども
170デフォルトの名無しさん
2023/09/18(月) 09:43:43.01ID:Y1JfaYii 非表示にしとけよ拘りつよつよアスペくん😅
>>169
>>169
171デフォルトの名無しさん
2023/09/20(水) 23:29:17.31ID:VBDgfudD モジュール化の手法として関数がまず考えられた。
共通するまとまったルーチンを実行するにあたって関数は便利であったが、
呼び出しをしてメモリ上に展開されても処理が完了するとメモリ上から消滅してしまう
(それまでの履歴がパァ)という性質のものだった。
simulaの開発者の一人であるダールは、そのせっかくメモリ上に展開したデータであるのに、呼び出しが完了してしまうと制御もメモリ展開ももとに戻ってしまう関数(正確にはブロック)に代わるものとして、
呼び出したとしても制御もメモリ展開も消滅しない、つまり状態をもつ関数(局所変数を持つ関数)を「オブジェクト(object)」と呼んだ。
アラン・ケイは、その関数とは性質が異なる「オブジェクト」を多用するプログラミングを安直にオブジェクト指向と呼んだ(ようだ)。
歴史的に整理すると
構造化プログラミングは、関数を多用するプログラミング(基本3構造は前提)。
オブジェクト指向プログラミングは、ダールのオブジェクトを多用するプログラミング。
と言える。嘘だと思うならダールの論文を読んで見ればいい(と言いつつ本当に読んだら細かい重要なところをバッサリと切り落としているのがバレる)。
共通するまとまったルーチンを実行するにあたって関数は便利であったが、
呼び出しをしてメモリ上に展開されても処理が完了するとメモリ上から消滅してしまう
(それまでの履歴がパァ)という性質のものだった。
simulaの開発者の一人であるダールは、そのせっかくメモリ上に展開したデータであるのに、呼び出しが完了してしまうと制御もメモリ展開ももとに戻ってしまう関数(正確にはブロック)に代わるものとして、
呼び出したとしても制御もメモリ展開も消滅しない、つまり状態をもつ関数(局所変数を持つ関数)を「オブジェクト(object)」と呼んだ。
アラン・ケイは、その関数とは性質が異なる「オブジェクト」を多用するプログラミングを安直にオブジェクト指向と呼んだ(ようだ)。
歴史的に整理すると
構造化プログラミングは、関数を多用するプログラミング(基本3構造は前提)。
オブジェクト指向プログラミングは、ダールのオブジェクトを多用するプログラミング。
と言える。嘘だと思うならダールの論文を読んで見ればいい(と言いつつ本当に読んだら細かい重要なところをバッサリと切り落としているのがバレる)。
172デフォルトの名無しさん
2023/09/20(水) 23:35:39.69ID:VBDgfudD オブジェクト指向がわかりにくいのは
ダールの論文がいろんな画期的なアイディアてんこ盛りなせいだ。
オブジェクト(object)という概念が画期的なのに、オブジェクトを生成するクラスやオブジェクトの型概念にも触れていて、何がポイントかわかりにくい。
でも何回か読んでるとダールのいうオブジェクト(object)という概念が画期的なのだと分かる。
要するに関数に代わるモジュール化の手法が(ダールの)オブジェクト。
ダールの論文がいろんな画期的なアイディアてんこ盛りなせいだ。
オブジェクト(object)という概念が画期的なのに、オブジェクトを生成するクラスやオブジェクトの型概念にも触れていて、何がポイントかわかりにくい。
でも何回か読んでるとダールのいうオブジェクト(object)という概念が画期的なのだと分かる。
要するに関数に代わるモジュール化の手法が(ダールの)オブジェクト。
173デフォルトの名無しさん
2023/09/21(木) 00:10:08.07ID:H7YqoNcR 今年から流行りだした生成AIはオブジェクト指向と関係ない
数式のように誰にとっても明解でないところが終わってるオブジェクト指向は愚かな人間どもの間違ったアプローチ
その先には何も無さそうな事だけは誰の目にも明解
数式のように誰にとっても明解でないところが終わってるオブジェクト指向は愚かな人間どもの間違ったアプローチ
その先には何も無さそうな事だけは誰の目にも明解
174デフォルトの名無しさん
2023/09/21(木) 00:20:33.81ID:0U/PD5XH 状態が可変のオブジェクトはデバッグが難しい
どこで状態が変わるのかわからんようになるわ
業務要件とは独立したデータ構造でさえ多少複雑なことするとそういうことおこる
ミュータブルは最小にしたが良い、マジで
どこで状態が変わるのかわからんようになるわ
業務要件とは独立したデータ構造でさえ多少複雑なことするとそういうことおこる
ミュータブルは最小にしたが良い、マジで
175デフォルトの名無しさん
2023/09/21(木) 00:22:34.55ID:MHm+UEXg176デフォルトの名無しさん
2023/09/21(木) 00:25:05.90ID:MHm+UEXg オブジェクトは状態持ってるからオブジェクトなんだよ!と強く言いたい。
持ってないならそれはそれは単なる抽象データ型のインスタンス。
持ってないならそれはそれは単なる抽象データ型のインスタンス。
177デフォルトの名無しさん
2023/09/21(木) 00:28:54.33ID:tdxL4aJO178デフォルトの名無しさん
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をカスタムするという発想がおかしいというのは同意
オーバーライドなんてするな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★4 [夜のけいちゃん★]
- 中国側が首相答弁の撤回要求、日本側拒否★3 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★4 [蚤の市★]
- 被爆者は「怒りが腹の底から湧いてくる」高市首相“非核三原則見直し報道”に被爆地で懸念や憤りの声《長崎》 [1ゲットロボ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★2 [蚤の市★]
- 【石破茂前首相】コメ政策転換に皮肉「農政復古の大号令」 [ぐれ★]
- ネトウヨ「中国のものは何もいらない!」 中国人「だったら漢字を使わないでください」 [314039747]
- 【速報】春節の飛行機も欠航ラッシュ 高市早苗終了か [695089791]
- マックって美味しい?
- 【悲報】中国から輸入した物を食べ、輸入した服を着て、輸入したスマホ弄ってる日本人「中国と戦争するぞ!」 [616817505]
- 【悲報】バス停の時刻表、もう誰もよめないと話題に…これが望まれた未来の正しいあり方なのか?狂ってるだろこんなのもはや😡 [339712612]
- 【悲報】高市さん、消える [535650357]
