探検


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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2026/08/13(木) 14:38:03.02ID:pdAcKRXu
前スレ
オブジェクト指向はオワコン?
https://mevius.5ch.io/test/read.cgi/tech/1721393540/
2026/08/21(金) 18:58:30.38ID:C/iR3xUF
まともなプログラミングをすると自然にオブジェクト指向になる
普通に関連データを構造体にまとめるとオブジェクト指向の第一歩
その構造体を用いる関数をそこに集めればオブジェクト指向の完成

言語によっては構造体に関連関数を紐付ける機能がある
構造体をクラスと呼ぶ言語もある
414デフォルトの名無しさん
垢版 |
2026/08/21(金) 19:10:15.58ID:+7OJU/se
良し悪しの話ではないけど
クラス指向だと限界があるからOOP言語にはほぼAOP/DIな魔法がついてくる
2026/08/21(金) 19:29:01.99ID:YiF5GLcE
そこは結局interfaceやtraitを使え!という結論になるよな
416デフォルトの名無しさん
垢版 |
2026/08/21(金) 20:29:52.42ID:p4A6Ej6J
そもそもなんでこんなに沢山プログラム言語があるんだ
何個かでいいだろ
2026/08/21(金) 20:37:11.24ID:tuPqJn8K
>>416
実用的な言語の観点だと
C言語は速いけど安全性と機能不足に難があった
そこで速さを犠牲にして安全で機能豊富な言語がたくさん生まれた
ところが
2026/08/21(金) 20:42:54.89ID:tuPqJn8K
ところがC言語とほぼ同じ速さで動くRustが登場
これまでより高い安全性を満たしつつ機能も洗練されている
ただし習得に少しかかる問題があった

ところがAIにより学習問題は解決
コンパイルが通るだけで様々な安全性を満たしてくれるため
コード生成させる時もAIと相性が抜群に良い
419デフォルトの名無しさん
垢版 |
2026/08/21(金) 21:00:17.29ID:Gi1J9j3d
でもコンパイルが遅くてプログラムの規模が大きくなると
コンパイルが終わらないんだろ、大変だな
2026/08/21(金) 21:05:03.75ID:lo3FELaH
>>414
クラス指向なんて言葉ないだろ
421デフォルトの名無しさん
垢版 |
2026/08/21(金) 21:21:14.34ID:+7OJU/se
>>420
わかった
みなさんどっちも使われてるけどbasedをつかうね
プロトタイプベースと分けたかったのは伝わった?
422デフォルトの名無しさん
垢版 |
2026/08/21(金) 21:50:54.93ID:Gi1J9j3d
モデリングすることが良いことだというバイアスが
オブジェクト指向の印象を良くないものにしているような気がする
シンプルな処理をシンプルに書くのが大事だ
Enterprise Hello Worldを見てそう思った

https://github.com/Wolfdp/Hello-World-Enterprise-Edition-CSharp
2026/08/21(金) 22:22:12.13ID:Ld+jRNtV
HelloWorldをのコードを見て結論を出してる人がいてワロタ
424デフォルトの名無しさん
垢版 |
2026/08/21(金) 22:47:45.44ID:Gi1J9j3d
それなwww
425デフォルトの名無しさん
垢版 |
2026/08/21(金) 23:04:12.29ID:kH6z448d
思ったんだけどさ
AIで全部書ける
AIで完全に書ける
のであればわざわメモリ安全の言語じゃなきてもよくない

完全に書けるのならAIが配列や動的に確保してくれた位置を考えてそれ以上にループとかが進まないように制限してくれるよね

後で自分で追記する時メモリ安全じゃないよ言うのだったら「AIで全てが書ける」わけではないと言うことになるし
2026/08/21(金) 23:17:11.89ID:vPcZCoYZ
>>425
これまで長い年月をかけて書かれたコードのメモリ安全性を証明する試みがいくつも行われてきた
しかしいずれも完成しておらず与えられたコードが安全かどうか確実に判定できない現実がある
これはAIが出力したコードが安全かどうか100%の判定ができないことを意味する
427デフォルトの名無しさん
垢版 |
2026/08/21(金) 23:20:29.95ID:Gi1J9j3d
> AIで完全に書ける

Rustじゃないと確認できなくね?
428デフォルトの名無しさん
垢版 |
2026/08/21(金) 23:22:58.22ID:1+5SHfXi
プログラミング言語の中でRustだけがメモリ安全性からデータ競合安全性までRustの言語仕様により100%保証できるよ
つまりコンパイルが通れば100%保証される
AIはコンパイルエラーを見ながらコンパイルが通るまで頑張るだけで100%保証されるからAIとRustは相性が最高に良いんだよ
429デフォルトの名無しさん
垢版 |
2026/08/21(金) 23:25:20.18ID:Gi1J9j3d
JavaScriptラインタイムのBunはAIで作られていて
プログラム言語をZigからRustに変えた
Zigだとメモリ管理のバグが頻発して開発コストが高かったからだ
いまのAIでは無理だな、Rustへのトランスパイラを定理証明器で作るとか
そういう方向が現実的なんじゃねえかな
430デフォルトの名無しさん
垢版 |
2026/08/21(金) 23:29:28.16ID:kGpPvADd
コンパイルパスさせるために
端折ったりバグ埋め込んだり平気でやりそう
431デフォルトの名無しさん
垢版 |
2026/08/21(金) 23:35:21.17ID:Gi1J9j3d
たしかに、人間だとそういうのあまり心配しなくて良いけど
それは人間の性格によるところがあるように思う
AIにも人格を芽生えさせてある程度の時間言動を追跡して
信頼できる人格か判定しないといけないのかのー
432デフォルトの名無しさん
垢版 |
2026/08/21(金) 23:37:21.28ID:bIYKcSt2
>>430
それはコンパイル関係なく
人間の指示にわずかな漏れがあればAIは何でもやる

だから穴を検知するためAIにテストを生成させる
テスト生成に漏れがないかだけに専念させるAIに漏れをチェックさせる
その生成されたテストをコンパイル頑張るAIに与えてテストも同時に通させる
433デフォルトの名無しさん
垢版 |
2026/08/21(金) 23:52:29.29ID:YfDi7NQj
>>425
AIで全部書けるのとAIが全部書くのとは違うよ
検証された既存のものを使えば楽ちんなのはAIも同じ
機械的な検証の責務を今までどおりにコンパイラに委譲するのはこれからも変わらない
2026/08/22(土) 00:15:51.49ID:zJHTHuDu
>>425
現実のコードはそんな単純なパターンでないため安全なコードが書けたかどうかは悪魔の証明になっちゃうよ
だからAIがコード生成する時代になってもC/C++は捨てましょうのまま進んでるよ
435デフォルトの名無しさん
垢版 |
2026/08/22(土) 06:26:02.05ID:k3gSlcbb
AIはマシン語で書けばいいんだよ
チェックするときはそれを逆コンパイルして好きな言語で読めばいいのさ
436デフォルトの名無しさん
垢版 |
2026/08/22(土) 06:30:48.14ID:o8Yeunra
C++はそのうちメモリ安全性も取り込むと思うけど
2026/08/22(土) 06:43:46.82ID:bgDHCveK
>>436
それC++11から15年間頑張って来たけど無理だった
2026/08/22(土) 07:51:36.35ID:5sbOUOoc
>>382
flatMap自作できるの?
2026/08/22(土) 07:58:34.83ID:06Fuc+wc
ソフトウエアとして実現されているものはすべからく自作可能である(ニーチェ)
ただし、それが面倒くさくて煩雑だったり、既にあるモノをわざわざ作る意義が乏しいことは多々ある(プラトン)
2026/08/22(土) 09:31:26.30ID:06Fuc+wc
そしてオブジェクト指向を迂闊に導入すると
ソフトウエアはぐちゃぐちゃになる
ここまで得られた知見ということで一旦結論
2026/08/22(土) 09:35:48.28ID:qikEO/T7
処理単位を明確に分割するのがオブジェクト指向のメリットでもあるんだけど
どうやったらオブジェクト指向でプログラムがぐちゃぐちゃになるってんだか
それは単にクラス分けとか失敗してるだけだろうね
2026/08/22(土) 09:38:45.72ID:06Fuc+wc
そういう局所の書き方話ではなくてソフトウエアシステム全体に影響を及ぼす話

というか「処理単位を明確に分割する」って何だよw

そういうおためごかしがどのくらい混乱を招いて来たか反省する脳は
たぶん君にはなさそうだな
2026/08/22(土) 09:39:43.51ID:06Fuc+wc
さー、オブジェクト指向厨にけんかを売りましたw
2026/08/22(土) 09:42:15.91ID:06Fuc+wc
オブジェクト指向って何でこんなカルト迷信みたいに広まったんだろうね
ほんと、人によるの物事の受け止め方や、それによって脳に生じたノイズって面白い
いや詰まらない
445デフォルトの名無しさん
垢版 |
2026/08/22(土) 09:42:24.26ID:W68OZL8L
関数の切り分け方に比べるとメンバーやオブジェクトをどう設定するかは人によって相当分かれる。
その事実を明らかに無視したバカがオブジェクト厨になる
2026/08/22(土) 09:47:50.99ID:06Fuc+wc
オブジェクト指向厨って結構、感覚的で
その方が直感的にわかりやすいと思ったからとか
平然と言ってくちゃくちゃしたコード書いて悦に入ったり不況活動した理り人を批判する
人畜無害じゃないんだよね。有害

オブジェクト指向が流行ったココ30年くらい、それは日本で丸投げ中抜き派遣作業が発展した時期と奇遇にも一致するんだけれど
この時代は、コンピューターサイエンス、ソフトウエア工学の暗黒時代だったと思っている
2026/08/22(土) 09:48:10.63ID:qikEO/T7
まあ、例外処理があると一気に調和が崩れていくのはあるあるだけどな
たいていの場プロジェクトが進んだ後半に発覚しやすくて
もうトンネル掘るしかなかっりするw
2026/08/22(土) 09:50:14.47ID:06Fuc+wc
きっとこんな人でも家ではいいお父さん役をやっているのかもしれないと思うと
やるせない
2026/08/22(土) 09:50:18.36ID:qikEO/T7
結局ここの住人は、大規模プロジェクトに対してどんなアプローチが適切だと言いたいんだろ?
オブジェクト指向に代わる何かを提唱したりもしないでさw
450デフォルトの名無しさん
垢版 |
2026/08/22(土) 09:54:05.52ID:MVi0Z0Uj
>>441
>>320 こいつを見てくれ、こいつをどう思う?
2026/08/22(土) 09:55:20.61ID:06Fuc+wc
>>448
オワコンかどうかがまずテーマであってだな、代替え案の有無が正当化の理由には全くならない
屁理屈にもならない

それにモジュラリティ―の確保であれば、各言語それこそ様々な手段が既存で
そういうことを論じるスレなのか?ここは。違うよな

それすら自分が分かっていないんだったらそう言うのが、人としてだだしい姿勢だろ
2026/08/22(土) 09:58:32.16ID:06Fuc+wc
>>450
>>320 はある意味いい教師だと思う。反面教師というやつ
わざわざ320を書いた椰子は分かっていてネタとしてイロニーで書いたかもしれない


(いやたぶん本気で地で書いてると個人的には思うがなw
あれが彼にとってのプログラミングであり、ソフトウエアの実装形態なんだろう)
2026/08/22(土) 10:00:07.35ID:06Fuc+wc
小僧相手についムキになっちまったわ

風説に惑わされずせいぜい精進しなされ
2026/08/22(土) 10:00:43.46ID:qikEO/T7
何かを作る時、機能別に分けて作るのは
プログラムに限らず物作りの基本ではある
車しかり、テレビ然り、家然りだ
2026/08/22(土) 10:02:42.42ID:06Fuc+wc
>>454
大上段に振りかぶって何そんな当たり前のことをw

だれがこれまで機能分割を否定したよw

おれが思ったよりも頭ヨワイやつだったんだなw
相手して時間を無駄にした
2026/08/22(土) 10:11:18.42ID:qikEO/T7
瑣末な実装をああだこうだやってるうちは何も分かって無いって事だよ
いちメソッドの実装方法なんて
そんなものは仕様通り動けばどうでもいいんだよ
そんな重箱の隅をつつき合ってオブジェクト指向を語るなんて100年早いわw
2026/08/22(土) 10:15:10.61ID:06Fuc+wc
分かっているなら…(ry

言わせるなよな
2026/08/22(土) 10:17:07.35ID:06Fuc+wc
>>456
こんなにブーメランを自分にザクザク刺す奴って始めて見たかも…
2026/08/22(土) 10:22:49.69ID:qikEO/T7
数十人、数百人規模のプロジェクトの全体設計に導入するから意味があるもので
一人で完結するする様な規模のソフトウェアのいちメソッドに何日も掛けて導入するものじゃ無いからなぁ
2026/08/22(土) 10:25:36.17ID:06Fuc+wc
>>459
そんな大規模プロジェクトに本当に関わって実績を残しているなら

>>441
こういうこと書くかな
もしほんとうにそう思っているなら周りに迷惑かけているだけかもよ
2026/08/22(土) 10:28:07.07ID:qikEO/T7
おまえが分かって無いだけw
2026/08/22(土) 10:29:42.66ID:06Fuc+wc
最後は感情論なんだよなオブジェクト指向厨
結構若輩だったりする
2026/08/22(土) 10:31:59.99ID:SeTr1MjI
オブジェクト指向アレルギーがすごいなww

>>451
オブジェクト指向がオワコンかどうかを判断する基準として、有効な代替え案の有無というのは最も大事な要素の一つなんじゃないのか?
2026/08/22(土) 10:32:19.60ID:qikEO/T7
今ではオブジェクト指向なんてイチイチお題目建てて設計なんかしなくてもだいたいオブジェクト指向の考え方で設計するからなぁ
2026/08/22(土) 10:34:49.79ID:06Fuc+wc
代替え案は各種モジュラリティ―いっぱいあるけど

代替え案の有無は全然重要じゃないよ

考えてもみろよ、代替え案がない問題はこの世に一杯あるが
問題じゃない、無いことにするしかないと言いたいのか?
そしたらこの世の問題のかなりが無問題ということになるぞ

>>463
おまえも頭ヨワイな
2026/08/22(土) 10:35:09.86ID:06Fuc+wc
>>464
しねぇよインチキ言うなw
2026/08/22(土) 10:39:05.58ID:qikEO/T7
>>466
あ、おまえん中がアンチ過ぎただけかw
世の中に追いつけよぼうず
2026/08/22(土) 10:40:07.43ID:06Fuc+wc
>>467
オブジェクト指向を使ってFizzBuzz書いてみて

俺は絵にかいてある
2026/08/22(土) 10:41:41.40ID:qikEO/T7
もしかして、ここのスレ主って、オブジェクト指向はオブジェクト指向言語の事だと思ってないかな?
2026/08/22(土) 10:42:44.88ID:06Fuc+wc
>>468
絵に ー>上に な
2026/08/22(土) 10:43:32.43ID:06Fuc+wc
>>469
そっちへ逃げたかw
煙に巻く気だな
2026/08/22(土) 10:45:24.15ID:06Fuc+wc
>>469
じゃあプログラミング言語でなくてもいいから
オブジェクト指向でFizzBuzzを「記述」してみて
2026/08/22(土) 10:47:03.78ID:SeTr1MjI
>>464
そうなんだよな
上下水道と同じように当たり前のものになったからわざわざ話題として取り上げるものではなくなったという意味のオワコンなら納得
2026/08/22(土) 10:47:15.32ID:06Fuc+wc
「記述」できまいw ニヤニヤ
2026/08/22(土) 10:50:20.53ID:06Fuc+wc
>>473 にとって上下水道と同じように当たり前のものになったオブジェクト指向

オブジェクト指向はオワコン?
https://mevius.5ch.io/test/read.cgi/tech/1721393540/753
2026/08/22(土) 10:52:30.90ID:SeTr1MjI
>>465
めっちゃ詭弁だね

代替案がない問題があるとして
その問題に対する既存の解決策はオワコンなのか?

オブジェクト指向がオワコンかどうかを判断する基準として
君は何が重要だと考えてるのかすら提示できないのなら
ただ議論から尻尾巻いて逃げてるだけだよ
2026/08/22(土) 10:57:05.02ID:06Fuc+wc
>>476
代替案のない問題だとしてもオワコン化は決定できないだろ
誰がそんなこと書いた。ミスリーディングのいい加減にしろ

代替案がないからといって問題では無いということが、問題を正当化する根拠にはならんと書いているのだよ

もう少し理にかなった物の考え方してくれないといくら5chでも
話あいてしててげんなりするぞ
2026/08/22(土) 11:00:08.79ID:06Fuc+wc
モジュラリティ―の方法は様々にあるわけだし
オブジェクト指向に害があって最近はどう回避されるつあるか上で散々論じられている

それに対しオワコンでないというならその根拠を客観的にしめさないと
個人的このみの問題で終わるのは自明だ
2026/08/22(土) 11:02:01.72ID:06Fuc+wc
で、プログラミング言語でなくてもいいから
オブジェクト指向でFizzBuzzを「記述」してみてみ

FizzBuzzが分からないというならもっと簡単なものでもいい
2026/08/22(土) 11:03:52.44ID:06Fuc+wc
「記述」できまいw ニヤニヤ

それが根拠だよ
2026/08/22(土) 11:04:51.40ID:qikEO/T7
確かにカプセル化とか継承とか付随した概念は否定されつつあるが
機能別にまとめたり同じ概念で扱うって考えは新しい言語にも引き継がれてるからなぁ
2026/08/22(土) 11:06:16.41ID:06Fuc+wc
>>480
「機能別にまとめたり同じ概念で扱う」
そのオブジェクト指向でFizzBuzzを「記述」してみてみ
2026/08/22(土) 11:08:09.39ID:qikEO/T7
>>479
そんな単一メソッドに収まるものをわざわざオブジェクト指向で書くって事自体がオブジェクト指向を分かって無いって言ってるんだがw
484デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:09:15.05ID:2u24m9Db
OOPについてオワコンどうこう以前にOOPに厳密な定義を与えられた人間が人類史上いたか?
2026/08/22(土) 11:09:53.57ID:06Fuc+wc
「記述」できまいw ニヤニヤ

まずClass作って、インスタンスメンバ変数作って、getter setter property アクセス修飾設定して
method 書いて、…くちゃくちゃ くちゃくちゃ
2026/08/22(土) 11:11:26.09ID:06Fuc+wc
>>483
大規模だともっと作りにくいぞw
2026/08/22(土) 11:12:17.55ID:06Fuc+wc
なんで調べないかな>>484
2026/08/22(土) 11:13:20.57ID:qikEO/T7
>>486
それはむしろ逆だから否定させてもらう
大規模プロジェクトほど機能単位に分けなきゃ破綻する
489デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:14:30.31ID:C0mupzSl
コードはなくていいけど
どういう役割のオブジェクトを登場させるかくらい書けるやろ
2026/08/22(土) 11:14:55.10ID:06Fuc+wc
>>488
だ・か・だら・だれが機能分割、細分化を否定したよ
そこに論点持って行ってどうするw

話が横滑りしてかみ合わないな―君はw
2026/08/22(土) 11:16:13.14ID:06Fuc+wc
>>489
分かったじゃあID:qikEO/T7がどういう役割のオブジェクトを登場させるかくらいについて書くのかを待つか
2026/08/22(土) 11:16:57.50ID:qikEO/T7
>>490
おまえはオブジェクト指向言語の話しかしてないからなぁw
2026/08/22(土) 11:17:59.05ID:06Fuc+wc
でもかれはオブジェクト指向を表層的な感覚でしか受け止めていないようだから
書けないと思う ニヤニヤ
2026/08/22(土) 11:18:58.56ID:qikEO/T7
FizzBuzzなんて最小公倍数のループ組んで順番に出力するコード書いたら終わりだろ
2026/08/22(土) 11:19:10.87ID:06Fuc+wc
おれプログラミング言語の話した?>>492
2026/08/22(土) 11:20:05.43ID:06Fuc+wc
>>494
じゃあほかの題材でいいよw
2026/08/22(土) 11:21:05.68ID:06Fuc+wc
つか、あやうくみおとしそうになったが最小公倍数かよw
2026/08/22(土) 11:21:33.88ID:qikEO/T7
>>495
コード書いてる時点でもう言語の話になってるだろw
2026/08/22(土) 11:22:51.40ID:06Fuc+wc
>>498
コード書い書いてねーぞ

「言語の話しかしてない」って具体的にどこからどのレスよw
2026/08/22(土) 11:23:44.80ID:06Fuc+wc
なんで最小公倍数よw
501デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:24:25.96ID:MVi0Z0Uj
>>494
組み合わせを書くのは悪手だよ

>>320 を書いた人はこう言ってたけど
> 意味的には15との最大公約数で振り分ける。保守しやすい。
> if文が2つ以上あるとバグが出やすくなる笑。

↓ これに対応できなかった

Fizz、Buzzに加えてPop、Jazz、Rockに対応してください

3 → Fizz
5 → Buzz
7 → Pop
11 → Jazz
13 → Rock

ぜんぜん保守できなかったんだよ
2026/08/22(土) 11:24:57.82ID:06Fuc+wc
きょうもまた、つまらぬものを斬ってしまった…
503デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:31:10.28ID:BHZjd0Jb
手続き型プログラムは、for i ループで
iを基本にして処理する
mod 3
mod 5 全部比較して結果を出す

オブジェクト指向なら for i ループ使っちゃだめだろ?
あくまでもオブジェクトであるFizz野郎とかBuzz野郎に丸投げして、必要なとこに出現しやがれ ってやんないと

全然ダメ、お前ら
2026/08/22(土) 11:37:53.48ID:qikEO/T7
inport math
n = 100
a, b = 3, 5
lcm = math.lcm(a, b)
pattern = []
for i in range(1, lcm):
s = ""
if i % a == 0:
s += "Fizz"
if i % b == 0:
s += "Buzz"
pattern.append(s if s elese str(i))
for i in range(1, n + 1):
print(pattern[(i - 1] % lcm])
2026/08/22(土) 11:39:55.42ID:qikEO/T7
オブジェクト指向にしなくていい場所までオブジェクト指向にする意味がわからない
2026/08/22(土) 11:40:59.88ID:qikEO/T7
FizzやBuzzはルールから導き出される結果であって、オブジェクトじゃ無いだろw
2026/08/22(土) 11:41:33.22ID:06Fuc+wc
>>505
じゃあ、どういう場所をオブジェクト指向にするの?
2026/08/22(土) 11:43:41.36ID:qikEO/T7
1から順に数えるのにループ書かないでとか訳分からない事言ってないでさ
w
2026/08/22(土) 11:45:23.66ID:06Fuc+wc
「意味がわからない」という言い方を最近しばしば聞くが
「意味がわからない」≒「理解できない」≒「読解力が足りない」≒「頭が良くない」
という意味にも受け止められるので使わない用が良いと思う

実際にそうならば別に構わんが
2026/08/22(土) 11:46:54.11ID:06Fuc+wc
ループ書かないでって、どのレス?
2026/08/22(土) 11:47:22.94ID:qikEO/T7
>>510
503
2026/08/22(土) 11:48:49.45ID:qikEO/T7
>>509
おまえの読解力を自己判断したのか?
ご苦労様
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況