2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

オブジェクト指向はオワコン

1 :デフォルトの名無しさん:2023/08/26(土) 22:00:53.85 ID:H4l7y46b.net
最近の言語には採用されないことが増えている

925 :デフォルトの名無しさん:2024/03/01(金) 17:27:04.12 ID:PeOPXftI.net
それが>>911 の人、何人かいるっぽい

926 :デフォルトの名無しさん:2024/03/01(金) 20:56:33.23 ID:KQ1HmSrc.net
継承には感謝しかないです

927 :デフォルトの名無しさん:2024/03/01(金) 21:29:01.44 ID:NM6ffmiH.net
クラス継承さえ使わなければ
継承は便利だからね

928 :デフォルトの名無しさん:2024/03/01(金) 22:31:08.80 ID:qr8UCngy.net
メソッドだけ継承できればいいよ

929 :デフォルトの名無しさん:2024/03/02(土) 07:16:17.19 ID:7IvxOyHp.net
クラスとかメソッド集合としての機能だけあればいい。
その代わりに外延性と集合演算をサポートしてくれ。そうすりゃ継承みたいなクソツールは要らなくなる。

930 :デフォルトの名無しさん:2024/03/02(土) 11:56:05.36 ID:0RQhliLl.net
クラスとか継承とかに不満持つのは不思議なんだが、他人の作ったコードやライブラリをうまく流用出来ずに文句言ってるのか?
自分で作る分には言語の機能にあっても使わなきゃいいだけだろうに
他の人が理解できないからだ、ってのならその「他の人」に言え

931 :デフォルトの名無しさん:2024/03/02(土) 12:17:52.47 ID:+4BUdsxu.net
人間が理解しやすくしなよ

932 :デフォルトの名無しさん:2024/03/02(土) 13:55:18.96 ID:ILWRlrIw.net
>>930
他の人になんて言えば良い?

933 :デフォルトの名無しさん:2024/03/02(土) 13:56:06.21 ID:pYjRDwip.net
>>930
クラス継承については全員が問題視している
Javaの生みの親ですらJavaを作り直せるならクラスを除外すると明言している
そして現実にモダンなプログラミング言語
Go、Rust、Zig、Nim、Julia、Elixirなど全てがクラスを除外している

>Javaのユーザグループミーティングに出席した際、
>James Gosling(Javaの生みの親)がメインの講演者として招かれていました。
>すばらしいQ&Aセッションの途中に、こんな質問が出ました。
>「もう一度最初からJavaを作り直すとしたら、どこを変更したいですか?」
>答えは「クラスを除外するでしょうね」というものでした。
>彼が説明したのは、本当の問題はクラス自体ではなく実装継承(extendsの関係)なのだということでした。
>インターフェースによる継承(implementsの関係)のほうが望ましいのです。
>できる限り実装継承は避けたほうがよいでしょう。

934 :デフォルトの名無しさん:2024/03/02(土) 13:58:52.73 ID:ILWRlrIw.net
ねえ!他の人になんて言えばいいの!?

935 :デフォルトの名無しさん:2024/03/02(土) 14:38:32.67 ID:an2Rf2WF.net
「俺は継承に親を殺された。絶対赦さない。絶対にだ」

936 :デフォルトの名無しさん:2024/03/02(土) 14:43:33.20 ID:ILWRlrIw.net
。°(´∩ω∩`)°。

937 :デフォルトの名無しさん:2024/03/02(土) 14:47:09.39 ID:iW0xTm2n.net
>>933
どこからの引用なのかちゃんと書こうよ
https://postd.cc/is-go-object-oriented/

938 :デフォルトの名無しさん:2024/03/02(土) 15:01:00.73 ID:OiLnCmP5.net
>>933
バカの一つ覚え乙

939 :デフォルトの名無しさん:2024/03/02(土) 15:26:08.25 ID:5qddeDE5.net
>>937
丁寧な説明あって助かったありがとう
実装継承は問題があるためクラス継承を使うのは辞めた方がよさそうね
そうするとクラス自体が不要なので今どきの言語にはクラスが無いわけなのね

940 :デフォルトの名無しさん:2024/03/02(土) 17:53:44.47 ID:JmA8+V/x.net
継承すると結合度が高くなり、基底クラスがいじりにくくなるから
implements で名前だけ基底クラスで宣言した方がよい
という経験則なわけね

941 :デフォルトの名無しさん:2024/03/02(土) 18:23:50.25 ID:C5B9iefL.net
>>940
違うよ
基底クラスは一切使わずにインターフェース等を使う
インターフェース等を備えていない言語ではやむをえないため抽象クラスで代替する

942 :デフォルトの名無しさん:2024/03/02(土) 21:21:19.79 ID:6JiP4UcJ.net
15年ぐらい前はstaticおじさんが馬鹿にされてたけど今じゃオブジェクト指向がオワコン呼ばわりかぁ

Lisp使おう()

943 :デフォルトの名無しさん:2024/03/03(日) 00:19:19.60 ID:Ic67hcFY.net
処理系も書かずに使おう(笑)

944 :デフォルトの名無しさん:2024/03/03(日) 12:51:43.47 ID:s0HRTEoD.net
オブジェクト指向に毒されてるpowershwll,python,ruby等も終わりかな
F#に興味出てきたな

945 :デフォルトの名無しさん:2024/03/03(日) 13:22:58.46 ID:4PUy8wCJ.net
あたりまえにオブジェクト指向使ってる現代でオブジェクト指向がオワコンって言うのはプログラム作らない人
ここの板のローカルルールくらい見ましょうね

946 :デフォルトの名無しさん:2024/03/03(日) 13:49:21.97 ID:HJzrw6yi.net
やたらとオブシコしてたのからの回帰ってならわかる そういう意味なんだろうなと思う

947 :デフォルトの名無しさん:2024/03/03(日) 14:11:44.50 ID:0VvwZNDM.net
>>940
何でそんなこと言うん?

948 :デフォルトの名無しさん:2024/03/03(日) 17:32:00.15 ID:7AiWdEnV.net
https://twitter.com/i/status/1763848620204544172

オブジェクト指向にも同じことが言えます
(deleted an unsolicited ad)

949 :デフォルトの名無しさん:2024/03/03(日) 17:33:19.72 ID:7AiWdEnV.net
オブジェクト指向を実践してない人ほど継承はダメだといっておられる
現実をまったく見ていない理論でしかないわけです

950 :デフォルトの名無しさん:2024/03/03(日) 17:33:33.79 ID:m+AYakYE.net
40年前に構造化プログラミング(いまあたりまえのプログラムをブロックモジュールに分ける概念)についてけなかった人とかも
理解しないまま「構造化プログラミングはオワコン!これからはオブジェクト指向!」ってそもそも構造化プログラミングの
発展系がオブジェクト指向だってわからずこのアホウみたいにウキャウキャしてたのかしら

951 :デフォルトの名無しさん:2024/03/03(日) 18:10:26.26 ID:nBM3NOHP.net
>>949
正しく理解しようよ
ダメなのはクラス継承
抽象型の継承はOK
オブジェクト指向もOK

952 :デフォルトの名無しさん:2024/03/03(日) 18:26:34.56 ID:zJ/qFUNe.net
>>951
Pythonは文脈によって意味が変わる多重継承ね!

随意筋 不随意筋
  ↖ ↗
  チンポ

953 :デフォルトの名無しさん:2024/03/03(日) 20:11:50.76 ID:InukkrXD.net
ついていけない人間がたくさん出てしまうパラダイムは多くの人間が使えないので自明にオワコン

954 :デフォルトの名無しさん:2024/03/03(日) 21:12:52.05 ID:vlko3Vgi.net
>>950
ありそうな話だなあ

955 :デフォルトの名無しさん:2024/03/03(日) 21:35:56.29 ID:9XAeTkis.net
>>933
Cの生みの親が作ったGoはともかく、Rustにクラスがなかったのはマジびびった。

Haskell覚えたときに、オブジェクト指向プログラミングの再利用性に疑問持って、
(実際にはしないけど)C++でクラス使わずテンプレートだけ使った方が再利用しやすいんじゃ…?とか思った。

そして最近、「スッキリわかるC言語」立ち読みしたら、C言語に(テンプレートとは違ってマクロっぽいが)ジェネリックっぽい機能が取り入れられてるみたい。
(使えないコンパイラがまだ多いのでLinuxのカーネル開発では禁止されてるみたいだけど)

あと、デザインパターンも、関数型言語で普通にしてる事がいくつか書いてて、オブジェクト指向言語だと意識しないと出来ないんだと気づいた。
(例:イテレータ、テンプレート・メソッド、シングルトン、アブストラクト・ファクトリ、ストラテジなど)

956 :デフォルトの名無しさん:2024/03/03(日) 22:06:17.23 ID:mVaeStz7.net
広い意味のオブジェクト指向は今でも有用であって
クラスを使ったオブジェクト指向が間違っていただけなので
GoやRustなど新しい言語にはクラスが無いけど(クラスを使わない)オブジェクト指向ですよ

957 :デフォルトの名無しさん:2024/03/03(日) 22:11:46.53 ID:JkCR2ZDo.net
>>953
おまえがオワコンなだけ。お前自身がついていけなくても、ついていけない人がたくさんいると思っていても
実際には多くの人がすでに実行してる。今やその辺の小学生でも
https://www.nhk.or.jp/school/sougou/programming/

958 :デフォルトの名無しさん:2024/03/03(日) 22:27:37.47 ID:9RvqtVLq.net
>>957
俺は「ついていけない人間がたくさん出てしまうパラダイム」の話をしているのに、お前は勝手に「俺がついていけない人がたくさんいると思っているパラダイム」の話を始めたな

俺の話を理解できていないのか、理解した上で関係なくお前のしたい話を始めたのか知らんが、それで俺にレスをつけておいて俺にオワコンと言ってくるなんて、なんてガイジなんだ
回線切って首吊って死んでくれよな

959 :デフォルトの名無しさん:2024/03/03(日) 22:50:31.38 ID:uAsMCupP.net
お前らさあ。。



次スレどうする?

960 :デフォルトの名無しさん:2024/03/03(日) 23:01:06.99 ID:A1Y/Mibd.net
つまりプロトタイプベースオブジェクト指向のJSは一歩も二歩も先に行ってたってこと?

961 :デフォルトの名無しさん:2024/03/03(日) 23:05:08.39 ID:slB98rWU.net
>>958
おまえ生まれてから今までずっと


何言うてんねん

962 :デフォルトの名無しさん:2024/03/03(日) 23:24:09.12 ID:9XAeTkis.net
>>960
まあ、JSは手続き型言語の皮をかぶったLispと言われる事もあるので、
そうとも言える。

ただLLだったので大規模開発に向かなかったのかと。

関数型言語と論理型言語は大きなカテゴリーでは宣言型言語になるんだけど、
オブジェクト指向も宣言的なプログラミングは目指してるんだよね。
メソッドチェーンと関数合成は向きが逆なだけで、やってることは同じだし。


Rust初めて見たときはC系統の文法のだけど、だいぶ関数型言語に寄ったなと思った。
しかも組み込み系の雑誌「interface」でだいぶ推してるし…。(お題を解く連載が続いてる)

何事かと。

963 :デフォルトの名無しさん:2024/03/04(月) 00:00:46.80 ID:ndPj2VnY.net
>>962
>メソッドチェーンと関数合成は向きが逆なだけで、やってることは同じだし。
関数型のやり方によっては見た目は似せることができてもやってることは全然違う
関数型とオブジェクト指向で根本的に異なる部分

964 :デフォルトの名無しさん:2024/03/04(月) 00:42:55.59 ID:vyClhVzf.net
言われてみれば。
同じは言い過ぎだったね。

print関数と関数合成なんて、オブジェクト指向な人から見たらイミフだろうし。
高階関数に関数合成した関数渡すのも、オブジェクト指向じゃ関数オブジェクト(?)にメソッドチェーン渡すなんて、見たことない。(できるかは知らない)
割とよく使うのに。

あと、オブジェクト指向型言語で関数型プログラミング取り入れました!って言って
ラムダ式を強制するのがウザい。

関数型言語はセクションやら、それこそ関数合成使って、なるべくラムダ式を使わない様に進化してるっちゅーねん。

965 :デフォルトの名無しさん:2024/03/04(月) 20:55:11.38 ID:OBoWisFX.net
「継承」についてだが、多重継承をサポートしていない言語ならなるべく使わないほうがよい

966 :デフォルトの名無しさん:2024/03/05(火) 14:40:45.25 ID:8Aciq0Ni.net
>>930
不満を解消するために行動しているというのは誤解
ある行動をしなかった理由を考えている
なぜ継承しなかったのか

967 :デフォルトの名無しさん:2024/03/06(水) 15:26:14.40 ID:7MRZ6H51.net
>>965
逆だね
あえて逆のこと言ったんだね

968 :デフォルトの名無しさん:2024/03/06(水) 16:32:28.41 ID:QczblYLZ.net
>>967
Pythonは多重継承だが?

969 :デフォルトの名無しさん:2024/03/06(水) 17:05:29.94 ID:0Fz1GTqO.net
銀の弾丸はなく適材適所なだけなのに
なるべく使わないって判断放棄してへん?

970 :デフォルトの名無しさん:2024/03/06(水) 17:58:25.40 ID:RxG6QCQE.net
>>968
Pythonの話ちゃうやん

971 :デフォルトの名無しさん:2024/03/06(水) 18:04:07.44 ID:OsGV2nia.net
>>968
おまえそのPythonでどんなアプリ作ったの?
>>937のリンク先から引用
>多重継承の問題の1つは、同一のメソッドが1つ以上の親クラスに存在しているときに、言語がどのメソッドを用いているのかが自明ではなく、あいまいだという点です。
これが絶対悪だというのはありえないにせよ、プログラム保守する上でこの問題はよく理解できるはず

972 :デフォルトの名無しさん:2024/03/06(水) 18:42:32.08 ID:T1kDuEf9.net
人間に独立した人格が有るように、チンポにも独立したチン格が有る
これは親クラスと子クラスの継承関係である
チン格とはつまり「愚息」であり、自分にも他人にも成り得る
これがオブジェクトの多態性と表現される
オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋
このように時と場合によって真逆の性質を併せ持つことができる

随意筋 不随意筋
  ↖ ↗
  チンポ

自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね!

973 :デフォルトの名無しさん:2024/03/06(水) 20:32:09.54 ID:RxG6QCQE.net
>>972
継承関係無いやん

974 :デフォルトの名無しさん:2024/03/10(日) 16:41:48.65 ID:VoY5srQP.net
https://twitter.com/frozensholder/status/1766678736836149638

四十肩
@frozensholder
男はチンボで物を考え女は子宮でモノを考える。それが世界の理。
(deleted an unsolicited ad)

280 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★