相互RSS


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

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

2: 名無しさん@涙目です。(茸) [US] 2018/11/22(木) 15:08:18.72 ID:jfLY759y0
はい

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
日本にはその議論ができるほどのプログラマーは割合的に少ない

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
メモリは増えたけど、使い続けると動的に生成されるオブジェクトがどんどん増えていく一方だから、
メモリ解放しないとメモリオーバーフローで止まる。

15: 名無しさん@涙目です。(茸) [US] 2018/11/22(木) 15:16:29.33 ID:35W5GsvP0
天才なら
そもそも構造体の段階で
要らないと気づかなきゃ

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
ほんとこれ。
上流では優秀なプログラマがオブジェクト指向を理解してライブラリを作ってる。
下流がついて行けないだけ。

32: 名無しさん@涙目です。(空) [US] 2018/11/22(木) 15:27:58.30 ID:iDEmHsjZ0
>>25
ここではなんか上流前提で最新技術がー英語がーとか言ってるけど大多数は下流だからな

193: 名無しさん@涙目です。(catv?) [US] 2018/11/23(金) 23:08:15.78 ID:hLoPH1pr0
>>25
上流と下流って工程であって
どちらが優秀かって話しじゃないんだが

95: 名無しさん@涙目です。(新疆ウイグル自治区) [SE] 2018/11/22(木) 18:50:31.04 ID:rPez+w6L0
>>16
Linuxの内部システムコールとかはLinusかアンチオブジェクト指向なんで分かりやすくて助かってるわ

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

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

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
そやな、で少しづつ使うのを増やしていけばいい。
上手く使えると凄くスッキリする。
でも、これ使いたいで無理に当て嵌めるとかえってグダグダになる。

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

オブジェクト指向わかんないやつって
糞じゃん

勝手にわけわかんないPG作って満足してろ

使えん奴は死ねばいい

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

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

35: 名無しさん@涙目です。(やわらか銀行) [US] 2018/11/22(木) 15:33:19.71 ID:DyniCEwb0
カプセル化による構造化と言ったよい

52: 名無しさん@涙目です。(禿) [US] 2018/11/22(木) 15:50:58.32 ID:s+or87Z20
大規模開発にはいいんだろうけどな

53: 名無しさん@涙目です。(大阪府) [US] 2018/11/22(木) 15:52:00.22 ID:nqWIBF+w0
Javascriptが難しすぎて営業SEになったわ

70: 名無しさん@涙目です。(関東・甲信越) [DE] 2018/11/22(木) 16:25:01.33 ID:JdZ8XK0xO
一切手を入れずにそのまま使い続けるならいいんじゃね?

72: 名無しさん@涙目です。(新疆ウイグル自治区) [KR] 2018/11/22(木) 16:32:16.68 ID:U99IdM3A0
オブジェクト指向やってれば他人に自慢できる

83: 名無しさん@涙目です。(長屋) [US] 2018/11/22(木) 16:54:20.37 ID:Z2GMZEjP0
こうしておけば将来役に立つとか助かるよりも
ろくな設計仕様もないままとにかく早くやれ、何時間かけて考えてんだ、とにかく手を動かせって言われるから
後の面倒なんか俺が見るわけじゃねえし知ったことか糞上司、糞職場め!
が勝る

84: 名無しさん@涙目です。(空) [US] 2018/11/22(木) 16:55:30.33 ID:StiIkd1z0
そのうちAIがプログラミングもやってくれるようになるさ

85: 名無しさん@涙目です。(東京都) [EC] 2018/11/22(木) 17:00:17.39 ID:ePXFh1Z50
>>84
AI「仕様をオブジェクト指向で書いてくれ」

100: 名無しさん@涙目です。(catv?) [ニダ] 2018/11/22(木) 19:56:19.22 ID:xAZ+wCY60
>>85
AI 「仕様をオブジェクト指向で書いてくれ」
人間「それをするのがおまえの仕事だろ」

90: 名無しさん@涙目です。(禿) [ニダ] 2018/11/22(木) 17:32:03.20 ID:/DFaMBV80
オブジェクト指向よくわかんないけどとにかくオブジェクト指向でやれって奴は間違いなくクソ

93: 名無しさん@涙目です。(東京都) [KR] 2018/11/22(木) 18:19:57.12 ID:wzU0EU/50

>>90
オブジェクト指向大好きだけど激しく同意

何事も適材適所がある

104: 名無しさん@涙目です。(兵庫県) [CR] 2018/11/22(木) 20:56:30.90 ID:i1RTm7j00
オブジェクトが悪い訳ではない
必要のない物まで無理やりオブジェクトにしたり、必要のない物にも関わらず直接修正するならまだしもラップして機能修正するからダメなんだよ
使い回さないならstatic
スコープを広く跨ぐならstatic も検討とか使い分けろよ

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

173: 名無しさん@涙目です。(千葉県) [JP] 2018/11/23(金) 15:07:23.81 ID:15ovyaTG0
実際過去に作ったクラスをよそで流用できたことなんてないよね

178: 名無しさん@涙目です。(やわらか銀行) [US] 2018/11/23(金) 16:55:13.03 ID:ZI/DbmjN0
>>173
そりゃちゃんと書けてないだけだろうな。
よく見るよ。汎用性のないクソライブラリ

181: 名無しさん@涙目です。(茸) [ID] 2018/11/23(金) 18:30:18.20 ID:Hte36pL80
>>173
納品しちまうからな。
内製前提の海外向けの言い分だよ。

191: 名無しさん@涙目です。(家) [US] 2018/11/23(金) 22:14:39.40 ID:FWyNTd+t0
COBOLのソース見て真似してくれればいいんで…

引用元

http://hayabusa3.2ch.sc/test/read.cgi/news/1542866879/

管理人からひと言

クソなの?

コメント

  1. ox より:

    クソです
    オブジェクト指向の元祖アラン・ケイもオブジェクトなんかどうでもいいって言ってます
    大事なのはメッセージパスだと
    要するに塊どおしの通信が重要であってそれ塊自体はどうでもいいんですよと

    この手の話は枝葉のことを言うやつしかいないので幹の部分を言うと
    アーキテクチャスタイルを考えるとわかりやすいのだけど
    オブジェクト指向ってのは要するにウインドウシステムの記述のために作られた物で、
    ウインドウシステムみたいなものには向いているという歪んだアーキテクチャです
    例えばその後に出てきたWebはリソース指向でウインドウシステムみたいなタイトな階層構造ではなく
    リソースが個別に直接バラバラに結びつくという特徴があり、まったく正反対と言って良いものです
    タイトとルーズというくらいに逆です

    この観点でオブジェクト指向を見ていくとその主張がことごとくおかしいことに気づきます
    まあ詐欺みたいなものね
    詐欺に引っかかりやすい人が世の中には多いですね