- 1 名前:デフォルトの名無しさん mailto:sage [2018/10/18(木) 23:20:41.34 ID:/ofNkRJS.net]
- すごいんだよ?
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、 オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、 オブジェクトの実際の型を隠蔽したりすることをいう。 偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。 一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として 「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。 オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で 縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」 という概念はない。 https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96 前スレ オブジェクト指向ってクソじゃね? https://mevius.5ch.net/test/read.cgi/tech/1535085129/
- 862 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 20:39:35.02 ID:BDJVwe3s.net]
- 人材は豊富だ
いくらでもいる C言語なら俺に聞け 148 https://mevius.5ch.net/test/read.cgi/tech/1537347410/37 > void show_all(void) なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
- 863 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 20:41:28.87 ID:0yNrfYxn.net]
- まあ、省略するとint扱いだからなぁ
- 864 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 22:10:50.01 ID:rmbZAfBV.net]
- >>845
こんなことを聞くようなやつがこのスレにレスしてたのか
- 865 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 22:39:47.97 ID:b2ewZ8Gr.net]
- ニートのゴミレスのせいで気まぐれに降臨するベテラン達も寄り付かなくなったな
残念
- 866 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 01:22:08.45 ID:mQ1OcAlX.net]
- なんというかもう教養レベルの知識なんだから今更大して議論するところもないし
- 867 名前:デフォルトの名無しさん [2018/11/15(木) 03:33:49.30 ID:lNkjj0jr.net]
- >>845
え、若い頃はmainでよくvoid main(void)ってしてたが。。。 本当は失敗成功ぐらいは分かるように返り値はあった方が良いんだろうが、別に文法的にはおk。
- 868 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 07:47:02.43 ID:y1wxyOr0.net]
- 戻り値はokじゃないぞ
- 869 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 08:57:16.85 ID:ofI7xkNC.net]
- それはosの要求でしょ。文法の問題か?
- 870 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 09:58:30.05 ID:aEmu1zM9.net]
- 引数と返り値の区別のついてない奴は無視していいよ、馬鹿に合わせる必要ないから。
- 871 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 10:18:23.45 ID:9CKUsg3j.net]
- 戻り値って言ってほしい
- 872 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 11:30:26.15 ID:93LEwZXY.net]
- 返り血を浴びたんだろ。
- 873 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 11:34:58.11 ID:tbehOOnQ.net]
- >引数 void って初めて見た
これがガンなんだよなぁ・・・ 戻り値voidなら見慣れている奴、つまりJavaやってる奴だろコレ
- 874 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 13:04:51.99 ID:o5fev+pn.net]
- プログラムを職としてる人が返り値っていう?
戻り値だろ? 返り値なんて、新人プログラミング研修のときに、講師のお姉さんが言ってたくらいだわ お姉さんは美人だったから許す おまいらは、、
- 875 名前:デフォルトの名無しさん [2018/11/15(木) 13:04:53.66 ID:lNkjj0jr.net]
- >>851
文法的にはってわざわざ書いたやろ。。。 実際動く。 セオリー的には駄目だろうけど。
- 876 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 13:12:01.90 ID:cdqa4g6x.net]
- >>857
復帰値やで
- 877 名前:デフォルトの名無しさん [2018/11/15(木) 13:17:17.94 ID:lNkjj0jr.net]
- >>851
2006年出版の入門書には、返り値って書いてる。 2011年出版の入門書には戻り値って書いてる。 これがジェネレーションギャップという奴か。。。
- 878 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 15:45:27.66 ID:pJT+gql0.net]
- >>857
どちらも使うなぁ リターン値って呼ぶこともあった
- 879 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 16:28:56.54 ID:93LEwZXY.net]
- 生理中の女を犯したら、返り血を浴びせられた。
みたいな用法?
- 880 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 13:15:39.92 ID:Mm6CPD06.net]
- >>860
返り血が…
- 881 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 20:12:45.37 ID:lqMB4Ba7.net]
- 言霊が悪いから変わったのか
- 882 名前:デフォルトの名無しさん [2018/11/16(金) 21:31:56.78 ID:yffHE+vP.net]
- 509 その名前は774人います (バットンキン MM5a-fW3D) 2018/11/16(金) 21:30:34.79 ID:LED0s8bKM
>>329 >何十年も前からあるオブジェクト指向をいまさら教えたい馬鹿は何なんだ。 207 その名前は774人います (ワッチョイWW 8f08-fW3D [49.128.130.98]) 2018/11/16(金) 21:21:25.27 ID:U3NlEEpg0 >>203 >夜もビンビンなの? 『オブジェクト指向』と『オブジェクト指向言語』は別だと、プログラマーには叩き込んでやりたくてね。 Rubyとかの高級プログラミング言語は、逆にオブジェクト指向を意識しないでプログラミングできる仕組み。 チ ン ポ が シ コ シ コ す る ! 俺はオブジェクト指向言語を使っているからオブジェクト指向プログラマーだという勘違いを直させてやる! 174 その名前は774人います (バットンキン MM5a-fW3D) 2018/11/16(金) 07:04:12.40 ID:N77Q/1ZeM >ドラゴンクエストの世界観が全く反映されていないような印象 ド ラ ゴ ン ク エ ス ト と は 何 か ? ドラゴンクエストとは何かを問い続けるのが、終わらないドラゴンクエストだろう? 違うか? 2 その名前は774人います (バットンキン MM5a-fW3D) 2018/11/16(金) 07:42:40.97 ID:N77Q/1ZeM 再帰関数を理解するにあたり先輩社員に教えていただいたのですが、その時の再帰関数の例がとてもわかりやすかったので共有させていただきます。 この例のおかげもあり、はじめは再帰関数なにそれ状態から、最後はしっかりと実装できるようになりました。再帰関数はPythonで実装しています。 https://qiita.com/jumpyoshim/items/20e6b5e70efa466699b4
- 883 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 23:59:36.22 ID:RoXRfHM0.net]
- そのオブジェクト指向言語のRubyが今大人気!!
世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか? https://gigazine.net/news/20181116-top-programming-languages-2018/ さすがRuby!貫禄のランクイン!! Railsで作られたサービスでの集計ということを差し引いてもすごい!
- 884 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 00:43:30.09 ID:RBFsSCte.net]
- 物は言いようとはまさにこれか
- 885 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 13:33:27.70 ID:0GWbuErn.net]
- Java人気に嫉妬
- 886 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 16:15:53.72 ID:P4rvEbGj.net]
- ずっとルビィストがゴミだと言い続けてPHPにはとうとう勝てなかったんだな。
- 887 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 16:19:33.92 ID:0GWbuErn.net]
- ルビィストは俺らはエリート、PHPは雑魚が多いだけだと思ってる
- 888 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 21:51:27.90 ID:qMkb6Tox.net]
- PHPは脆弱性作成ツールだし、Rubyは言語仕様はともかく宗教家がうざいので嫌です
- 889 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 23:50:16.67 ID:qkMTthra.net]
- 言語仕様などありません。気まぐれで書いたコードが仕様です!
- 890 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 04:17:41.94 ID:ObfWYchR.net]
- 「言語仕様などありません。気まぐれで書いたコードが仕様です!」
俺の脳内の言語先生はこう言ってるんだが、 どう思う?
- 891 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 19:16:34.77 ID:Mto5YVhB.net]
- >>119
テンプレートで静的ポリモーフィズム。
- 892 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 20:02:42.01 ID:dXxvgzBG.net]
- 枕詞に「純粋な」と付くと危険度が上がるな
過去の純文学/大衆文学/私小説論争や 純喫茶の僭称や 21世紀の現代ではピュアオーディオや純オブジェクト指向がその志を受け継いでる もちろん賤民思想で、ピュアであればあるほど尊いと考えてるアホが少なからずいる
- 893 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 20:21:26.01 ID:ObfWYchR.net]
- 枕詞と
松崎しげるって なんか似てね?
- 894 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 20:38:47.02 ID:rVdz2W17.net]
- 枕営業
- 895 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 16:57:40.99 ID:SyBSdXLd.net]
- オブジェクト指向は分かりづらくなるから基本的には害しかないな。
- 896 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:55:31.90 ID:Dgzw+pp+.net]
- >>878
なんちゃってオブジェクト指向が多過ぎ。
- 897 名前:デフォルトの名無しさん [2018/11/20(火) 23:18:47.68 ID:Vm2a6rBd.net]
- なんちゃってって何や?
- 898 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 23:24:06.45 ID:l2byaKpo.net]
- 裸の王様って童話知ってる?
- 899 名前:デフォルトの名無しさん [2018/11/20(火) 23:25:31.52 ID:Vm2a6rBd.net]
- 童話って何や?
- 900 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 23:26:50.47 ID:l2byaKpo.net]
- その中で、沿道にいた一人の小さな子供が、
「だけど、なんにも着てないよ!」と叫び、群衆はざわめいた。 「なんにも着ていらっしゃらないのか?」と、ざわめきは広がり、 ついに皆が「なんにも着ていらっしゃらない!」と叫びだすなか、 皇帝のパレードは続くのだった。
- 901 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 23:29:45.37 ID:l2byaKpo.net]
- 皇帝はうろたえるが、家来たちにはオブジェクト指向がわからないとは言えず、
オブジェクト指向のメリットを大声で賞賛し、 周囲のプログラマも調子を合わせてオブジェクト指向を褒める
- 902 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 23:32:41.60 ID:l2byaKpo.net]
- まんまお前らだなw
staticおじさんと五十歩百歩w
- 903 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 23:57:53.01 ID:1npKfTne.net]
- じゃあ上でOOPの弱点を指摘するレスをかいてたオレは
差し詰めその小さな子供見たいに無垢で正直なんだな
- 904 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 00:13:49.18 ID:RC26/6OQ.net]
- constおじさん大暴れ
- 905 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 00:18:05.20 ID:zIpdinjM.net]
- それは、オレではないww
残念でしたー
- 906 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 00:36:54.68 ID:8MyYCmiU.net]
- 流れを読まずに持論を書く
オブジェクト指向とはデータ構造と それに作用するメソッドを結びつけること 逆に言えば、そのデータに結びつかない作用や参照を排除するアクセス機構を持つ つまりはカプセル化こそが本質 実際、これはオブジェクト指向という言葉がメジャーになる前から使われていて Cの標準ライブラリにあるFILE構造体はその典型と言える FILE構造体にはアクセス制限はかけられていない、というかCではかけられないけど 直接アクセスしなくてもファイル操作には困らない FILE構造体というデータ構造に対する必要十分なメソッドは用意されてる 継承や多態性などはオブジェクト指向を便利に使うためのユーティリティに過ぎない これらは節度ある使い方をすれば便利だけど、やり過ぎると確かに副作用はある
- 907 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 00:38:45.87 ID:zIpdinjM.net]
- >>889
それと構造体のインスタンスとの違いは何だと思う?
- 908 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 00:52:09.02 ID:8MyYCmiU.net]
- >>890
質問の意味を取り違えてるかも知れないけど 構造体が使えるならオブジェクト指向は要らないのでは、という意味かな 問題は使い方にある オブジェクト指向言語とはオブジェクト指向的な作りをサポートする言語
- 909 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 01:04:22.97 ID:zIpdinjM.net]
- >>891
違いはあります。それは何だと思うのか聞いたのが>>890 使い方は書き方次第なんだけど… それはさておき 「オブジェクト指向的な作りをサポート」 って何
- 910 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 01:06:57.00 ID:zIpdinjM.net]
- ま、今夜は寝るわ。
あう機会があったら またねノシ
- 911 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 01:19:24.31 ID:8MyYCmiU.net]
- >>892
すまんね >>890 の文の先頭にある「それ」が何を指してるのか不明確だったので Cの構造体とC++のクラスの違いという意味かな それは >>889 に書いた通りカプセル化されているかどうかということだろ Cの構造体ではデータにアクセスするメソッドを制限できないが オブジェクト指向言語なら出来る サポートとはそういうこと
- 912 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 01:20:25.70 ID:ILAAUKO6.net]
- 「スマンがお前らがガタガタ抜かすよか遥か昔に『オブジェクト』っつう計算機科学用語生み出したの俺なんだわw
黙ってようと思ったけどさ、あんまりお前らが的外れなこと偉そうにグダグダ言ってるもんで。しかも枝葉ww 一番大切なことは何か教えといてやろうか? それは『メッセージング』だよ」 ──アラン・ケイ(俺私訳)
- 913 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 01:33:17.63 ID:ILAAUKO6.net]
- 「俺様にとってOOPとは、メッセージング、状態プロセスを隠蔽しローカルに保持・保護すること(薬中:カプセル化のこと)、そしてすべてに対する遅延バインディングの徹底、これに尽きる」
──アラン・ケイ(俺私訳)
- 914 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 01:47:09.00 ID:ILAAUKO6.net]
- アラン・ケイの言うOOPに必須の要素:
・カプセル化 ・メッセージパッシング ・動的バインディング(実行時に於けるプログラムの進化・適応能力) 必須ではない要素: ・クラス ・クラス継承 ・オブジェクト・関数・データの特別扱い ・newキーワード ・多態(ポリモーフィズム) ・静的型 ・クラスを「型」として認識すること
- 915 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 01:59:47.29 ID:ILAAUKO6.net]
- 「『オブジェクト指向』っつう用語は俺が造ったが、C++とやらにはそれについて語ることがなんにもない」
──アラン・ケイ(俺私訳)(C++が引き合いに出されてるがこの発言は97年。もっと遅ければJavaになったのだろうか…?)
- 916 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 02:13:11.72 ID:8MyYCmiU.net]
- >>898
こういうこと言うから初心者は混乱するのでは ケイにしたって先行するSimulaがなければオブジェクト指向を発想出来なかったし Smalltakも作れなかったと思う
- 917 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 02:15:17.92 ID:8MyYCmiU.net]
- >>899
スペルミス Smalltalk
- 918 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 02:20:09.41 ID:zIpdinjM.net]
- >>898
そんなやり方でで 大規
- 919 名前:ヘで複雑化するソフトウエアが表現できないから
問題が顕在化してるのに まぁ寝るわ [] - [ここ壊れてます]
- 920 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 02:37:44.49 ID:SfkVXijR.net]
- >>901
何だその言い訳 ラーメンの出前頼んだ人に「ラーメンだと冷めるし伸びちゃうでしょ?だから寿司を持ってきたよ。君にはラーメンじゃなくてコレが必要なんだ!だからコレを今日からラーメンではなくて寿司と呼ぶよ!」と言ってるようなもん。意味不明。 ラーメンの冷める、伸びるといった問題が顕在化してきて、寿司がそれを解決できるからといって、寿司こそが真のラーメンであるということにはならない。
- 921 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 02:38:44.44 ID:SfkVXijR.net]
- 寿司ではなくラーメンと呼ぶ、だった
- 922 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 07:08:50.55 ID:ziJlPcJv.net]
- ここまでオブジェクト指向の数値的なメリットなし
- 923 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 07:10:32.88 ID:ziJlPcJv.net]
- 議論してる奴等は全員使ってる技術のメリットもあげられないサル
- 924 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 07:39:32.60 ID:NVAWjNTH.net]
- >>904
だから早く答えて >>801 > オブジェクト指向のメリットを数字をあげて一つも説明できないわけでしょ? 数字? オブジェクト指向が使われてる プロジェクト数とかでいい? なんの数字がでればいいかいってみて
- 925 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 07:59:06.79 ID:ziJlPcJv.net]
- >>906
それは君が思うオブジェクト指向のメリット次第じゃない? その説明に必要な数字を出せばいい
- 926 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 08:02:19.92 ID:AzUCjiVS.net]
- >>904
デメリットのもなし。 目糞鼻糞
- 927 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 08:03:11.06 ID:1y5iZMYL.net]
- メリットくん、半角くん、チンポくん
ウォッチしてんなーw
- 928 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 08:07:49.07 ID:HZRf7c2A.net]
- nodeやり始めたときに関数型やイベントでどうやってプログラムを組み上げていいかわからず
結局オブジェクト指向の書き方になってしまった
- 929 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 08:09:42.68 ID:K8VHhpBv.net]
- jsは関数型でも非同期が最大のメリットだからまた一味違うんだよな
Goやれ
- 930 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 08:24:22.62 ID:ruXLd7u/.net]
- メリットくんも言語の素養がないしな
まず自分から定量化のための指標を提示しなさいよ
- 931 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 08:24:46.50 ID:NVAWjNTH.net]
- >>907
> それは君が思うオブジェクト指向のメリット次第じゃない? > その説明に必要な数字を出せばいい どんな数字を出しても納得しないっていうのだから 聞くしか無いでしょう?
- 932 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 09:33:50.45 ID:No2NMZ8g.net]
- - Simulaはクラスとオブジェクトという言語機能は与えたけど「オブジェクト指向」は(当初は)考えられていない
- (ごく初期の)Smalltalkはメッセージングによる「決定の遅延」の徹底とそのサポートをもって「オブジェクト指向」と呼んだ - C++は、ユーザーによるデータ型定義(抽象データ型、データ抽象)をSimulaのクラスを使ってやるアイデアを「オブジェクト指向」と呼んだ
- 933 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 09:41:46.92 ID:No2NMZ8g.net]
- だから、「オブジェクト指向」のメリットというのは
- Smalltalk(ケイの主張)の「オブジェクト指向」なら、実装中、実装完了後、必要なら実行中も決定を変えられる柔軟性。 - C++(ストラウストラップの主張)では継承を活用した差分プログラミングと自在に定義可能な型を用いた安全なプログラミング ということになる。ただし、 前者のメッセージングは主に効率の面からスケールしないことが早々に分かって、Smalltalkを含め 単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。 後者も「差分プログラミング」については、「型安全なプログラミング」が保証できない場合があることが早々に指摘され その用途でのクラスの欠点を補うことを目的に「インターフェース」が考案され現在はこちらが広く用いられている。 とまあ紆余曲折はあったが、前述のメリット(目指す先)はその後も大きくは変わっていない
- 934 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 11:13:01.71 ID:VgS6VJyN.net]
- >>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを >ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。 ナンチャッテメッセージングスタイルになることによってプログラミング言語が失ってしまったものは何だったのでしょうか?
- 935 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 12:19:22.25 ID:ZdAecqpt.net]
- >>913
それは君がメリットを明確にしないからじゃん
- 936 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 12:39:53.31 ID:No2NMZ8g.net]
- >>916
単純に並行並列・分散というような処理におけるスケーラビリティでしょうね ヒューイットのアクターはSmalltalk-72(初期のSmalltalk処理系で、非同期ではないながらも トークン列をメッセージとして一応処理していました)をヒントに、ケイのメッセージングのアイデアを並列処理に応用し 定式化を試みた理論で、今、このアクター理論に基づく言語機能やライブラリを備えた言語が各所で重宝されています アクター理論こそ真の(ケイの目指した)「オブジェクト指向」だと言う人もいますが、これはちょっと言い過ぎですね 両者はメッセージングという共通項は持ちますが、かたや並列並行処理、かたや決定の遅延と、問題にしている領域が違うので…
- 937 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 12:45:55.83 ID:UM5ff+tU.net]
- > - Smalltalk(ケイの主張)の「オブジェクト指向」なら、実装中、実装完了後、必要なら実行中も決定を変えられる柔軟性。
この「実行中」の定義が今と常識とぜんぜん違うんでしょ? Smalltalkは実行環境でOSみたいなもんだから、 「実行中も決定を変えられる」っていうのは 今で言うOS起動中にプロセスを再起動できる程度の意味でしょう 今はプロセスは通常は複数のオブジェクトの集まりでできているけど アランケイの時代は1プロセスが1オブジェクトレベル程度の小さなものだった そういう想定だから1オブジェクトを入れ替えるという発想も理解できるが、 今だと複数のオブジェクトを同時に入れ替えないと正しく動作しないので そんな1オブジェクトずつちまちまと動作を変えていくなんてありえない そもそもアランケイの言う「実行中」は「起動中」であって 「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に 入れ替えるとか怖くてできない。入れ替えるにしても保存したら即反映じゃなくて ユーザーが誰も使用してない状態にして入れ替えないとだめだろうしな。 つまりアランケイが求めていた柔軟性は、OSとプロセスの概念によって もっと実用的な形で実現されてしまった。だから誰も言語にそんな物を求めていない
- 938 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 13:24:30.02 ID:No2NMZ8g.net]
- >>919
なんでこの流れでそこまで徹底的に否定しないと気が済まないのか分からないけど(Smalltalkに親でも殺された?) 「オブジェクト指向」とは何かを説明したまでで、それに対する批判や感想は勝手にやってもらったらいいと思うよ ただ > 今で言うOS起動中にプロセスを再起動できる程度の意味 というのはちょっと現状の制約に合わせて矮小化しすぎのような気がする アラン・ケイが目指したのはたぶん通常は手を入れない((セキュリティや安全面から当然だが)枠組みそれ自体 (たとえば言語処理系)における決定事項も変更可能なほどの柔軟性(メタ機能)なので squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf 関連して、(繰り返しになるけどその善し悪しは別にして)自身の枠組みに手を入れられること以外にも デフォで永続化可能っていうのも今のOS(における仮想化したそれ自体やプロセスの再起動)には考慮されないファクターだよね
- 939 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 17:04:46.25 ID:bLoKnUqC.net]
- >>919
いや、今も昔も、Smalltalkではメソッドを実行中のオブジェクトについてもクラス定義やメソッドを変更することができる。 Smalltalk-80が失ったのは、メッセージ自体が持つオブジェクトらしさ。メッセージセレクタはオブジェクトではあるが、ソースコード上はあまりオブジェクトらしい扱いになっていない。
- 940 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 17:44:11.51 ID:No2NMZ8g.net]
- >>921
細かいことで恐縮ですが > Smalltalk-80が失ったのは ナンチャッテメッセージングスタイルになったのはSmalltalk-76からなので正確には「Smalltalkが-76以後失ったのは」かと… > ソースコード上はあまりオブジェクトらしい扱いになっていない。 「ソースコード上でのオブジェクトらしい扱い」って具体的にはどういった感じでしょうか? メッセージセレクタはメッセージを構成するトークンとして現れていますし、オブジェクトらしい扱いは一応受けているとおもうのですが 「(メソッドコールの)処理上、(セレクタではなく)メッセージが」 (既存メソッドのコールであればVM内で完結することもあって、メッセージっぽい扱いをされていない)、ではなく?
- 941 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 18:19:44.20 ID:UM5ff+tU.net]
- >>921
> いや、今も昔も、Smalltalkではメソッドを実行中のオブジェクトについてもクラス定義やメソッドを変更することができる。 「変更することが出来る」っていうことはわかってるんだよ そこは重要じゃない。重要なのは変更してもシステムは エラーなく続行し続けられるか?でしょ? 関数型言語なら状態を持たないからわかるけど Smalltalkはオブジェクト指向なんだから状態を持っている 状態を持っているまま処理内容だけを変更したら (データに互換性がない場合)エラー出るでしょ? クラス定義を変えるならば、インターフェースが変わることだってある その場合、クラス定義だけじゃなくて、クラスを使っている方も 同時に変更しなければいけない。 もちろんリファクタリングとデータのマイグレーション(変換)を駆使すれば プログラムを走らせながら、変更するのは可能かもしれないけど、 そんなアクロバットプログラミングなんて誰も求めてない サービスの一時停止やプロセスの再起動で許されることのほうが多いでしょって話
- 942 名前:デフォルトの名無しさん [2018/11/21(水) 18:30:17.93 ID:BbP/iGml.net]
- オブジェクト指向とオブジェクト指向プログラミング言語とは、方向性が真逆。
むしろオブジェクト指向を意識しなくてもオブジェクト指向プログラミングできるのが、 Rubyのような『いわゆる』オブジェクト指向プログラミング言語。 627 デフォルトの名無しさん 2018/11/01(木) 04:32:24.08 ID:PmS8KjrS 一回こっきりの家庭用ソロゲーを作成するなら、オブジェクト指向がチンポがうんたらは必要無い。 ──オブジェクト指向の言語を書こうというのに、オブジェクト指向でないCで書かれているというのは意外な気もします。 まつもと「CでRubyのオブジェクト指向を作ってて、その機能はCからも使えるんですよ。 だからRubyのC実装って、Cで書かれているんだけどRubyのオブジェクト指向で書ける。 僕はこれが好みなんですが、違う人も多いみたいですね」 ascii.jp/elem/000/001/228/1228027/ しかしながら将来的に改変したり削除したり拡張したりする場合、『チンポ』のような多態性が不可欠。
- 943 名前:デフォルトの名無しさん [2018/11/21(水) 18:36:07.42 ID:8Yc2p7H1.net]
- >>919
>そもそもアランケイの言う「実行中」は「起動中」であって >「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に チンポがシコシコしている間、俺はそれでも俺なのかと尋ねた。 829 デフォルトの名無しさん 2018/11/11(日) 09:52:59.70 ID:y84pWKv0 (第1章 はじめに 2頁) たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。 Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、 Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」 には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、 Fredはそれでも人間なのかと尋ねた。 『深層学習』 著者: Ian Goodfellow, イアングッドフェロー, Yoshua Bengio, ヨシュアベンジオ, Aaron Courville, アーロンカービル
- 944 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 18:37:29.28 ID:UM5ff+tU.net]
- >>925
たとえば、CycはFredという名前の男がドナルドダックのモノマネをするという話が理解できなかった。 Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には羽がないことは知っているが、 アヒルのように歩き、アヒルのように鳴くものはアヒルに違いないと考えた。 したがって、CycはFredがドナルドダックのモノマネしている間、 Fredはそれでも人間なのかと尋ねた。
- 945 名前:デフォルトの名無しさん [2018/11/21(水) 18:53:28.93 ID:8Yc2p7H1.net]
- >>919
>この「実行中」の定義が今と常識とぜんぜん違うんでしょ? 『オブジェクト指向』なる『概念』そのものはずっと前から俺の股間に付いているんだけど、 『オブジェクト指向プログラミング言語』はごく最近、これまでに無かった『機能』が追加されたんだろう?
- 946 名前:デフォルトの名無しさん [2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1.net]
- >>922
>ナンチャッテメッセージングスタイルになったのは チンポ.オシッコを出す チンポ.オシッコを止める さっきトイレでやってきた。
- 947 名前:デフォルトの名無しさん [2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1.net]
- >>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを >ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。 × 俺.オシッコを止める 俺.オシッコを出す ○ 俺.チンポに力を入れる 俺.チンポから力を抜く
- 948 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 19:36:14.36 ID:bLoKnUqC.net]
- >>922
レシーバ セレクタ 引数 これらのうちレシーバと引数は表現式(オブジェクト)ですが、セレクタはそれ単独では表現式(オブジェクト)ではないですね。もちろんメソッド内のリテラルにセレクタがシンボルオブジェクトとして格納されているので実体としてはオブジェクトですが。
- 949 名前:デフォルトの名無しさん mailto:age [2018/11/21(水) 21:55:34.70 ID:Xc/Hc18Z.net]
- オブジェクト指向を語るお前らがクソ
- 950 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 22:07:53.22 ID:ZgksAXKX.net]
- オブジェクト指向のメリット
型を持ってる変数が最初にくるから 書くときIDEのインテリセンスが使いやすくて便利
- 951 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 22:09:43.33 ID:LAJ52fwT.net]
- 型はオブジェクト指向の要素じゃない。次!
- 952 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 22:11:59.32 ID:ZgksAXKX.net]
- でも大抵型ついてるし変数が最初にくるからそれが使いやすいんだ
オブジェクト指向以外でそんなのあるか?
- 953 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 22:20:32.18 ID:Poi4aHpr.net]
- >>930
なるほど ただ、Smalltalk-72でも(セレクタ同様、トークナイズ後にシンボル様オブジェクトとして扱われるとは言え) リテラルでないトークンをメッセージに混ぜられますよね? 例えばSmalltalk-72のウィンドウを生成するメッセージ式は 👉dp ← dispframe 100 75 100 120 string 200.! のように記述するのですが(念のため、dispframeがレシーバ、100 75 100 120 string 200 がメッセージです) bitsavers.informatik.uni-stuttgart.de/pdf/xerox/parc/techReports/Smalltalk-72_Instruction_Manual_Mar76.pdf p.30 最後から二番目の「string」は続く引数がバッファサイズであることをパターン認識により見分けられるよう添えらます リテラルではないこともあわせ、このstringはセレクタ(の特にキーワード)に近い役割&扱いだと言うことができそうなので Smalltalk-76以降の文法で失われた…とするのはちょっと弱いように思いました あくまで個人の感想ですが
- 954 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 22:35:28.94 ID:UM5ff+tU.net]
- オブジェクト指向言語のメリット
オブジェクト指向がやりやすい
- 955 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 22:39:18.12 ID:DBPerFhf.net]
- とことん手段指向
身もフタもないな
- 956 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 23:18:04.82 ID:UM5ff+tU.net]
- オブジェクト指向のメリットは?とよく聞かれますが、
そもそも、オブジェクト指向以外のやり方にメリットが ないってのが答えなんですよね オブジェクト指向以外のメリットを書くスレ https://mevius.5ch.net/test/read.cgi/tech/1542808008/
- 957 名前:デフォルトの名無しさん [2018/11/21(水) 23:19:44.65 ID:JM/nMfDs.net]
- >>938
つまりオブジェクト指向にもメリットがないと言いたいのかstaticおじさん
- 958 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 23:19:48.93 ID:QCzQZ2rP.net]
- オブジェクト単位に分ける工程が無駄
ハイ、論破
- 959 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 23:52:34.04 ID:UM5ff+tU.net]
- それを数値で示していない。はい論破返し
- 960 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 00:02:06.85 ID:SJlwfHl4.net]
- ガウディ本読んでる奴が居ない件の
- 961 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 00:06:13.73 ID:WA/+SJn9.net]
- ハヽ/::::ヽ.ヘ===ァ
{::{/≧===≦V:/、 / >:´:::::::::::::::::::::::::`ヽ\_ |iγ:::::::::::::::::::::::::::::::::::::::::ヽi| カ 〈/::::::::::::::::::::::::::::::::::::::::::::::ハ_》 バ !:::::::l::::/|ハ::::::::∧::::i:::::::::::i デ |::::::i∨ ト-:::::/ ,X:j:::/:::::l ィ r⌒ ヽ ヽ::::| ≧z !V z≦ i/:::::/ ./'⌒ゝ . ヽと ヽ ゝ:} “ “ {:::::/ っ丿 \ \::ゝ、 _ ( ) _ イ::/ /` \ /::::\ /::::/`ヽ r'´ \:::\ /::::/ | _ _」 }ノノ {:::/ | " ヽ ヽ | 丿 | /'⌒ } " } | { ゝ,,ノ | { | i ゝ__,,ノ
- 962 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 00:06:56.04 ID:YC9N9M8Q.net]
- >>943
っω
|

|