カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/08/24(金) 13:32:09.36ID:ifygL6bT462デフォルトの名無しさん
2018/10/04(木) 00:28:26.90ID:bhAz8In7 OOPが原因で糞コードになるんなら
どうすればいいか一目瞭然じゃん
よかったな世界が平和になって
どうすればいいか一目瞭然じゃん
よかったな世界が平和になって
463デフォルトの名無しさん
2018/10/04(木) 00:32:28.79ID:e2lTbi2R 本当はいいものとなる筈だったのに、
ボタンを掛け違えたのか、変な使い方が一人歩きして普及しちゃったというか
なんというか、、、
最近は継承を廃止したり
他のパラダイムも併せた言語がどんどん出てきて
より良い解はいっぱい出て来るでしょう
ボタンを掛け違えたのか、変な使い方が一人歩きして普及しちゃったというか
なんというか、、、
最近は継承を廃止したり
他のパラダイムも併せた言語がどんどん出てきて
より良い解はいっぱい出て来るでしょう
464デフォルトの名無しさん
2018/10/04(木) 00:44:45.46ID:s35zoLCp 継承の時にc++のprotectedは有害か?
465デフォルトの名無しさん
2018/10/04(木) 00:53:04.18ID:e2lTbi2R んなもん使い方しだいにきまっとろうが
基本的に依存が込み入る元なので
十分静的に設計し尽くしてよほど律して使用するならともかく
変なテクニックを披露するため乱用したら害だろうな
悲惨だわ
基本的に依存が込み入る元なので
十分静的に設計し尽くしてよほど律して使用するならともかく
変なテクニックを披露するため乱用したら害だろうな
悲惨だわ
466デフォルトの名無しさん
2018/10/04(木) 19:08:28.34ID:bhAz8In7 典型的なフワフワ野郎やなこいつ
467デフォルトの名無しさん
2018/10/04(木) 21:04:04.79ID:lUzJxSj8 関数型の弊害の話をしたら必然的にオブジェクト指向の弊害の話になると思うの
468デフォルトの名無しさん
2018/10/04(木) 21:07:13.85ID:vhCji18k 弊害ちゃう元からおまえの頭が悪いだけや
469デフォルトの名無しさん
2018/10/05(金) 01:42:06.04ID:GLbBoG3S これがオブジェクト指向を吹聴していた者たちの反論か…
科学的工学的有効性のかけらも無い
科学的工学的有効性のかけらも無い
470デフォルトの名無しさん
2018/10/05(金) 06:56:18.75ID:u1B1EyaQ471デフォルトの名無しさん
2018/10/05(金) 08:22:51.05ID:jK12bSnX >>464
c++自体有害
c++自体有害
472デフォルトの名無しさん
2018/10/05(金) 10:34:10.65ID:kQel6lTj >>467
オブジェクト指向と関数型に何の関係があるんだ?
オブジェクト指向と関数型に何の関係があるんだ?
473デフォルトの名無しさん
2018/10/05(金) 10:55:46.34ID:4oQp/Mop474デフォルトの名無しさん
2018/10/05(金) 10:58:14.90ID:kQel6lTj >>473
その理屈だと、むしろ無関係なもの探す方が難しいなw
その理屈だと、むしろ無関係なもの探す方が難しいなw
475デフォルトの名無しさん
2018/10/05(金) 11:10:54.95ID:HilDODP3 クソとか言っている人間の方がよっぽど
>科学的工学的有効性のかけらも無い
と思うけど
>科学的工学的有効性のかけらも無い
と思うけど
476デフォルトの名無しさん
2018/10/05(金) 12:04:19.49ID:4oQp/Mop >>474
なに言うてんねん、必死やな
なに言うてんねん、必死やな
477デフォルトの名無しさん
2018/10/05(金) 14:35:10.66ID:kQel6lTj べつにオブジェクト指向の概念は関数で実装しなくてもいいんだよ?
メッセージでもいいしな。
メッセージでもいいしな。
478デフォルトの名無しさん
2018/10/06(土) 00:01:51.18ID:LmyRE988 OcamlやF#のようにオブジェクト指向と関数型パラダイムを合わせて持つ言語もあるが、
内容は覚えていないけど本質的・理論的にはこの二つのパラダイムは相反するものだと聞いている。
確かに局所的、ミクロに上手くかかれた関数型の呼び出しは
型クラスのような複合構造の使う余地はもはや無く、自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
相反するのもうなずける話だと思っている。
OcamlやF#は詳しくないがどのレイヤでオブジェクト指向と関数型を使うかが分かれるんじゃないかな
numpyで関数の返り値が気がつくと内部クラスのオブジェクトになってた、みたいな。
内容は覚えていないけど本質的・理論的にはこの二つのパラダイムは相反するものだと聞いている。
確かに局所的、ミクロに上手くかかれた関数型の呼び出しは
型クラスのような複合構造の使う余地はもはや無く、自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
相反するのもうなずける話だと思っている。
OcamlやF#は詳しくないがどのレイヤでオブジェクト指向と関数型を使うかが分かれるんじゃないかな
numpyで関数の返り値が気がつくと内部クラスのオブジェクトになってた、みたいな。
479デフォルトの名無しさん
2018/10/06(土) 00:23:54.73ID:wNGV+/Yb >自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
この辺が気になる
オブジェクト指向プログラミングの場合は
クラス内に操作対象(変数)を封じ込めてクラス外からアクセス出来ないようにして
グローバル変数が各所からアクセスされることで無限のアクセスパターンになるというのを避けている
というのが肝なんだと自分は思ってるんだけど
関数プログラミングは難しくてさっぱり且つ入門もまともにやった事ないんだけど
状態なんかを副作用?とか呼んでなるだけ外に出す
という方法で対処する
みたいだそうなんだけど?
その辺どうなんだろうか?
少し上の方にその話になりそうな流れが有って少し期待してたんだけど
違う方向に流れたようで残念だったんだけど
各記憶クラスのインスタンスにアクセスを表現できるから
この辺が気になる
オブジェクト指向プログラミングの場合は
クラス内に操作対象(変数)を封じ込めてクラス外からアクセス出来ないようにして
グローバル変数が各所からアクセスされることで無限のアクセスパターンになるというのを避けている
というのが肝なんだと自分は思ってるんだけど
関数プログラミングは難しくてさっぱり且つ入門もまともにやった事ないんだけど
状態なんかを副作用?とか呼んでなるだけ外に出す
という方法で対処する
みたいだそうなんだけど?
その辺どうなんだろうか?
少し上の方にその話になりそうな流れが有って少し期待してたんだけど
違う方向に流れたようで残念だったんだけど
480デフォルトの名無しさん
2018/10/06(土) 00:49:03.56ID:LmyRE988 >>479
俺の書ける範囲で述べると、
身近な局所変数>一層外側のブロックの内部変数>。。。>大外側の大域変数
というスコープ階層は知ってるよね?
これに加えて関数呼び出しの階層
特に相似的階層構造の再帰で自然に繰り返しの表現(最終的には末尾再帰を
最適化で単純なloopに変換したコードが生成されるのだけれども)
この論理的(≠物理的)関数呼び出し階層構造では、
各階層における引数リストと返り値リストの相似的階層構造が
型クラスとその継承や委譲による階層構造のようなランダムで管理しにくいネットワーク構造としなくても
管理しやすい入れ子のスコープおよびエクステントの階層構造としてメモリ上に構築し自然に
アクセスできるイメージ
これで伝わるかな…
俺の書ける範囲で述べると、
身近な局所変数>一層外側のブロックの内部変数>。。。>大外側の大域変数
というスコープ階層は知ってるよね?
これに加えて関数呼び出しの階層
特に相似的階層構造の再帰で自然に繰り返しの表現(最終的には末尾再帰を
最適化で単純なloopに変換したコードが生成されるのだけれども)
この論理的(≠物理的)関数呼び出し階層構造では、
各階層における引数リストと返り値リストの相似的階層構造が
型クラスとその継承や委譲による階層構造のようなランダムで管理しにくいネットワーク構造としなくても
管理しやすい入れ子のスコープおよびエクステントの階層構造としてメモリ上に構築し自然に
アクセスできるイメージ
これで伝わるかな…
481デフォルトの名無しさん
2018/10/06(土) 00:59:33.53ID:LmyRE988 >>480
lexical scope・extentと
関数呼び出し階層のネスト・木構造
で複雑なデータ構造の関連性が自然に細分化できる
同時に処理の細分化も速やかにできる
勉強している人にはこれで伝わると思う
型クラスとかアクセサでカプセルかとか継承とか全いらない
lexical scope・extentと
関数呼び出し階層のネスト・木構造
で複雑なデータ構造の関連性が自然に細分化できる
同時に処理の細分化も速やかにできる
勉強している人にはこれで伝わると思う
型クラスとかアクセサでカプセルかとか継承とか全いらない
482デフォルトの名無しさん
2018/10/06(土) 01:01:28.94ID:qfHN3zvO 関数型というかHaskellのええ所は>>260でいうパーツの切り分けが強制的になる所もあるよな
全てパターンマッチのワンライナーで関数が細かくブツ切りで出来るから後の編集しやすい
全てパターンマッチのワンライナーで関数が細かくブツ切りで出来るから後の編集しやすい
483デフォルトの名無しさん
2018/10/06(土) 01:02:29.25ID:LmyRE988 ただまぁ万能ではなく、
別の弱点(副作用のアル処理の扱い、学習コスト含む)
もあるので俺はfunctionalマンセーではないけれど
別の弱点(副作用のアル処理の扱い、学習コスト含む)
もあるので俺はfunctionalマンセーではないけれど
484デフォルトの名無しさん
2018/10/06(土) 01:31:10.16ID:LmyRE988 多態性についても文句あんだよねおれは。
あんあもの動的言語ではそもそも意識する必要も無い空気みたいなもの
それを変に応用して話をややこしくして…
まあ別途機会があれば書くかもしれないけれど。
かかないかおもしれない。
あどオブジェクト指向とその変な一時的流行で迷惑したのは
非科学的で誤ったオブジェクト指向論を信条として、それを宗教のように吹いてまわり
周りに強制し、反論すれば非難。でも自分ではたいしたソリューションのためのソフト開発できない
みたいな工程論・方法論者が跋扈して
開発者を煩わせたこと
あんあもの動的言語ではそもそも意識する必要も無い空気みたいなもの
それを変に応用して話をややこしくして…
まあ別途機会があれば書くかもしれないけれど。
かかないかおもしれない。
あどオブジェクト指向とその変な一時的流行で迷惑したのは
非科学的で誤ったオブジェクト指向論を信条として、それを宗教のように吹いてまわり
周りに強制し、反論すれば非難。でも自分ではたいしたソリューションのためのソフト開発できない
みたいな工程論・方法論者が跋扈して
開発者を煩わせたこと
485デフォルトの名無しさん
2018/10/06(土) 01:38:18.52ID:9tCZRFgp 書籍も全部一色だったし
MSが金出してただろうししゃーない
雑誌社も何の根拠もないのにオブジェクト指向マンセーだったよね
本当に技術を見定める能力があればそれが詐欺であると気づいたんだろうな
多くの人間はそうでは無かった
MSが金出してただろうししゃーない
雑誌社も何の根拠もないのにオブジェクト指向マンセーだったよね
本当に技術を見定める能力があればそれが詐欺であると気づいたんだろうな
多くの人間はそうでは無かった
486デフォルトの名無しさん
2018/10/06(土) 01:41:57.53ID:LmyRE988 本当に有効な機能だけ自律して使えば有効な面もあったかもしれないけど
人間てそんなに器用じゃないし
群衆や社会問題って
チコちゃんの言う氷河期からそんなものだったのかもしれない
人間てそんなに器用じゃないし
群衆や社会問題って
チコちゃんの言う氷河期からそんなものだったのかもしれない
487デフォルトの名無しさん
2018/10/06(土) 01:43:22.02ID:LmyRE988 今でもオブジェクト指向からDNNやAiにステージを移して
同じようなことが続いている
同じようなことが続いている
488デフォルトの名無しさん
2018/10/06(土) 02:03:28.62ID:LmyRE988 でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
ソフトウエアの構造を表現している。そしてすごいスピードでreviseする。
べらぼうな才能と手間と時間をかけてクラスベースOOPでソフトウエアを表現しようとしている
あれは(個人的に好きではないけど)見事だとうなってしまう。
優秀な者が活躍して、採用したパラダイムが茨の道に密だとしてある水準まで力強く構築しようとしていると思う。
翻って上のレスで揚げたような日の本のオブジェクト方法論指向論者は
なんと
プアーなことか
同じOOPでも同列にみなしてはいけないんだろうな
よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
ソフトウエアの構造を表現している。そしてすごいスピードでreviseする。
べらぼうな才能と手間と時間をかけてクラスベースOOPでソフトウエアを表現しようとしている
あれは(個人的に好きではないけど)見事だとうなってしまう。
優秀な者が活躍して、採用したパラダイムが茨の道に密だとしてある水準まで力強く構築しようとしていると思う。
翻って上のレスで揚げたような日の本のオブジェクト方法論指向論者は
なんと
プアーなことか
同じOOPでも同列にみなしてはいけないんだろうな
489デフォルトの名無しさん
2018/10/06(土) 02:13:25.41ID:LmyRE988 ちなみにpythonの言語仕様自体は
涙なくして語れないほどのクソだと俺は思っている
なんか文句あるか?
___
/ \
/ ─ ─ \
/ (●) (●) \
| (__人__) | <かかってこいよ
,.゙-‐- 、 `⌒´ ,/ おらー
┌、. / ヽ ー‐ <.
ヽ.X、- 、 ,ノi ハ
⊂>'">┐ヽノ〃 / ヘ
入 ´// ノ } ,..,.._',.-ァ
/ `ー''"´ ,' c〈〈〈っ<
/ __,,..ノ ,ノヽー'"ノ
{ ´ / ``¨´
/´¨`'''‐、._ ,'\
∨´ `ヽ、 ノ ゙ヽ
∨ ヽ _,,..-'" `ヽ
∨ 〈-=、.__ }
ヽ、 } ``7‐-. /
ヽ リ /′ ノ
/′ , { / /
{ ! ,ノ ,/′
! / / `‐-、
! ,/ ゙ー''' ー---'
', /
{ }
゙Y `ヽ、
゙ー--‐'
涙なくして語れないほどのクソだと俺は思っている
なんか文句あるか?
___
/ \
/ ─ ─ \
/ (●) (●) \
| (__人__) | <かかってこいよ
,.゙-‐- 、 `⌒´ ,/ おらー
┌、. / ヽ ー‐ <.
ヽ.X、- 、 ,ノi ハ
⊂>'">┐ヽノ〃 / ヘ
入 ´// ノ } ,..,.._',.-ァ
/ `ー''"´ ,' c〈〈〈っ<
/ __,,..ノ ,ノヽー'"ノ
{ ´ / ``¨´
/´¨`'''‐、._ ,'\
∨´ `ヽ、 ノ ゙ヽ
∨ ヽ _,,..-'" `ヽ
∨ 〈-=、.__ }
ヽ、 } ``7‐-. /
ヽ リ /′ ノ
/′ , { / /
{ ! ,ノ ,/′
! / / `‐-、
! ,/ ゙ー''' ー---'
', /
{ }
゙Y `ヽ、
゙ー--‐'
490デフォルトの名無しさん
2018/10/06(土) 07:19:55.96ID:hM5EPMW3 pythonにprivate変数はありません。
pythonにswitch文はありません。
pythonのクラス関数はselfを第一引数に
命名規則は決められたものを守りましょう
インデントはスペース4つ
括弧の書き方でsetになったりdictになったりします
一列の文字数は79文字以内
(一部言語仕様でないのも書いてるけど)利点でもあり欠点でもあるな
pythonにswitch文はありません。
pythonのクラス関数はselfを第一引数に
命名規則は決められたものを守りましょう
インデントはスペース4つ
括弧の書き方でsetになったりdictになったりします
一列の文字数は79文字以内
(一部言語仕様でないのも書いてるけど)利点でもあり欠点でもあるな
491デフォルトの名無しさん
2018/10/06(土) 07:35:40.78ID:vpFDdLxA >>181
まとめると:
Python のオブジェクト指向はクソ
まとめると:
Python のオブジェクト指向はクソ
492デフォルトの名無しさん
2018/10/06(土) 11:22:52.91ID:LmyRE988493デフォルトの名無しさん
2018/10/06(土) 12:56:22.72ID:sXtVjY80 ID:LmyRE988
↑なんでこいつすぐポエってしまうん?
↑なんでこいつすぐポエってしまうん?
494デフォルトの名無しさん
2018/10/06(土) 13:08:17.37ID:LmyRE988 >>493
飲んで2chにポエム書くことくらい大目に見なよ
飲んで2chにポエム書くことくらい大目に見なよ
495デフォルトの名無しさん
2018/10/06(土) 13:36:23.41ID:o3SQFYgr496デフォルトの名無しさん
2018/10/06(土) 13:43:55.83ID:LmyRE988497デフォルトの名無しさん
2018/10/06(土) 13:59:20.11ID:LmyRE988498デフォルトの名無しさん
2018/10/06(土) 14:02:40.61ID:LmyRE988 さて、三連休だ、旅行に行ってくるわ。
あばよ、ノシ
あばよ、ノシ
499デフォルトの名無しさん
2018/10/06(土) 14:04:15.02ID:o3SQFYgr だから一言blockが無いで良いじゃん
lexical scopeは関係ない
それにpython 3だけで大抵の言語のシェアを上回ってるのに、
未だに2の批判するのも意味分からん
lexical scopeは関係ない
それにpython 3だけで大抵の言語のシェアを上回ってるのに、
未だに2の批判するのも意味分からん
500デフォルトの名無しさん
2018/10/06(土) 14:05:12.84ID:o3SQFYgr501デフォルトの名無しさん
2018/10/06(土) 14:06:48.29ID:c8T9aSvT >でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
>よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
>ソフトウエアの構造を表現している。
numpy、tensorflowがオブジェクト志向?
そんな気は全くしないんだが、定義が全く違うのかな?
>よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
>ソフトウエアの構造を表現している。
numpy、tensorflowがオブジェクト志向?
そんな気は全くしないんだが、定義が全く違うのかな?
502デフォルトの名無しさん
2018/10/06(土) 14:08:53.96ID:o3SQFYgr それと pythonでnonlocal や global を使いたくなるケースは
根本的に設計間違ってるから、クソコード撒き散らす前に設計見直した方が良いよ
根本的に設計間違ってるから、クソコード撒き散らす前に設計見直した方が良いよ
503デフォルトの名無しさん
2018/10/06(土) 14:18:09.40ID:o3SQFYgr504デフォルトの名無しさん
2018/10/06(土) 14:21:52.83ID:sXtVjY80505デフォルトの名無しさん
2018/10/06(土) 14:28:45.50ID:9tCZRFgp スレッド内にカプセル化されとる
506デフォルトの名無しさん
2018/10/06(土) 21:20:49.04ID:vpFDdLxA507デフォルトの名無しさん
2018/10/06(土) 21:28:26.10ID:c8T9aSvT numpyの中身は知らんがtensorflowのどこがオブジェクト指向?
ホントにコード読んでんのかよ。。
なんか胡散臭い奴しかいねーな。。
ホントにコード読んでんのかよ。。
なんか胡散臭い奴しかいねーな。。
508デフォルトの名無しさん
2018/10/06(土) 21:38:32.17ID:9xvvgu9Y >>506
数式を表現するのにオブジェクト指向なんていらん
行列演算したいだけなのにオブジェクト指向なんて強制されたらクソだわ
あ、数式使わないドカタの反論は不要なのでよろしく
ドカタには分からん世界があるんだよ
数式を表現するのにオブジェクト指向なんていらん
行列演算したいだけなのにオブジェクト指向なんて強制されたらクソだわ
あ、数式使わないドカタの反論は不要なのでよろしく
ドカタには分からん世界があるんだよ
509デフォルトの名無しさん
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 に代表される
>> 伝統的な手続き型言語の正当な後継スクリプト言語、
>> 次世代の純粋手続き型言語です
>>
>> 関数型?オブジェクト指向?
>> そんなのは飾りです、偉い人にはそれが分からんのですよ(必死
Python信者からも賛同意見を頂けるとは嬉しい限り
・次世代言語12 Go Rust Swift Kotlin TypeScript
http://mevius.2ch.net/test/read.cgi/tech/1530664695/963/
>> 失礼な!!Python は FORTRAN/COBOL/BASIC に代表される
>> 伝統的な手続き型言語の正当な後継スクリプト言語、
>> 次世代の純粋手続き型言語です
>>
>> 関数型?オブジェクト指向?
>> そんなのは飾りです、偉い人にはそれが分からんのですよ(必死
510デフォルトの名無しさん
2018/10/06(土) 22:21:37.35ID:84qwAd3v 節子、それ便所の…
511デフォルトの名無しさん
2018/10/06(土) 23:25:06.73ID:wNGV+/Yb >>480さんへ
479です
自分は関数型に関しては完全に素人なのでなかなかに難しいです
単純に受けたイメージだとなんか凄くモノリシックに大きくなってしまいそう見えてしまう
関数型って何時もどういう風に制御するのか解らないなぁという感じで
基本的に難しい物なので自分には理解できないという感じなんだろうと思いつつ
今回は状態を通して何か掴めるかな?
と思いましたがそんなに甘くない感じですね
何にしても回答どうもです
関数型ってオブジェクト指向プログラミングシステムより更に難しいそうなのでオブジェクト指向より使える人が増えないような予感がします・・・
479です
自分は関数型に関しては完全に素人なのでなかなかに難しいです
単純に受けたイメージだとなんか凄くモノリシックに大きくなってしまいそう見えてしまう
関数型って何時もどういう風に制御するのか解らないなぁという感じで
基本的に難しい物なので自分には理解できないという感じなんだろうと思いつつ
今回は状態を通して何か掴めるかな?
と思いましたがそんなに甘くない感じですね
何にしても回答どうもです
関数型ってオブジェクト指向プログラミングシステムより更に難しいそうなのでオブジェクト指向より使える人が増えないような予感がします・・・
512デフォルトの名無しさん
2018/10/07(日) 01:21:33.80ID:Nojuqsx1 >>502
そもそも nonlocal やら global などという
スコープ宣言に限定した予約語が存在するのは
Python が(歴史上、おそらくは)唯一の存在である、
という事実を忘れてやいませんか?
言い換えると、スコープに関して Python2 以前の
新規リリースの時点から「根本的に設計を間違えていた」のがPythonなわけ
で、根本的解決を採用せず、行き当たりばったりに
nonlocal やら golobal といった泥縄式対策を採用したのがPython3
そもそも nonlocal やら global などという
スコープ宣言に限定した予約語が存在するのは
Python が(歴史上、おそらくは)唯一の存在である、
という事実を忘れてやいませんか?
言い換えると、スコープに関して Python2 以前の
新規リリースの時点から「根本的に設計を間違えていた」のがPythonなわけ
で、根本的解決を採用せず、行き当たりばったりに
nonlocal やら golobal といった泥縄式対策を採用したのがPython3
513デフォルトの名無しさん
2018/10/07(日) 01:25:43.47ID:iX7g/tHs ゴローバルってなんかカッコええやん。
ゴローさん風味が出ててさ。
ゴローさん風味が出ててさ。
514デフォルトの名無しさん
2018/10/07(日) 02:05:51.72ID:dWI643/y nonlocalってセンスがウケるなw
いっそのことnonglobalも用意したらどうかwwww
いっそのことnonglobalも用意したらどうかwwww
515デフォルトの名無しさん
2018/10/07(日) 14:29:17.30ID:+Rd5+blg オブジェクト指向のスレでなんで延々と特定言語の言語実装の話してんの?
バカなの?
バカなの?
516デフォルトの名無しさん
2018/10/07(日) 18:24:53.01ID:FMwg69WX OOPの結果としては
クラスライブラリとかは文句なしに使いやすいと思うんだけどね
String, Map, List, Set, Threadなんかは十分使いやすいよね?
その点を否定するやつはさすがにおらんやろ?
クラスライブラリとかは文句なしに使いやすいと思うんだけどね
String, Map, List, Set, Threadなんかは十分使いやすいよね?
その点を否定するやつはさすがにおらんやろ?
517デフォルトの名無しさん
2018/10/07(日) 18:26:20.74ID:qTxqyvp+ やっぱりクラスライブラリは使いやすいよね
文字列をポインタで操作してたCの時代に戻りたくない
文字列をポインタで操作してたCの時代に戻りたくない
518デフォルトの名無しさん
2018/10/07(日) 18:37:23.80ID:FMwg69WX そうなんよね
その点で見ればOOP大成功に見える
ただ、自前でクラスやクラスライブラリを書けつったときに
とたんにゴミの山になりかねないという
その点で見ればOOP大成功に見える
ただ、自前でクラスやクラスライブラリを書けつったときに
とたんにゴミの山になりかねないという
519デフォルトの名無しさん
2018/10/07(日) 18:59:53.35ID:blwtBRQv520デフォルトの名無しさん
2018/10/07(日) 19:18:00.94ID:zvJnD+aL >>516
使いやすいが、そこまで一般的なインターフェイスにするまで
いろんなソフトウェアの歴史があってこそなわけだ。
ユーザー定義でそのレベルのものを用意しようとすると途端に何も進まないか
クソインターフェイスをひたすら強要される現場となる。
使いやすいが、そこまで一般的なインターフェイスにするまで
いろんなソフトウェアの歴史があってこそなわけだ。
ユーザー定義でそのレベルのものを用意しようとすると途端に何も進まないか
クソインターフェイスをひたすら強要される現場となる。
521デフォルトの名無しさん
2018/10/07(日) 19:37:46.92ID:FoRhSX54 クラス単体はオブジェクト指向だけど結局それを使うところでは手続き型にしてしまう。
522デフォルトの名無しさん
2018/10/07(日) 22:20:34.82ID:mIq+f5AO ならC++のメソッドをすべてスタティックで書けばいい
そうすればメンバ変数も不要
スタティックのメソッドは当然メンバ変数にはアクセスできない
手続き型なら、入力の構造体と出力の構造体を関数を別で渡す程度で済むハズ
オブジェクトの状態を常に外側で管理する必要があることになる
MS-WindowsのAPIは
ウィンドウハンドラをひとつのオブジェクトとみなして
ウィンドウハンドラを経由して操作や設定を行ってる
ウィンドウハンドラも一つのオブジェクトで入力も出力もできるシロモノになってるからな
そうすればメンバ変数も不要
スタティックのメソッドは当然メンバ変数にはアクセスできない
手続き型なら、入力の構造体と出力の構造体を関数を別で渡す程度で済むハズ
オブジェクトの状態を常に外側で管理する必要があることになる
MS-WindowsのAPIは
ウィンドウハンドラをひとつのオブジェクトとみなして
ウィンドウハンドラを経由して操作や設定を行ってる
ウィンドウハンドラも一つのオブジェクトで入力も出力もできるシロモノになってるからな
523デフォルトの名無しさん
2018/10/07(日) 22:25:31.13ID:mIq+f5AO UNIXクローンのシステム関数にもwriteやreadがある
readやwriteはファイルディスクリプタを経由して
なにかしらに読んだり書いたりする関数だからな
つまりファイルディスクリプタをオブジェクトとみなして
読んだり書いたりしてるとみなしてると考えて差し支えない
コレはC++のようなオブジェクト指向言語で継承して実現できる内容と同じとみなせる
readやwriteはファイルディスクリプタを経由して
なにかしらに読んだり書いたりする関数だからな
つまりファイルディスクリプタをオブジェクトとみなして
読んだり書いたりしてるとみなしてると考えて差し支えない
コレはC++のようなオブジェクト指向言語で継承して実現できる内容と同じとみなせる
524デフォルトの名無しさん
2018/10/07(日) 22:36:06.11ID:B8+uQuvb オッカムの剃刀の逆を地で行ってるなw
オブジェクト指向の何がダメか腑に落ちた気がするよ。ありがとう。
オブジェクト指向の何がダメか腑に落ちた気がするよ。ありがとう。
525デフォルトの名無しさん
2018/10/07(日) 22:46:39.84ID:qTxqyvp+ 全部スタティックにするってそれ
スタティックおじさんじゃねーか!
スタティックおじさんじゃねーか!
526デフォルトの名無しさん
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マンセーではない
モノリシックに大きくなってしまうという印象は杞憂。
むしろ関数呼び出を一行ずつ言い切りみたいにつらねた宣言的書き方に近づく
リスト = 関数 リスト;
リスト = 関数 関数 リスト;
...
見たいな感じ。
状態は、本当に必要なもの以外は自然に登場してこなくなりその分複雑さを低減できる感じ。
どうしても状態管理が必要な処理は、
副作用の排除された純粋な言語の場合モナドみたいな物を持ち出さなければならないかもしれないが
副作用も許容している言語では、手続き的書き方をして状態を管理する形になると思われ、
どうしても必要な状態管理の煩雑さを関数型パラダイムで根本解決できるとはオレ的にはちょっと考えにくい。
難易度に関して言えば確かに学習コストは若干かかるけど、
いまはJavaやC++にもStreamやfoldなど関数型的なプログラミングのための機能が大急ぎで(かなりあせっている感じ)
取り入れられつつあるのであんまり肩肘張らないで、
ttps://qiita.com/stkdev/items/5c021d4e5d54d56b927c
https://ubiteku.oinker.me/2017/05/08/purpose-of-functional-programming/
といった導入的な情報などを参考にm日々の設計・開発の
局所的なコーディング範囲でもいいから使えるとことから使っていけば技術的な視野が広がるんじゃないかと思う。
ちなみに俺はそのサイトとは何の関係もないし、functionalマンセーではない
527デフォルトの名無しさん
2018/10/07(日) 22:51:20.95ID:9RTjDYv/ ミドルウェアは天才が書くから天才の好む言語で書く
クライアントコードはアホが書くからアホでも分かる手続き型で書く
開発者の能力に応じて分業可能にした功績はある
だいたい天才とアホが同じ言語使ってたのが頭おかしい発想だった
クライアントコードはアホが書くからアホでも分かる手続き型で書く
開発者の能力に応じて分業可能にした功績はある
だいたい天才とアホが同じ言語使ってたのが頭おかしい発想だった
528デフォルトの名無しさん
2018/10/07(日) 22:52:56.75ID:9RTjDYv/ アホはひらがなだけ使え
漢字を使うと他のアホが読めなくなる
漢字を使うと他のアホが読めなくなる
529デフォルトの名無しさん
2018/10/07(日) 22:52:57.06ID:9pTh9QRI そ、そうなのか…
なんか熱でもあるんじゃね?
なんか熱でもあるんじゃね?
530デフォルトの名無しさん
2018/10/07(日) 23:03:08.28ID:zvJnD+aL いやレイヤーや粒度によって向き不向きな言語、パラダイムがあるってだけだろ。
天才とかアホとか関係ねーわ。
まあそういう判断しかできない奴は例外なくアホだろうけれど。
天才とかアホとか関係ねーわ。
まあそういう判断しかできない奴は例外なくアホだろうけれど。
531デフォルトの名無しさん
2018/10/07(日) 23:07:07.43ID:9RTjDYv/ まあ例外なくアホとかいう恥ずかしい書き込みをするような奴は例外なく知的障害者だろうけど。例外なく、なw
532521
2018/10/07(日) 23:12:36.26ID:4NXYL+If staticに使い道なんてあったんだ・・・
533デフォルトの名無しさん
2018/10/07(日) 23:20:21.45ID:9pTh9QRI >>516
それらlibraryレイヤははよく練り上げられてまぁ使いやすいと思うよ。
でもよく考えてみてよ、納品を決められ短期間に仕様の策定からQAまでこなさなければならない
アプリケーションソフトウエア開発とそういった長年同じような機能のライブラリが繰り返し作り
直されてきたものは同一に論じることは無理でしょ。
それにレイヤが全然違うじゃない。
下から見れば数百個程度の機械語>言語の文法レベル>アルゴリズムのライブラリレベル
>それらを組み合わせ具体的なあるぴにための処理を折りませたアプリレイヤ>…
レイヤによって全然特性が違うんだよ。適した表現手段は当然違うと俺は思う。
つまりアルゴリズムのライブラリレベルに適した表現手段が必ずしもその上位にある
複雑な応用レベルの表現には適しているとは言いがたいのではないかということ。(ここ伝わりにくいと思う)
これは今でも俺も日々とても悩まされている問題。でもまそれはしzでんげんしょうみたいなものでしょうがないいんだよ。
誰も悪くないし。
本当に問題は、オブジェクト指向の名の下に非科学的非合理的で変な表現手段が流布し
(一部の人間が意図的に拡散させ)ソフトウエア開発の技術的水神をを後退させ混乱させてしまったこと。
俺はこの一点を問題視しているんだよ。
また飲みながらのポエムで悪いな。
それらlibraryレイヤははよく練り上げられてまぁ使いやすいと思うよ。
でもよく考えてみてよ、納品を決められ短期間に仕様の策定からQAまでこなさなければならない
アプリケーションソフトウエア開発とそういった長年同じような機能のライブラリが繰り返し作り
直されてきたものは同一に論じることは無理でしょ。
それにレイヤが全然違うじゃない。
下から見れば数百個程度の機械語>言語の文法レベル>アルゴリズムのライブラリレベル
>それらを組み合わせ具体的なあるぴにための処理を折りませたアプリレイヤ>…
レイヤによって全然特性が違うんだよ。適した表現手段は当然違うと俺は思う。
つまりアルゴリズムのライブラリレベルに適した表現手段が必ずしもその上位にある
複雑な応用レベルの表現には適しているとは言いがたいのではないかということ。(ここ伝わりにくいと思う)
これは今でも俺も日々とても悩まされている問題。でもまそれはしzでんげんしょうみたいなものでしょうがないいんだよ。
誰も悪くないし。
本当に問題は、オブジェクト指向の名の下に非科学的非合理的で変な表現手段が流布し
(一部の人間が意図的に拡散させ)ソフトウエア開発の技術的水神をを後退させ混乱させてしまったこと。
俺はこの一点を問題視しているんだよ。
また飲みながらのポエムで悪いな。
534デフォルトの名無しさん
2018/10/07(日) 23:22:20.26ID:9pTh9QRI535デフォルトの名無しさん
2018/10/07(日) 23:26:20.11ID:FMwg69WX >>533
大変申し訳ないが今後一切のポエムは不要ですんで分かってください
大変申し訳ないが今後一切のポエムは不要ですんで分かってください
536デフォルトの名無しさん
2018/10/07(日) 23:28:24.29ID:9pTh9QRI537デフォルトの名無しさん
2018/10/07(日) 23:28:51.19ID:FMwg69WX ?
538デフォルトの名無しさん
2018/10/07(日) 23:31:09.36ID:9pTh9QRI OOPの幻想を追いながらゴミの山量産してて頂戴
539デフォルトの名無しさん
2018/10/07(日) 23:44:00.68ID:mIq+f5AO https://ideone.com/PErfVu
コレがオブジェクト指向なコーディング
コレがオブジェクト指向なコーディング
540デフォルトの名無しさん
2018/10/07(日) 23:52:58.21ID:GYr8Tket だからねえ、凡人プログラマがいきがってOOを語るなっつーの
それなりに名が売れてる人以外、講釈垂れ禁止にしたいよね
それなりに名が売れてる人以外、講釈垂れ禁止にしたいよね
541デフォルトの名無しさん
2018/10/07(日) 23:53:56.52ID:FMwg69WX542デフォルトの名無しさん
2018/10/07(日) 23:58:46.68ID:9pTh9QRI543デフォルトの名無しさん
2018/10/08(月) 00:05:22.29ID:SHTmPUE+ と低学歴知恵遅れの底辺がいってもな
544デフォルトの名無しさん
2018/10/08(月) 00:08:53.96ID:YlFF3Gbm 日本人がプログラミングで実績残せないのはなぜだろうと思うけど
(まつもとゆきひろとか神レベルを除く)
講釈垂れは、1億円程度の案件でも沸いてくるんだわ
しかもたいていFランとか専門卒の地頭の悪さを自認できない語り部
俺のガンダムはさー、とか言い出す小学生と変わらんのよ
(まつもとゆきひろとか神レベルを除く)
講釈垂れは、1億円程度の案件でも沸いてくるんだわ
しかもたいていFランとか専門卒の地頭の悪さを自認できない語り部
俺のガンダムはさー、とか言い出す小学生と変わらんのよ
545デフォルトの名無しさん
2018/10/08(月) 00:09:05.00ID:5FzXpRZO そういう非論理的揚げ足取り未満のレスが着き始めると
ああ、OOP信者はねた切れなのかあるいは
そもそも何か問題のある人たちだったとつくづく思う
ああ、OOP信者はねた切れなのかあるいは
そもそも何か問題のある人たちだったとつくづく思う
546デフォルトの名無しさん
2018/10/08(月) 00:10:40.27ID:5FzXpRZO そう言った人たちにみんなだまされ続けていたと
548デフォルトの名無しさん
2018/10/08(月) 00:13:33.24ID:YlFF3Gbm 細かいところの揚げ足取りで、議論になり得ないのも底辺の特徴ね
なので2ちゃん5ちゃんみたいな底辺8割の落書きでOOのメリットデメリットが議論できるわけがない
数年前はちょっと期待してたけど
なので2ちゃん5ちゃんみたいな底辺8割の落書きでOOのメリットデメリットが議論できるわけがない
数年前はちょっと期待してたけど
549デフォルトの名無しさん
2018/10/08(月) 00:15:48.02ID:5FzXpRZO そうだけどそれでも決して悪いことではないと思う。
別に理想の場をもとめて誰もきているわけじゃない
しかしその一方、これもひとつの社会の縮図で
そのなかで自分も生きていくことには変わりは無い
別に理想の場をもとめて誰もきているわけじゃない
しかしその一方、これもひとつの社会の縮図で
そのなかで自分も生きていくことには変わりは無い
550デフォルトの名無しさん
2018/10/08(月) 00:18:20.98ID:5FzXpRZO が、しかしだ。
オブジェクト指向ってのは実はクソだったと思う。
そして講釈をたれて変なオブジェクト指向を吹聴していた奴らはクソだった。
これは変わりない。
オブジェクト指向ってのは実はクソだったと思う。
そして講釈をたれて変なオブジェクト指向を吹聴していた奴らはクソだった。
これは変わりない。
551デフォルトの名無しさん
2018/10/08(月) 00:23:48.49ID:YlFF3Gbm 新しいものを無条件に礼讃するのはヲタの特徴だからしかたがない
問題なのはそれを実業に持ち込むバカと語り部がいることなんだよ
この業界は敷居が低いからヲタの比率が高くなりがちで、困るのは自己顕示欲が大勢な新しモノ知ってるぞヲタ
問題なのはそれを実業に持ち込むバカと語り部がいることなんだよ
この業界は敷居が低いからヲタの比率が高くなりがちで、困るのは自己顕示欲が大勢な新しモノ知ってるぞヲタ
552デフォルトの名無しさん
2018/10/08(月) 00:26:00.79ID:4+4YIfxx このスレはレッテル張りばかりで中身のないレスが多いな
553デフォルトの名無しさん
2018/10/08(月) 00:27:52.21ID:5FzXpRZO 日本のIT産業産業全体にいえることじゃん。
いま世界で絶賛ぼろ負け中だけど。
やITに限らない、はば広くぼろ負け中。絶賛衰退中。
OOP現象も同じだと思うんだよ。
純粋な技術的問題じゃないんだよね、社会的問題というか、人の問題というか。
CMMIもISO9000も
いま世界で絶賛ぼろ負け中だけど。
やITに限らない、はば広くぼろ負け中。絶賛衰退中。
OOP現象も同じだと思うんだよ。
純粋な技術的問題じゃないんだよね、社会的問題というか、人の問題というか。
CMMIもISO9000も
554デフォルトの名無しさん
2018/10/08(月) 00:31:01.24ID:5FzXpRZO 中身のアルレス
よろしくお願いしまーす
よろしくお願いしまーす
555デフォルトの名無しさん
2018/10/08(月) 00:36:06.65ID:YlFF3Gbm 俺もこの業界に長くいて新三大嫌悪感があるのが、多重請負、ISOとか監査もの、OOやDIの語り部
どれもこれも欧米被れというか、日本人が背伸びして、品質と生産性を落としてるだけだわ
そういえば技術じゃなくて社会的な問題かもね
どれもこれも欧米被れというか、日本人が背伸びして、品質と生産性を落としてるだけだわ
そういえば技術じゃなくて社会的な問題かもね
556デフォルトの名無しさん
2018/10/08(月) 00:43:44.28ID:5FzXpRZO 腹黒い奴がどう他人を操るかの手法として利用されてきたか側面はあると思う
洩れの周りでの話だけれど、OOPのカプセル化、getter/setter、
継承による(後付の)コード再利用性による開発量削減・コスト低減を社内でうたい始めた奴は
実は自分ではコードは書けず無論設計は出来ず、マネージメントもできず、忖度と口先でしのいできて
くいっぱぐれるまえにJavaの流行を察知して社内OOP論者になり、布教に励み
それが下火になるとCMMI,IPISOの流行にのってQA論者に衣替えした
洩れの周りでの話だけれど、OOPのカプセル化、getter/setter、
継承による(後付の)コード再利用性による開発量削減・コスト低減を社内でうたい始めた奴は
実は自分ではコードは書けず無論設計は出来ず、マネージメントもできず、忖度と口先でしのいできて
くいっぱぐれるまえにJavaの流行を察知して社内OOP論者になり、布教に励み
それが下火になるとCMMI,IPISOの流行にのってQA論者に衣替えした
557デフォルトの名無しさん
2018/10/08(月) 00:47:41.87ID:5FzXpRZO それにさんざだまされてうっかりJava信者になって
いまも問題点に気がつかず変なコード書いてる、あるいは部下や外注さんに強要して
迷惑がられている奴ら多数
これを暗黒時代と言わずしてなんというのだろうか
いまも問題点に気がつかず変なコード書いてる、あるいは部下や外注さんに強要して
迷惑がられている奴ら多数
これを暗黒時代と言わずしてなんというのだろうか
558デフォルトの名無しさん
2018/10/08(月) 00:48:42.81ID:88AHsTr8 >>551
新しいもの?
新しいもの?
559デフォルトの名無しさん
2018/10/08(月) 00:52:04.16ID:5FzXpRZO んなこたどうでもいい。
結論
オブジェクト指向はクソだった
都市伝説みたいな迷信だった。
沢山の人がだまされた
以上。
結論
オブジェクト指向はクソだった
都市伝説みたいな迷信だった。
沢山の人がだまされた
以上。
560デフォルトの名無しさん
2018/10/08(月) 00:53:59.74ID:Kbmtp0Cm561デフォルトの名無しさん
2018/10/08(月) 00:58:34.19ID:5FzXpRZO つぎに
関数型はクソだった
って言うスレが建てば一過言あんだけれどもな…
関数型はクソだった
って言うスレが建てば一過言あんだけれどもな…
562デフォルトの名無しさん
2018/10/08(月) 01:00:35.78ID:Z0JUGcFO OOPに批判的な奴は最初から一定数いたよな
ちょろい奴を操る手法もまあ腹黒いが、批判を無力化する手法の方がもっと腹黒い
ちょろい奴を操る手法もまあ腹黒いが、批判を無力化する手法の方がもっと腹黒い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- NY円、一時156円台後半に上昇 片山財務相の円安けん制発言受け [蚤の市★]
- 【芸能】波瑠と高杉真宙が結婚 ドラマ共演きっかけで交際2年ゴールイン 12月上旬に婚姻届提出し既に挙式終え (スポニチ) [湛然★]
- 【赤坂サウナ火災】ドアノブを後から付け替えた形跡…ノブに連動するボルトが動かず開かない状態に [ぐれ★]
- 日本の労働生産性28位に後退、先進7か国で最下位…デフレやコロナ禍で経済の低成長続く★2 [ぐれ★]
- 住民票を削除された子、197人が行方わからぬ可能性 朝日新聞調査 [蚤の市★]
- 【埼玉】クルド人が暮らす川口はいま 届き始めた「不安」と大野知事の葛藤 [ぐれ★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 🔴
- 日本人「日本は八百万の神の国で宗教に寛容!クリスマスも祝うよ!」日本人「イスラムの土葬?モスク?駄目駄目ギャオオオン」
- 日本人が楽しみにしてる日中戦争がこれ [819729701]
- 【悲報】高市「円高にして物価下げろって言うけど円高にして株価下がったらどう責任取るつもり?NISAやってる人死んじゃうよ?」 [786648259]
- 童貞が好きそうな女の子wwwww
