X



オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:32:09.36ID:ifygL6bT
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。

偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
0442デフォルトの名無しさん
垢版 |
2018/10/03(水) 00:59:18.00ID:75/JdiDV
オブジェクト指向とは何で
何が良くて
何が悪くて
そしてどうしたらよかったのかとか
纏められるといいんだけれどもねえ
0443デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:01:35.24ID:75/JdiDV
目的指向というよりも
手段指向というか方法論指向で始終しちゃって
明後日の方向に愚民を導いて
混乱をもたらしたのは
なんともむなしい
0444デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:03:16.82ID:75/JdiDV
日本の失われた20年とちょうど時期が重なる
日本のITの暗黒時代
0445デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:03:23.91ID:Uljc2mte
>>441
手強いよ
さらに誰に金もらってるのか
特定の言語や商品の悪評を流すことを目的としてるから
0447デフォルトの名無しさん
垢版 |
2018/10/03(水) 10:56:50.79ID:gykQQ827
邪魔する奴の中に
単純に自分を有利にしておきたいから他人が自分の居るレベルまでこれ無い様に邪魔をする
という奴も居るからな
相対的な位置で報酬は決まるから他人を蹴落とす
というのを息をするようにやる奴がかなり居る
全体が進展するより停滞させて自分だけ有利にしようとする下劣な奴が結構居る
教育を変える必要が有るのに今のままでいい
とか言ってる奴もそういう連中
0451デフォルトの名無しさん
垢版 |
2018/10/03(水) 19:23:56.48ID:ksSGRyva
まさか日本語版とかいうゴミ見てるんじゃないだろうな…まさかな…
0454デフォルトの名無しさん
垢版 |
2018/10/03(水) 20:03:14.53ID:OyXOgA+h
>>444
その時期に書かれたコードでOOPを正しく実践してるものなんて見たこと無い
OOPが悪いのではなくOOPじゃなかったから悪いということになるな
0456デフォルトの名無しさん
垢版 |
2018/10/03(水) 20:50:59.00ID:L7SsoV0I
海外でHelp me, Stackoverflow. You’re my only hope.って書かれたTシャツ着たやつ見るくらい
0457デフォルトの名無しさん
垢版 |
2018/10/03(水) 22:09:14.84ID:2Mgu08sP
>>454
今なら正しくOOPを実践してるコードばかりなの?
そもそも正しいOOPってどんなものなの?
第一デザパタは前の方がさかんに取りざたされていたじゃない。

振り返って今だからこそ分かるんじゃじゃないの?
世に流布していたOOPはくそコードを量産した元になったと。
0458デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:08:05.48ID:G0/tEBDY
我々はね、間違うのよ
だいたいのことを間違うの

OOPだから糞コードになったんじゃなくて
OOP関係なく、糞コードにしかならないの
その一点についてすら自覚が無いの
0459デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:16:15.49ID:p3pJJViF
main関数から始まるc++はオブジェクト指向か?
(オブジェクト指向をちっとも理解してないものの意見です)
0460デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:39:24.91ID:YTuGf5mm
>>459
C++はオブジェクト指向(をサポートした)言語だよ
Cと違って継承や多態の機能が標準であるでしょ?
今からふり返ると中途半端な部分もあるけど

ただそのC++を使って書いたコードが
オブジェクト指向らしく書けているかは別の話
OOPとOOA(D)の違い
0461デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:22:43.55ID:e2lTbi2R
>>458
OOPの弊害について議論して来たのに
「OOP関係なく、糞コードにしかならない」と言われると、
OOPは糞コードの元となる害なかった無関係だと暗にほのめかしているようで
論点をすり替えてずるくごまかされたような印象を受けるよ
0462デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:28:26.90ID:bhAz8In7
OOPが原因で糞コードになるんなら
どうすればいいか一目瞭然じゃん
よかったな世界が平和になって
0463デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:32:28.79ID:e2lTbi2R
本当はいいものとなる筈だったのに、
ボタンを掛け違えたのか、変な使い方が一人歩きして普及しちゃったというか
なんというか、、、

最近は継承を廃止したり
他のパラダイムも併せた言語がどんどん出てきて
より良い解はいっぱい出て来るでしょう
0465デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:53:04.18ID:e2lTbi2R
んなもん使い方しだいにきまっとろうが
基本的に依存が込み入る元なので
十分静的に設計し尽くしてよほど律して使用するならともかく
変なテクニックを披露するため乱用したら害だろうな
悲惨だわ
0467デフォルトの名無しさん
垢版 |
2018/10/04(木) 21:04:04.79ID:lUzJxSj8
関数型の弊害の話をしたら必然的にオブジェクト指向の弊害の話になると思うの
0468デフォルトの名無しさん
垢版 |
2018/10/04(木) 21:07:13.85ID:vhCji18k
弊害ちゃう元からおまえの頭が悪いだけや
0469デフォルトの名無しさん
垢版 |
2018/10/05(金) 01:42:06.04ID:GLbBoG3S
これがオブジェクト指向を吹聴していた者たちの反論か…
科学的工学的有効性のかけらも無い
0475デフォルトの名無しさん
垢版 |
2018/10/05(金) 11:10:54.95ID:HilDODP3
クソとか言っている人間の方がよっぽど
>科学的工学的有効性のかけらも無い
と思うけど
0477デフォルトの名無しさん
垢版 |
2018/10/05(金) 14:35:10.66ID:kQel6lTj
べつにオブジェクト指向の概念は関数で実装しなくてもいいんだよ?
メッセージでもいいしな。
0478デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:01:51.18ID:LmyRE988
OcamlやF#のようにオブジェクト指向と関数型パラダイムを合わせて持つ言語もあるが、
内容は覚えていないけど本質的・理論的にはこの二つのパラダイムは相反するものだと聞いている。
確かに局所的、ミクロに上手くかかれた関数型の呼び出しは
型クラスのような複合構造の使う余地はもはや無く、自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
相反するのもうなずける話だと思っている。
OcamlやF#は詳しくないがどのレイヤでオブジェクト指向と関数型を使うかが分かれるんじゃないかな
numpyで関数の返り値が気がつくと内部クラスのオブジェクトになってた、みたいな。
0479デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:23:54.73ID:wNGV+/Yb
>自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
この辺が気になる
オブジェクト指向プログラミングの場合は
クラス内に操作対象(変数)を封じ込めてクラス外からアクセス出来ないようにして
グローバル変数が各所からアクセスされることで無限のアクセスパターンになるというのを避けている
というのが肝なんだと自分は思ってるんだけど
関数プログラミングは難しくてさっぱり且つ入門もまともにやった事ないんだけど
状態なんかを副作用?とか呼んでなるだけ外に出す
という方法で対処する
みたいだそうなんだけど?
その辺どうなんだろうか?
少し上の方にその話になりそうな流れが有って少し期待してたんだけど
違う方向に流れたようで残念だったんだけど
0480デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:49:03.56ID:LmyRE988
>>479
俺の書ける範囲で述べると、
身近な局所変数>一層外側のブロックの内部変数>。。。>大外側の大域変数
というスコープ階層は知ってるよね?

これに加えて関数呼び出しの階層
特に相似的階層構造の再帰で自然に繰り返しの表現(最終的には末尾再帰を
最適化で単純なloopに変換したコードが生成されるのだけれども)

この論理的(≠物理的)関数呼び出し階層構造では、
各階層における引数リストと返り値リストの相似的階層構造が
型クラスとその継承や委譲による階層構造のようなランダムで管理しにくいネットワーク構造としなくても
管理しやすい入れ子のスコープおよびエクステントの階層構造としてメモリ上に構築し自然に
アクセスできるイメージ

これで伝わるかな…
0481デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:59:33.53ID:LmyRE988
>>480
lexical scope・extentと
関数呼び出し階層のネスト・木構造
で複雑なデータ構造の関連性が自然に細分化できる
同時に処理の細分化も速やかにできる
勉強している人にはこれで伝わると思う

型クラスとかアクセサでカプセルかとか継承とか全いらない
0482デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:01:28.94ID:qfHN3zvO
関数型というかHaskellのええ所は>>260でいうパーツの切り分けが強制的になる所もあるよな
全てパターンマッチのワンライナーで関数が細かくブツ切りで出来るから後の編集しやすい
0483デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:02:29.25ID:LmyRE988
ただまぁ万能ではなく、
別の弱点(副作用のアル処理の扱い、学習コスト含む)
もあるので俺はfunctionalマンセーではないけれど
0484デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:31:10.16ID:LmyRE988
多態性についても文句あんだよねおれは。
あんあもの動的言語ではそもそも意識する必要も無い空気みたいなもの
それを変に応用して話をややこしくして…
まあ別途機会があれば書くかもしれないけれど。
かかないかおもしれない。

あどオブジェクト指向とその変な一時的流行で迷惑したのは
非科学的で誤ったオブジェクト指向論を信条として、それを宗教のように吹いてまわり
周りに強制し、反論すれば非難。でも自分ではたいしたソリューションのためのソフト開発できない
みたいな工程論・方法論者が跋扈して
開発者を煩わせたこと
0485デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:38:18.52ID:9tCZRFgp
書籍も全部一色だったし
MSが金出してただろうししゃーない
雑誌社も何の根拠もないのにオブジェクト指向マンセーだったよね
本当に技術を見定める能力があればそれが詐欺であると気づいたんだろうな
多くの人間はそうでは無かった
0486デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:41:57.53ID:LmyRE988
本当に有効な機能だけ自律して使えば有効な面もあったかもしれないけど
人間てそんなに器用じゃないし
群衆や社会問題って
チコちゃんの言う氷河期からそんなものだったのかもしれない
0487デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:43:22.02ID:LmyRE988
今でもオブジェクト指向からDNNやAiにステージを移して
同じようなことが続いている
0488デフォルトの名無しさん
垢版 |
2018/10/06(土) 02:03:28.62ID:LmyRE988
でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
ソフトウエアの構造を表現している。そしてすごいスピードでreviseする。
べらぼうな才能と手間と時間をかけてクラスベースOOPでソフトウエアを表現しようとしている
あれは(個人的に好きではないけど)見事だとうなってしまう。
優秀な者が活躍して、採用したパラダイムが茨の道に密だとしてある水準まで力強く構築しようとしていると思う。

翻って上のレスで揚げたような日の本のオブジェクト方法論指向論者は
なんと
プアーなことか

同じOOPでも同列にみなしてはいけないんだろうな
0489デフォルトの名無しさん
垢版 |
2018/10/06(土) 02:13:25.41ID:LmyRE988
ちなみにpythonの言語仕様自体は
涙なくして語れないほどのクソだと俺は思っている

なんか文句あるか?
               ___
               /     \
             / ─    ─ \
            /  (●)  (●) \
              |     (__人__)     | <かかってこいよ
           ,.゙-‐- 、  `⌒´   ,/    おらー
        ┌、. /     ヽ ー‐  <.
         ヽ.X、- 、   ,ノi      ハ
      ⊂>'">┐ヽノ〃     / ヘ
       入 ´// ノ        } ,..,.._',.-ァ
      /   `ー''"´      ,'  c〈〈〈っ<
     /          __,,..ノ ,ノヽー'"ノ
      {          ´    /  ``¨´
    /´¨`'''‐、._        ,'\
     ∨´     `ヽ、     ノ   ゙ヽ
      ∨      ヽ _,,..-'"    `ヽ
     ∨       〈-=、.__       }
      ヽ、     }   ``7‐-.  /
          ヽ     リ    /′  ノ
          /′  , {     /   /
        {     !   ,ノ  ,/′
          !    /  /   `‐-、
        !   ,/   ゙ー''' ー---'
          ',  /
        {   }
           ゙Y `ヽ、
            ゙ー--‐'
0490デフォルトの名無しさん
垢版 |
2018/10/06(土) 07:19:55.96ID:hM5EPMW3
pythonにprivate変数はありません。
pythonにswitch文はありません。
pythonのクラス関数はselfを第一引数に
命名規則は決められたものを守りましょう
インデントはスペース4つ
括弧の書き方でsetになったりdictになったりします
一列の文字数は79文字以内

(一部言語仕様でないのも書いてるけど)利点でもあり欠点でもあるな
0491デフォルトの名無しさん
垢版 |
2018/10/06(土) 07:35:40.78ID:vpFDdLxA
>>181

まとめると:
  Python のオブジェクト指向はクソ
0492デフォルトの名無しさん
垢版 |
2018/10/06(土) 11:22:52.91ID:LmyRE988
>>490
一番クソなのは初期の段階でブロックとlexical scopeを配慮して言語設計しなかったこと
今でも引きずっている
0494デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:08:17.37ID:LmyRE988
>>493
飲んで2chにポエム書くことくらい大目に見なよ
0495デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:36:23.41ID:o3SQFYgr
>>492
blockは無いし頑なに追加しようとしないけど
lexical scope な言語ではあるだろ
何か勘違いしてるんじゃない?用語の意味わかってる?
0496デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:43:55.83ID:LmyRE988
>>495
・関数の大外のfile scopeの変数を外部から参照させることが出来ない
classにする必要が無くてもclass objectを作ってclass変数とし無ければならない
・関数の内側は平坦なlocal scopeのみ、また外側の変数は参照のみ、更新できない(かった<3)
・block(てきなもの)がnestしてもscopeがnestしない
したがって関数bodyがでかくなると見えなくて良い遠くの変数を隠せない

>>492
で配慮していないと一言で言おうとしたのは
具体的にはこういった欠点
0497デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:59:20.11ID:LmyRE988
>>495
モダンな言語なら必ず備えているコードのlexicalな階層構造と
変数のscopeの階層の明確な対応が出来ているとは
とても言いがたい
0498デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:02:40.61ID:LmyRE988
さて、三連休だ、旅行に行ってくるわ。
あばよ、ノシ
0499デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:04:15.02ID:o3SQFYgr
だから一言blockが無いで良いじゃん
lexical scopeは関係ない
それにpython 3だけで大抵の言語のシェアを上回ってるのに、
未だに2の批判するのも意味分からん
0500デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:05:12.84ID:o3SQFYgr
>>496
>>495
>・関数の大外のfile scopeの変数を外部から参照させることが出来ない

これ意味分からんかったわ
どういうこと?
0501デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:06:48.29ID:c8T9aSvT
>でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
>よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
>ソフトウエアの構造を表現している。
numpy、tensorflowがオブジェクト志向?
そんな気は全くしないんだが、定義が全く違うのかな?
0502デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:08:53.96ID:o3SQFYgr
それと pythonでnonlocal や global を使いたくなるケースは
根本的に設計間違ってるから、クソコード撒き散らす前に設計見直した方が良いよ
0503デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:18:09.40ID:o3SQFYgr
>>501
numpyやtfの中のコードの事だろ
使う側は手続き型で書ける
tfは計算グラフを構築してから実行するから宣言型かもな
0504デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:21:52.83ID:sXtVjY80
>>501
そいつはここで気持ちよくポエりたいだけだから
レス返しても有益な情報は得られないよ
ポエ逃げしたいだけの人種だから
0506デフォルトの名無しさん
垢版 |
2018/10/06(土) 21:20:49.04ID:vpFDdLxA
>>503
まとめると:
・numpy や tf は C/C++ で書かれ内部はオブジェクト指向で設計された
・それらライブラリのAPIを Python は手続き的に利用している

つまりスレ的には、「Pythonのオブジェクト指向はクソ(>>181)」であると、
Python信者が認めたわけだ
0507デフォルトの名無しさん
垢版 |
2018/10/06(土) 21:28:26.10ID:c8T9aSvT
numpyの中身は知らんがtensorflowのどこがオブジェクト指向?
ホントにコード読んでんのかよ。。
なんか胡散臭い奴しかいねーな。。
0508デフォルトの名無しさん
垢版 |
2018/10/06(土) 21:38:32.17ID:9xvvgu9Y
>>506
数式を表現するのにオブジェクト指向なんていらん
行列演算したいだけなのにオブジェクト指向なんて強制されたらクソだわ

あ、数式使わないドカタの反論は不要なのでよろしく
ドカタには分からん世界があるんだよ
0509デフォルトの名無しさん
垢版 |
2018/10/06(土) 22:10:42.51ID:vpFDdLxA
>>508
Python信者からも賛同意見を頂けるとは嬉しい限り

・次世代言語12 Go Rust Swift Kotlin TypeScript
 http://mevius.2ch.net/test/read.cgi/tech/1530664695/963/
 >> 失礼な!!Python は FORTRAN/COBOL/BASIC に代表される
 >> 伝統的な手続き型言語の正当な後継スクリプト言語、
 >> 次世代の純粋手続き型言語です
 >>
 >> 関数型?オブジェクト指向?
 >> そんなのは飾りです、偉い人にはそれが分からんのですよ(必死
0510デフォルトの名無しさん
垢版 |
2018/10/06(土) 22:21:37.35ID:84qwAd3v
節子、それ便所の…
0511デフォルトの名無しさん
垢版 |
2018/10/06(土) 23:25:06.73ID:wNGV+/Yb
>>480さんへ
479です
自分は関数型に関しては完全に素人なのでなかなかに難しいです
単純に受けたイメージだとなんか凄くモノリシックに大きくなってしまいそう見えてしまう
関数型って何時もどういう風に制御するのか解らないなぁという感じで
基本的に難しい物なので自分には理解できないという感じなんだろうと思いつつ
今回は状態を通して何か掴めるかな?
と思いましたがそんなに甘くない感じですね
何にしても回答どうもです
関数型ってオブジェクト指向プログラミングシステムより更に難しいそうなのでオブジェクト指向より使える人が増えないような予感がします・・・
0512デフォルトの名無しさん
垢版 |
2018/10/07(日) 01:21:33.80ID:Nojuqsx1
>>502
そもそも nonlocal やら global などという
スコープ宣言に限定した予約語が存在するのは
Python が(歴史上、おそらくは)唯一の存在である、
という事実を忘れてやいませんか?

言い換えると、スコープに関して Python2 以前の
新規リリースの時点から「根本的に設計を間違えていた」のがPythonなわけ
で、根本的解決を採用せず、行き当たりばったりに
nonlocal やら golobal といった泥縄式対策を採用したのがPython3
0513デフォルトの名無しさん
垢版 |
2018/10/07(日) 01:25:43.47ID:iX7g/tHs
ゴローバルってなんかカッコええやん。
ゴローさん風味が出ててさ。
0514デフォルトの名無しさん
垢版 |
2018/10/07(日) 02:05:51.72ID:dWI643/y
nonlocalってセンスがウケるなw
いっそのことnonglobalも用意したらどうかwwww
0515デフォルトの名無しさん
垢版 |
2018/10/07(日) 14:29:17.30ID:+Rd5+blg
オブジェクト指向のスレでなんで延々と特定言語の言語実装の話してんの?
バカなの?
0516デフォルトの名無しさん
垢版 |
2018/10/07(日) 18:24:53.01ID:FMwg69WX
OOPの結果としては
クラスライブラリとかは文句なしに使いやすいと思うんだけどね
String, Map, List, Set, Threadなんかは十分使いやすいよね?
その点を否定するやつはさすがにおらんやろ?
0517デフォルトの名無しさん
垢版 |
2018/10/07(日) 18:26:20.74ID:qTxqyvp+
やっぱりクラスライブラリは使いやすいよね
文字列をポインタで操作してたCの時代に戻りたくない
0518デフォルトの名無しさん
垢版 |
2018/10/07(日) 18:37:23.80ID:FMwg69WX
そうなんよね
その点で見ればOOP大成功に見える

ただ、自前でクラスやクラスライブラリを書けつったときに
とたんにゴミの山になりかねないという
0520デフォルトの名無しさん
垢版 |
2018/10/07(日) 19:18:00.94ID:zvJnD+aL
>>516
使いやすいが、そこまで一般的なインターフェイスにするまで
いろんなソフトウェアの歴史があってこそなわけだ。
ユーザー定義でそのレベルのものを用意しようとすると途端に何も進まないか
クソインターフェイスをひたすら強要される現場となる。
0521デフォルトの名無しさん
垢版 |
2018/10/07(日) 19:37:46.92ID:FoRhSX54
クラス単体はオブジェクト指向だけど結局それを使うところでは手続き型にしてしまう。
0522デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:20:34.82ID:mIq+f5AO
ならC++のメソッドをすべてスタティックで書けばいい
そうすればメンバ変数も不要
スタティックのメソッドは当然メンバ変数にはアクセスできない

手続き型なら、入力の構造体と出力の構造体を関数を別で渡す程度で済むハズ
オブジェクトの状態を常に外側で管理する必要があることになる

MS-WindowsのAPIは
ウィンドウハンドラをひとつのオブジェクトとみなして
ウィンドウハンドラを経由して操作や設定を行ってる

ウィンドウハンドラも一つのオブジェクトで入力も出力もできるシロモノになってるからな
0523デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:25:31.13ID:mIq+f5AO
UNIXクローンのシステム関数にもwriteやreadがある
readやwriteはファイルディスクリプタを経由して
なにかしらに読んだり書いたりする関数だからな

つまりファイルディスクリプタをオブジェクトとみなして
読んだり書いたりしてるとみなしてると考えて差し支えない

コレはC++のようなオブジェクト指向言語で継承して実現できる内容と同じとみなせる
0524デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:36:06.11ID:B8+uQuvb
オッカムの剃刀の逆を地で行ってるなw
オブジェクト指向の何がダメか腑に落ちた気がするよ。ありがとう。
0526デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:48:32.68ID:9pTh9QRI
>>511
モノリシックに大きくなってしまうという印象は杞憂。
むしろ関数呼び出を一行ずつ言い切りみたいにつらねた宣言的書き方に近づく
リスト = 関数 リスト;
リスト = 関数 関数 リスト;
...
見たいな感じ。
状態は、本当に必要なもの以外は自然に登場してこなくなりその分複雑さを低減できる感じ。
どうしても状態管理が必要な処理は、
副作用の排除された純粋な言語の場合モナドみたいな物を持ち出さなければならないかもしれないが
副作用も許容している言語では、手続き的書き方をして状態を管理する形になると思われ、
どうしても必要な状態管理の煩雑さを関数型パラダイムで根本解決できるとはオレ的にはちょっと考えにくい。
難易度に関して言えば確かに学習コストは若干かかるけど、
いまはJavaやC++にもStreamやfoldなど関数型的なプログラミングのための機能が大急ぎで(かなりあせっている感じ)
取り入れられつつあるのであんまり肩肘張らないで、
ttps://qiita.com/stkdev/items/5c021d4e5d54d56b927c
https://ubiteku.oinker.me/2017/05/08/purpose-of-functional-programming/
といった導入的な情報などを参考にm日々の設計・開発の
局所的なコーディング範囲でもいいから使えるとことから使っていけば技術的な視野が広がるんじゃないかと思う。
ちなみに俺はそのサイトとは何の関係もないし、functionalマンセーではない
0527デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:51:20.95ID:9RTjDYv/
ミドルウェアは天才が書くから天才の好む言語で書く
クライアントコードはアホが書くからアホでも分かる手続き型で書く
開発者の能力に応じて分業可能にした功績はある
だいたい天才とアホが同じ言語使ってたのが頭おかしい発想だった
0529デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:52:57.06ID:9pTh9QRI
そ、そうなのか…
なんか熱でもあるんじゃね?
0530デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:03:08.28ID:zvJnD+aL
いやレイヤーや粒度によって向き不向きな言語、パラダイムがあるってだけだろ。
天才とかアホとか関係ねーわ。
まあそういう判断しかできない奴は例外なくアホだろうけれど。
0531デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:07:07.43ID:9RTjDYv/
まあ例外なくアホとかいう恥ずかしい書き込みをするような奴は例外なく知的障害者だろうけど。例外なく、なw
0532521
垢版 |
2018/10/07(日) 23:12:36.26ID:4NXYL+If
staticに使い道なんてあったんだ・・・
0533デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:20:21.45ID:9pTh9QRI
>>516
それらlibraryレイヤははよく練り上げられてまぁ使いやすいと思うよ。
でもよく考えてみてよ、納品を決められ短期間に仕様の策定からQAまでこなさなければならない
アプリケーションソフトウエア開発とそういった長年同じような機能のライブラリが繰り返し作り
直されてきたものは同一に論じることは無理でしょ。
それにレイヤが全然違うじゃない。
下から見れば数百個程度の機械語>言語の文法レベル>アルゴリズムのライブラリレベル
>それらを組み合わせ具体的なあるぴにための処理を折りませたアプリレイヤ>…
レイヤによって全然特性が違うんだよ。適した表現手段は当然違うと俺は思う。
つまりアルゴリズムのライブラリレベルに適した表現手段が必ずしもその上位にある
複雑な応用レベルの表現には適しているとは言いがたいのではないかということ。(ここ伝わりにくいと思う)
これは今でも俺も日々とても悩まされている問題。でもまそれはしzでんげんしょうみたいなものでしょうがないいんだよ。
誰も悪くないし。
本当に問題は、オブジェクト指向の名の下に非科学的非合理的で変な表現手段が流布し
(一部の人間が意図的に拡散させ)ソフトウエア開発の技術的水神をを後退させ混乱させてしまったこと。
俺はこの一点を問題視しているんだよ。

また飲みながらのポエムで悪いな。
0534デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:22:20.26ID:9pTh9QRI
>>533 誤記多いなスマソ
しzでんげんしょう → 自然現象
技術的水神 → 技術的水準
0536デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:28:24.29ID:9pTh9QRI
>>535
そんなことよりポエムでもいいからなんか内容を書けよ
なんかむかついたのかw
0538デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:31:09.36ID:9pTh9QRI
OOPの幻想を追いながらゴミの山量産してて頂戴
0539デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:44:00.68ID:mIq+f5AO
https://ideone.com/PErfVu
コレがオブジェクト指向なコーディング
0540デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:52:58.21ID:GYr8Tket
だからねえ、凡人プログラマがいきがってOOを語るなっつーの

それなりに名が売れてる人以外、講釈垂れ禁止にしたいよね
■ このスレッドは過去ログ倉庫に格納されています

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