プログラマに聞きたいんだけどオブジェクト指向ってクソじゃね?

1: 名無しさん@涙目です。(北海道) [EU] 2018/11/22(木) 15:07:59.36 ID:OaykOnnP0 BE:422186189-PLT(12015)

staticおじさんとは、2010年に@ITに「実はオブジェクト指向ってしっくりこないんです!」と投稿して炎上したおじさんのことである。

staticおじさんが爆誕した2010年ごろのIT土方界隈ではJavaを中心としたオブジェクト指向が主流であり
「なんでもかんでもオブジェクト指向」という風潮があった。このためstaticおじさんは多勢に無勢で
ボロクソに叩かれる結果となり、さらにはプログラミングそのものの話を飛び出してオブジェクト指向
推進派による学歴差別などに発展したすえに、無事炎上した。

それからわずか数年後、staticおじさんの主張に「static変数は使わない」「関数ポインタを多用する」
というコーディング規約を加えた「関数型プログラミング」がJavaScript界隈を中心に爆発的に流行し、
その流れに乗るかたちで半ば強制する仕様の「関数型プログラミング言語」も多数登場するなど一大ブームになった。

ちなみにstaticおじさんの主張と非常に酷似したものが、staticおじさんの登場より遥か昔、
インターネットを支える中核技術である「IP」のRFC(仕様書)にも「階層化の有害性」として書かれていたりする。
また、海外でも同様の主張を面白おかしく書いた「Bjarne Stroustrup インタビュー」なる怪文書が出回り、こちらも大炎上した。
https://monobook.org/wiki/%E3%B9%E3%BF%E3%86%E3%A3%E3%83%E3%AF%E3%8A%E3%98%E3%95%E3%93

3: 名無しさん@涙目です。(茸) [US] 2018/11/22(木) 15:08:39.65 ID:+mNps3wB0
クソだよ

6: 名無しさん@涙目です。(catv?) [JP] 2018/11/22(木) 15:10:36.27 ID:dlOZGDFd0
オブジェクト指向は結局慣れなかったな
オーバーロードとオーバーライドと継承ってシステムがどう動いてるか全部分かってる人間じゃないと無理だろと思ってた

127: 名無しさん@涙目です。(大阪府) [US] 2018/11/22(木) 23:29:43.41 ID:LnC6Tslp0
>>6
クッソ頭悪そう

7: 名無しさん@涙目です。(dion軍) [GB] 2018/11/22(木) 15:10:44.30 ID:1VHO3l8I0
日本にはその議論ができるほどのプログラマーは割合的に少ない

8: 名無しさん@涙目です。(東京都) [VN] 2018/11/22(木) 15:11:39.49 ID:MAXU5S+e0
バグらなくてちゃんと動いてメンテが容易ならなんでもいい

11: 名無しさん@涙目です。(東京都) [ニダ] 2018/11/22(木) 15:12:46.97 ID:kQMROlwe0
誰も仕様を理解していないブラックボックス関数が受け継がれていく

18: 名無しさん@涙目です。(やわらか銀行) [ニダ] 2018/11/22(木) 15:16:58.76 ID:VoSRpfGx0
>>11
それを派遣が伝言ゲームと

13: 名無しさん@涙目です。(チベット自治区) [US] 2018/11/22(木) 15:14:09.36 ID:VZa8S7bc0
昔と違ってメモリは腐るほどあるんだからガベコレやメモリ解放なんてしなくていいじゃん

19: 名無しさん@涙目です。(茸) [US] 2018/11/22(木) 15:17:11.22 ID:uo3q84x40
>>13
んなわけあるかw

57: 名無しさん@涙目です。(千葉県) [US] 2018/11/22(木) 15:59:06.78 ID:nXqVz5em0
>>13
メモリは増えたけど、使い続けると動的に生成されるオブジェクトがどんどん増えていく一方だから、
メモリ解放しないとメモリオーバーフローで止まる。

16: 名無しさん@涙目です。(やわらか銀行) [US] 2018/11/22(木) 15:16:39.25 ID:V5/8X65q0
どうあがいても、オブジェクト指向に構成された、ブラックボックスやライブラリの上で書くしかないんだから、愚痴っても仕方ない。

21: 名無しさん@涙目です。(長屋) [US] 2018/11/22(木) 15:18:38.94 ID:Z2GMZEjP0
>>16
むしろ中身を理解せずともライブラリやAPIが使えて
必要ならば安全に変更もできるって凄くね?

25: 名無しさん@涙目です。(やわらか銀行) [US] 2018/11/22(木) 15:22:10.49 ID:V5/8X65q0
>>21
ほんとこれ。
上流では優秀なプログラマがオブジェクト指向を理解してライブラリを作ってる。
下流がついて行けないだけ。

17: 名無しさん@涙目です。(広島県) [CA] 2018/11/22(木) 15:16:39.71 ID:rXjZ/fqy0
じゃ、お前だけプログラムは全部同じファイルな

24: 名無しさん@涙目です。(茸) [US] 2018/11/22(木) 15:20:23.44 ID:35W5GsvP0
>>17
オールグローバル変数一本グソ
長編プログラミングなら
俺に任せろ

91: 名無しさん@涙目です。(岡山県) [US] 2018/11/22(木) 17:44:39.93 ID:z2fF9jBP0
>>24
カッコいい!

26: 名無しさん@涙目です。(新疆ウイグル自治区) [US] 2018/11/22(木) 15:22:53.64 ID:9A6rTzEj0
デザインパターンがようわからんわ

28: 名無しさん@涙目です。(やわらか銀行) [US] 2018/11/22(木) 15:23:46.54 ID:V5/8X65q0
>>26
全部のパターンを使わないとと思うから。
得意なワンパターンつーパターンでよい。

54: 名無しさん@涙目です。(禿) [TW] 2018/11/22(木) 15:53:16.35 ID:pDcIuPtR0
>>28
覚えたてだったのか、無駄にシングルトンだらけのソースを見たことある。

118: 名無しさん@涙目です。(埼玉県) [MY] 2018/11/22(木) 22:31:32.30 ID:xjF8ZDGf0
>>28
そやな、で少しづつ使うのを増やしていけばいい。
上手く使えると凄くスッキリする。
でも、これ使いたいで無理に当て嵌めるとかえってグダグダになる。

30: 名無しさん@涙目です。(東京都) [ニダ] 2018/11/22(木) 15:25:20.93 ID:eyjQQ8BI0
きちんと管理できて引き継ぎも出来るならいいんじゃね

31: 名無しさん@涙目です。(やわらか銀行) [US] 2018/11/22(木) 15:27:57.57 ID:V5/8X65q0
>>30
コードより長いコメントを埋め込んで、書き足して引き継いできた頃よりはるかにまし。
Javaのヘルプみたいなもの書いとけ大体わかる。

38: 名無しさん@涙目です。(やわらか銀行) [US] 2018/11/22(木) 15:34:17.24 ID:DyniCEwb0
OOPの核心とは、カプセル化による構造化と言ってよい
どうだ

48: 名無しさん@涙目です。(茸) [US] 2018/11/22(木) 15:46:22.84 ID:M24uQ3pa0
>>38
カプセル化が諸悪の根源

40: 名無しさん@涙目です。(滋賀県) [US] 2018/11/22(木) 15:36:29.40 ID:gM5nNFbA0
OOPできますって人を面接しても、大抵はデザインパターンつかえるどころか
存在すら知らないソフト技術者()が多い日本・・・

46: 名無しさん@涙目です。(茸) [US] 2018/11/22(木) 15:44:39.26 ID:lzvWr71i0

>>40
javaかけるいうても
継承のメリット生かしてない奴らばっかやで

何でおんなじソースポコポコうんでんのかわかんねえ

41: 名無しさん@涙目です。(庭) [CN] 2018/11/22(木) 15:39:19.92 ID:2pp65R5G0
COBOL時代からサブルーチンコールや定義参照はやってる事だし
オブジェクト指向云々なんていちいち意識した事も無いわ

67: 名無しさん@涙目です。(catv?) [US] 2018/11/22(木) 16:12:01.52 ID:HSqp+MZG0
半年前に書いたものとかもう宇宙語やし
再利用とか幻想じゃね

71: 名無しさん@涙目です。(東京都) [ニダ] 2018/11/22(木) 16:27:48.77 ID:oJzMUjCr0
>>67
本来は、宇宙語を理解しなくても、何が出来るのかが解れば使えるのがウリじゃないのか?

99: 名無しさん@涙目です。(空) [ZA] 2018/11/22(木) 19:35:16.19 ID:XhzMyeea0
Perlで無理やりオブジェクト指向とかいう苦行

102: 名無しさん@涙目です。(埼玉県) [US] 2018/11/22(木) 20:16:09.67 ID:NHiLyvZM0
いいえ?
っつーかぶっちゃけ今のUIなんて全部オブジェクト指向じゃん
まさか今更ゲームみたいにメインループで全部のUIの処理回せと?

113: 名無しさん@涙目です。(静岡県) [US] 2018/11/22(木) 22:21:14.63 ID:4ovXw5Ii0

オブジェクト指向が糞なんじゃなくて分からない頭が糞
そんな頭をどんだけ集めても肥だめしかできないに決まってる

じゃあ今度は関数指向だとか言ってとびついた奴らの死体が
ノマド壁の前でいっぱい転がってるんだろw

119: 名無しさん@涙目です。(香港) [US] 2018/11/22(木) 22:31:32.68 ID:lwNNE+5u0
何がなんでも二次元で表記しようとするから
プログラマー間で形状を共有できないので
デザインがぐっちゃぐちゃになるんだよ

120: 名無しさん@涙目です。(catv?) [US] 2018/11/22(木) 22:36:11.11 ID:9AmjsCUw0
こういうのが話題になるということは、
プログラミングが新しい技術であり、
まだまだ作り上げる技法が確立されていない、
手探りの段階ということなんですか?

128: 名無しさん@涙目です。(茸) [DE] 2018/11/22(木) 23:33:24.38 ID:Zi/DAvRI0
>>120
話の内容があまりにもアホすぎるから気にしなくていい

141: 名無しさん@涙目です。(東京都) [ニダ] 2018/11/23(金) 02:50:47.03 ID:uFcIqPta0
文章をそのままコーディングしたような
やたらネストが深くて長い
馬鹿みたいなコード書いてるような奴とは
相性が悪いと思うよ

148: 名無しさん@涙目です。(埼玉県) [MY] 2018/11/23(金) 07:23:33.95 ID:FYYgVmiy0

>>141
それはオブジェクト指向に限らず大抵の考え方とは相性が悪いような気が、、

まあ、大体がオブジェクト指向とか以前の問題だな。

142: 名無しさん@涙目です。(dion軍) [NL] 2018/11/23(金) 02:52:52.70 ID:ovGHVb3/0
ごめん、オブジェクト指向以外ってあるの?

221: 名無しさん@涙目です。(catv?) [ニダ] 2018/11/24(土) 21:16:56.29 ID:mij3UV1/0
>>142
C、Pascal、アセンブラなどの旧言語はオブジェクト指向とは無縁

150: 名無しさん@涙目です。(東京都) [US] 2018/11/23(金) 07:30:31.82 ID:iU2WWNgU0
Javaだとinterfaceとabstract classのどちらを使うべきかよくわからなくなる

157: 名無しさん@涙目です。(SB-iPhone) [DE] 2018/11/23(金) 08:27:06.44 ID:H7M3BEEP0

>>150
正解は無いけど、どっちかと言えばinterfaceを第一候補に考えて、ただ共通で継承すべき具体的な処理があるならabstract classという順序と思ってる。
逆に全てのクラスがそのabstract classを必然的に継承するなら、無駄にinterfaceは入れる必要は無いけど。

ただ、実装の再利用が目的なら無理に継承を使わない方がいいかと。実装の再利用なら、staticメソッドでもコンポジットでも出来るから。

168: 名無しさん@涙目です。(東京都) [KR] 2018/11/23(金) 13:48:35.92 ID:IS9rviQJ0

オブジェクト指向好きだから推したいけど、冷静に考えて生産性が上がってるとは
言い難いんだよな

オブジェクト指向の為に新たな知識がかなり必要になり、やれクラス設計だ
デザインパターンだ、多態性だ、継承がどうのこうのだの、インターフェイスでーとか
余計な手間が増えたとも言えるだろうな

若手の育成もより面倒になったと言えるかもね
なんでもオブジェクト指向でーとか必要ないものにも押し付けるべきじゃないと思う

184: 名無しさん@涙目です。(神奈川県) [FR] 2018/11/23(金) 19:31:58.48 ID:/dJ6yHIL0
可読性向上にはなってると思うけどね。
新規に参加したプロジェクトがオブジェクト指向で設計されてれば全体的な構造の把握も局所的な機能の把握もしやすいんじゃないかな。

215: 名無しさん@涙目です。(東京都) [AU] 2018/11/24(土) 20:57:04.27 ID:ZskFbV5N0
100人いれば100通りの解釈があると聞いた

引用元

管理人からひと言

よくわからず使ってるあたりはクソ

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

フォローする

スポンサーリンク
スポンサーリンク