- 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/
- 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
っω
- 963 名前:デフォルトの名無しさん [2018/11/22(木) 00:16:53.46 ID:HONMAAM4.net]
- >>941
staticおじさんは黙っとけw
- 964 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 00:19:35.78 ID:WA/+SJn9.net]
- >>945
staticおじさんではないので黙らないw
- 965 名前:デフォルトの名無しさん [2018/11/22(木) 00:20:36.62 ID:HONMAAM4.net]
- >>946
でもオブジェクト指向しらんのやろwそれstaticおじさんやからw
- 966 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 00:25:38.32 ID:WA/+SJn9.net]
- >>947
オブジェクト指向知ってるのでstaticおじさんでないことは証明された
- 967 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 00:54:40.06 ID:AcqNnxh2.net]
- >>923
> Smalltalkはオブジェクト指向なんだから状態を持っている > 状態を持っているまま処理内容だけを変更したら (データに互換性がない場合)エラー出るでしょ? そのエラーが出てからの対処が容易であることがすなわちケイのOOPの肝たる「決定の遅延」(のサポート)なんですよ おそらくとうてい許容できない行為だろうとは思いますが、Smalltalkでは日常のこちらを参考まで https://youtu.be/ymITEeAOtEA https://youtu.be/xfLhXb1K4Uk
- 968 名前:デフォルトの名無しさん [2018/11/22(木) 00:56:50.72 ID:ROOr0q+m.net]
- ×
俺.オシッコを止める 俺.オシッコを出す ○ 俺.チンポに力を入れる 俺.チンポから力を抜く >俺.オシッコを止める 『指でチンポをつまんでオシッコを止める』 >俺.オシッコを出す 『尿モレ』『尿シッキン』どうする?
- 969 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 01:27:10.12 ID:pXjB8XIH.net]
- >>941
でもこの場合 オブジェクト単位に分ける工程が完全に削除できるんだからメリットってわかるでしょ? オブジェクト単位に分ける工程が0より大きいので それが削除できる以上メリットとなる 証明完了
- 970 名前:デフォルトの名無しさん [2018/11/22(木) 01:38:10.58 ID:ROOr0q+m.net]
- >>951
>オブジェクト単位に分ける工程 人工知能は『物の意味』を『区別』することから始まるのでは? 776 Mr.Moto sage 2018/09/08(土) 08:57:47.30 ID:Hj3WpMqo 「もの」という言葉が出たついでに言っておくと、 ここでいう「もの」は“individual”、すなわち「不可分なもの。 個人、個体、個物」を意味する。れっきとした哲学用語だ。 ただし、これは「物理的な存在」ではなく、「概念」を 指していて、しかも「具体的な意味」「内包的な意味」を 持たない。その意味で、individual は「意味を引っ掛ける釘」の ようなもので、「こっちの釘とあっちの釘は、どこがどう違うと 言われても説明できない。ただ、引っかかっている意味が違うし、 比較によって区別できる」ものである。 同じような性質をもった存在として、Codd のデータベース理論における データベース・キーというものがある。
- 971 名前:デフォルトの名無しさん [2018/11/22(木) 01:41:49.54 ID:ROOr0q+m.net]
- 自然言語処理スレッド その5
mevius.5ch.net/test/read.cgi/tech/1537152490/ そもそも人工知能とは、『オブジェクト指向の果てなき追求』ではないのか? 違うか? 違うというなら、その理由を50字以内で述べろ!
- 972 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 01:47:25.03 ID:YC9N9M8Q.net]
- >>953
違うという理由を人に聞く前に そうだという理由を述べるのが筋だろ
- 973 名前:デフォルトの名無しさん [2018/11/22(木) 01:49:36.77 ID:ROOr0q+m.net]
- >>954
>違うという理由を人に聞く前に >そうだという理由を述べるのが筋だろ ならばシステムをオブジェクト単位に分ける必要性について答えておこうか。 >>951 >オブジェクト単位に分ける工程が完全に削除できるんだから 戦神のベルトが倉庫を圧迫。仕分けましょう【DQ10】 okirakudq10.com/archives/53537205.html
- 974 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 02:01:56.48 ID:YC9N9M8Q.net]
- >>955
科学とか工学にはるかに至らない 迷信とか思い込みのレベルだな
- 975 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 04:49:22.53 ID:sPtmfb/w.net]
- >>935
そんな風に、セレクタ(的なシンボル)とオブジェクトが一緒くたにして扱われるところが、Smalltalk-72の良いところだと思っていて、76や80のメッセージセレクタはちょっと味付けが違っていて、オブジェクトと一線を画しているというのが、私の個人の感想です。
- 976 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 06:01:15.58 ID:WA/+SJn9.net]
- >>949
> そのエラーが出てからの対処が容易であることがすなわちケイのOOPの肝たる「決定の遅延」(のサポート)なんですよ エラーが出る時点で駄目でしょ? > おそらくとうてい許容できない行為だろうとは思いますが、Smalltalkでは日常のこちらを参考まで 許容してはいけないことだね。 エラーが出て止まるならまだいいけど、間違った結果で実行されてしまったら取り返しがつかないもの アクロバットプログラミングはやめよう
- 977 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 06:33:08.70 ID:WA/+SJn9.net]
- Smalltalkの実行しながら修正できるっていうのは、
「最初から再実行しなくても修正できるよ」程度のものなんだろう 最初から再実行すればいいじゃん? それが今の時代の感覚。 テストコードはあるしプロセスを終了して最初から再実行すればいい 無の状態から再実行するから同じ状態が何度でも作れる ユニットテストはSmalltalkで一番最初に実装されたが、 これにによって「最初から再実行しなくても修正できるよ」の 価値が大きく下がったのだろう もちろんSmalltalk開発の初期はコンピュータの性能が低く Smalltalkの場合、実行環境そのものという設計だったから 再実行できたとしても、再実行するのに時間がかかった それも今はプロセス単位で再実行できるし、コンピュータの性能の 向上で再実行すれば十分になってしまった。 昔はデバッガを使って実行中にブレークポイントで止めて実行しつつ状態を 確認していたのだが、今はそんなことをすることは殆どなくなった。 なぜなら関数レベルで単体で実行することが簡単になったからだ。
- 978 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 07:54:59.11 ID:AcqNnxh2.net]
- >>957
おっしゃるとおり、今のキーワードに相当するトークンをメッセージ内に適当に混ぜられる自由度は失われていますね 感覚はわかりましたありがとうございます
- 979 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 08:07:58.62 ID:y7NAvoby.net]
- >>951
頭からダラダラ書くことしかできないお前にはそうなんだろうな w
- 980 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 08:11:04.06 ID:AcqNnxh2.net]
- >>959
> ユニットテストはSmalltalkで一番最初に実装されたが、 > これにによって「最初から再実行しなくても修正できるよ」の > 価値が大きく下がった 注目する部分の粒度というかタイミング(あるいはリズム感)みたいなものが互いに食い違っているんだよね 動画にもあるように、たとえTDDであっても再実行せずに直せるのは別にアクロバティックでも何でもなく むしろ(TDDとしても)自然な流れなんだけどなぁ 決定の遅延派と早期結合派とは一生わかりあえないんだろうねきっと
- 981 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 10:06:11.05 ID:WA/+SJn9.net]
- >>962
TDDではまず実行してテストが失敗する状態にしないといけない 実行し終わって結果が出てるんだよ つまり二回目以降の実行っていうのは「再実行」 この再実行が簡単に行えるわけだが、それに対する Smalltalkのメリットは未実装の直前まで実行できるってことでしかない それで一体どんな価値があるというのか? > 決定の遅延派と早期結合派とは一生わかりあえないんだろうねきっと 価値の話をしてないからな。 決定を遅延できるから素晴らしいんだ!(何が?) そう、何が素晴らしいのかが書かれていない 過去においては素晴らしいなにかがあったかもしれないが、 それは今は別の技術によって解決されてしまってるということ 別の技術というのは早期結合のことじゃない 別の技術による決定の遅延という意味。決定の遅延自体は行っている。 Smalltalkの言語機能を使っていないだけ それとも今の時代においても、何か価値があるのか? なくなってしまってるから書けないはずだ
- 982 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 11:19:38.02 ID:DWgniQ0o.net]
- >>963
> Smalltalkのメリットは未実装の直前まで実行できるってことでしかない > それで一体どんな価値があるというのか? 未実装の直前まで他の準備に煩わされることなく作業をスムーズに進められるのはあきらかに価値あることだろう 未実装でエラーを出した後、仮実装のためのメソッドを追加し1回目のテスト実行を終えられる この流れを妨げないスピード感はとにかくコンパイルを通すためにいろいろ手続きを踏まないといけない早期決定畑の人には分からないと思う あと、レッド(→イエロー)→グリーン→リファクタリング→…のサイクルを回すのはたしかにそれぞれは再実行だけど レッド、イエロー、グリーン、リファクタリングそれぞれの工程で実行中に書き換えられることのメリットは生きてくる なんか、批判的に指摘してくることの粒度というかレイヤーというかがいちいち外れているんだよね 当たり前なことをしたり顔で主張されても「そうですね。で?」ってなるだけ たとえばこれもそう↓ > 決定を遅延できるから素晴らしいんだ!(何が?) アラン・ケイも書いているとおり(念のため再掲)→squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf 使い捨てではない長期運用を想定したソフトウエアの開発において、知見というのはあとからついてくることは誰もが経験済みだろうし それを開発中、運用中のシステムに適用しようと思ったとき(まあ早期決定脳では思いもよらないことだが…)に役立つのは明らかだよ たぶん思慮の及ぶダイナミックレンジがずれていてすごく狭い範囲のことしか頭にないんじゃないかな 繰り返し指摘されているような限定された局面での問題であれば今の技術で十分対応できているしそれを否定する気はさらさらないよ あと、あくまで暫定実装に過ぎないSmalltalkの実装やその欠陥にとらわれすぎでは? 本来であればアラン・ケイの「オブジェクト指向」とそれが目指す「決定の遅延」のために必要な要素は何かや ストラウストラップらの型をクラス様エンティティでやるアイデアの「オブジェクト指向」との違いが何かが論じられるべきだろう なんでそんなにSmalltalk(をやっつけること)にこだわるのかね(ほんと親でも殺されたか?)
- 983 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 11:23:08.96 ID:WA/+SJn9.net]
- >>964
> 未実装の直前まで他の準備に煩わされることなく作業をスムーズに進められるのはあきらかに価値あることだろう 再実行しても0.1ミリ秒ぐらいの差しかないけど?
- 984 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 11:24:22.26 ID:WA/+SJn9.net]
- >>964
> アラン・ケイも書いている 〜略 〜 親でも殺されたか?) そいう長文言い訳はい
- 985 名前:轤ネいんで、
どんな価値があるか書いてよw ホント言い訳だけだな。長いのは [] - [ここ壊れてます]
- 986 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 12:00:14.14 ID:P9tUkoXd.net]
- 15行以上のカキコはたいていクソなので無条件にNGにしてる。
(.*\n){15}でNG word登録。
- 987 名前:デフォルトの名無しさん [2018/11/22(木) 12:05:29.43 ID:ROOr0q+m.net]
- >>961
>頭からダラダラ書くことしかできないお前にはそうなんだろうな w チンポがシコシコするぜ!!
- 988 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 12:19:57.68 ID:DWgniQ0o.net]
- >>965
> 再実行しても0.1ミリ秒ぐらいの差 未実装メソッドを実装するときににコンテキストが分かれば(つまり実行中なら)実装もしやすいだろうとそういうメリットだよ 再実行する前の話 >>966 > どんな価値があるか書いてよw 書いたけど読んでないの? > 使い捨てではない長期運用を想定したソフトウエアの開発において、知見というのはあとからついてくることは誰もが経験済みだろうし > それを開発中、運用中のシステムに適用しようと思ったとき(まあ早期決定脳では思いもよらないことだが…)に役立つのは明らか
- 989 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 12:26:03.13 ID:f4Y3NhdZ.net]
- ここまでオブジェクト指向のメリットなし
- 990 名前:デフォルトの名無しさん [2018/11/22(木) 12:29:23.68 ID:ElVxNvlT.net]
- >>961
>頭からダラダラ書くことしかできないお前にはそうなんだろうな w ドラえもん ぼくたち地球人 https://youtu.be/UYdfmyd2vD4 僕たち地球人〜今日も明日もあさっても〜チンポがシコシコ〜するんだよー! バ バ ア が 潮 吹 い た ぁ ! egg.5ch.net/test/read.cgi/welfare/1539337979/
- 991 名前:デフォルトの名無しさん [2018/11/22(木) 12:53:30.19 ID:ElVxNvlT.net]
- 611 名無し三等兵 (ワッチョイ 7fe7-t9Bb) sage 2018/11/22(木) 12:46:59.97 ID:vFEoyYoC0
>>587 「ちんちん」の語源の1つの説に、 支那の娼婦が幼児語で「入れて入れて」と言った言葉を 当時の出羽守が有難がって日本に広めたという かなり眉唾物な故事がある。 その説に依るなら「チンポかシコシコする。」は 当然のように入れた側の所感とその転用じゃな。 591 名無し三等兵 (スッップ Sd1f-hEn1) sage 2018/11/22(木) 12:26:55.61 ID:9IvK1JXqd >>587 シコシコするは他動詞なので、所有者の意思とは無関係にチンポが自立行動するのであれば「イライラする」「ムラムラする」という自動詞を用いるのが正しい
- 992 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 14:13:32.13 ID:WA/+SJn9.net]
- >>969
> 未実装メソッドを実装するときににコンテキストが分かれば(つまり実行中なら)実装もしやすいだろうとそういうメリットだよ それは実行しなくてもコンテキストがわかるなら もっとメリットが有るってことかな?
- 993 名前:デフォルトの名無しさん [2018/11/22(木) 14:14:27.19 ID:ElVxNvlT.net]
- >>966
>そいう長文言い訳はいらないんで、 チンポがシコシコするぜ!!
- 994 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 14:28:15.43 ID:WA/+SJn9.net]
- 結局Smalltalkの実行中に編集ができるっていうのは単なる
未実装メソッドを実装するときににコンテキストが分かれば (つまり実行中なら)実装もしやすいだろう程度のことでしかなかったということだ 要するに、テキストエディタの補完機能でなんとかなるし、 型があればもっと実行しなくてももっと正確にコンテキストがわかるということ 大したメリットじゃないんだよね
- 995 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 14:40:49.98 ID:DWgniQ0o.net]
- >>973
> それは実行しなくてもコンテキストがわかるなら > もっとメリットが有るってことかな? もとより、コンテキストの関係ない関数型ならいらない機能だけどそれはさておき それなりの深さを持つコールスタックと状態を持つオブジェクト指向を使い続けるならそういうことになるだろうね でもホットスワップだとかインクリメンタルコンパイルとか無茶しやがって…って技術をこれまでも早期結合派は編み出してきたわけだから (君は無理っぽいが)その便利さが分かる人がいれば、いつかコンテキストを実行せずに知る技術もひねり出されるんじゃないかな
- 996 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 14:42:50.30 ID:WA/+SJn9.net]
- >>976
そんなにコンテキスト(=型情報)を知ること重要?w
- 997 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 14:48:36.51 ID:DWgniQ0o.net]
- >>977
コンテキストは実行時情報で型情報ではないよ?
- 998 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 16:42:53.79 ID:aWnPsB95.net]
- OOPのメリットと言う上記全てがCommonLispでも可能だが、別にCommonLispがオブジェクト指向だからというわけではないぞ
実行時の環境がどれだけ豊かかという点はオブジェクト指向に関係は無いよ。smalltalkの特徴と混同し過ぎではないか?
- 999 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 16:57:56.75 ID:WA/+SJn9.net]
- >>978
「じゃないよ」じゃなくて 何かを言えって
- 1000 名前:デフォルトの名無しさん [2018/11/22(木) 17:22:56.72 ID:ElVxNvlT.net]
- チンポがシコシコするぜ!!
- 1001 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:27:01.89 ID:DWgniQ0o.net]
- >>979
> OOPのメリットと言う上記全てがCommonLispでも可能 アラン・ケイは彼のOOPで目指した「決定の遅延」がLispでも(というかSmalltalkとLispのみで)可能と述べていますから当然ですね 「決定の遅延」を「メッセージング」というメタファー(まあ実際に送るのでもいいのですが)を使って目指すのがケイのOOPなので 「メッセージング」を使わずとも「決定の遅延」は実践可能だからこれは(ケイの)OOPの本質ではないという指摘は 主客を取り違えています。 同様のことはビョーン・ストラウストラップらの「ユーザー定義型をクラス(様エンティティ)でやる」アイデアのOOPについても言えて ユーザー定義型(データ抽象、抽象データ型)はクラスのない××言語でもできるから、これはOOPの本質じゃない!という指摘も やはり的を外しています
- 1002 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:32:39.19 ID:WA/+SJn9.net]
- ほんとなぁ「決定の遅延」を言語でやることが目的になってるよなw
なんのためにやるのか?それは言語以外のレイヤーで実現できないのか? それが抜けてる
- 1003 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:33:23.62 ID:DWgniQ0o.net]
- >>980
書いてあるじゃんw 実行時のもろもろの情報だよ コールスタックだったり、インスタンス変数情報だったり、テンポラリー変数情報だったりとにかく様々だよ もちろん型情報も含まれるけど「イコール」ではない
- 1004 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:34:39.94 ID:WA/+SJn9.net]
- > コールスタックだったり、インスタンス変数情報だったり、テンポラリー変数情報だったりとにかく様々だよ
つまりデバッガとブレークポイントによって実現できることって話か 決定の遅延となんの関係もないw
- 1005 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:44:37.74 ID:DWgniQ0o.net]
- >>983
別に言語のみにこだわる必要はないと思うよ?どうしてそんなふうに思う? とにかくSmalltalkを気にしすぎだよ 他のレイヤーでできているならそれでいいと思うよ Smalltalkについては学習コストを鑑みて 全てをオブジェクトとそれへのメッセージングというシンプルなドグマで解決できるならベターだし 言語(というかOSモドキ)ならそういう世界を比較的簡単に実現し、そこでの実践を通じて実用性の検証ができるというだけの話だろう
- 1006 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:45:49.73 ID:WA/+SJn9.net]
- 結局の所、決定の遅延で何が出来るか?というとデバッグ時にソースコードを
編集する機能が作りやすくなるというメリットだったって話で良いかね? ↓つまりこれ コードを編集し、(c#、VB、C++)、Visual Studio でデバッグを続行 https://docs.microsoft.com/ja-jp/visualstudio/debugger/edit-and-continue?view=vs-2017 > エディット コンティニュを使用すると、プログラムが中断モードのときに > ソース コードを変更できるため、時間を節約できます。 などの実行コマンドを選択して、 > プログラムの実行を再開すると続行または手順、エディット コンティニュに > 自動的にいくつかの制限でコード変更を適用します。 このため、デバッグ セッション中に > コードを変更できます。デバッグ セッションをいったん停止し、プログラム全体を > 再コンパイルしてからデバッグ セッションを再開する必要がありません。
- 1007 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:45:51.26 ID:DWgniQ0o.net]
- >>985
> つまりデバッガとブレークポイントによって実現できること そこからまたエディタに戻って定義して再実行して…って手間は俺はいやだなって話をずっとしている
- 1008 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:47:36.57 ID:DWgniQ0o.net]
- >>987
これはかなり近いかなと思って試してみたことあるけど、変更が反映されないんだよね 結局再実行は必要
- 1009 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:48:27.96 ID:WA/+SJn9.net]
- >>986
> とにかくSmalltalkを気にしすぎだよ それはSmalltalkぐらいだからだよ 「決定の遅延」という言葉が独り歩きして それで何が出来るのか?が語られないのは。 でもはっきりしたじゃないか。デバッグ時にソースコード編集機能を 実現しやすくなるのが「決定の遅延」 そして別に決定の遅延をしなくても、デバッグ時にソースコードを編集する機能は実現できる。 言語のメリットとして上げるほどのことでもなかった。
- 1010 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:50:18.97 ID:WA/+SJn9.net]
- >>988
> そこからまたエディタに戻って定義して再実行して…って手間は俺はいやだなって話をずっとしている え?バグ無しで一発で作れるの?すごいね(笑) 結局再実行するでしょ
- 1011 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:52:26.05 ID:WA/+SJn9.net]
- 再実行する手間がいやなら、ソースコードを編集して保存したら
自動的にテストを再実行するようにすればいい。 ファイルを保存したときにテストを自動で実行する https://qiita.com/135yshr/items/0e14082cf3a8e654964c
- 1012 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:52:45.81 ID:DWgniQ0o.net]
- >>990
> それはSmalltalkぐらいだからだよ そりゃそうだよ 今のところLispとSmalltalkくらいしかできないことのさらに高みを目指そうっていう話なんだから… 早期結合派は誰か目先の利く人が無茶をして実現された技術が導入されて普及しないかぎり永久に理解できない話だと思うよ
- 1013 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:53:57.61 ID:WA/+SJn9.net]
- もう早期結合派とか言わんでくれる?
コードを編集してデバッグを続行する機能でしかないんだから
- 1014 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 17:56:02.22 ID:DWgniQ0o.net]
- 昔はホットスワップなんてアクロバチックな機能はいらない
インクリメンタルコンパイルなんてコンパイル速度が速ければいらないだろとか言ってたクチじゃないの?
- 1015 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 18:10:45.29 ID:DWgniQ0o.net]
- 図星かw
Smalltalkが「決定の遅延」を実践し難なく実現したアクロバチックな便利機能を 早期結合派の有志が無茶をしつつも実現し普及させ、君みたいな想像力に乏しい人でもしたり顔でその恩恵にあずかれる いい話じゃないか
- 1016 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 18:59:37.96 ID:sPtmfb/w.net]
- >>965
>0.1ミリ秒 そうか、MSは0.1ミリ秒のために多大なリソースを投入してデバッグ中のメソッドのホットパッチ&継続実行を可能にしたんだな。www
- 1017 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 19:02:35.09 ID:WA/+SJn9.net]
- >>997
時系列が逆ですね 多大なリソースを投入してデバッグ中のメソッドのホットパッチ&継続実行を可能 にしたので、0.1ミリ秒ぐらいのメリットしかなくなったんですよw
- 1018 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 19:03:59.99 ID:eioG5FBi.net]
- SmalltalkのOSモドキはLinuxやWindowsといった本物のOSと比べて
あまりにも出来損ないのゴミなのが問題なんだよ 決定の遅延?大変結構だと思うよ?本物のOSの上で出来るならね でもゴミOSモドキの上でOSゴッコするくらいなら決定の遅延なんて要らない
- 1019 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 19:04:26.90 ID:WA/+SJn9.net]
- だから最初から言ってるように、Smalltalk初期の時代はメリットが
あったかもしれないけど、今となっては言語機能に含めなくても 別の方法で本来の目的が達成できるようになったと言ってる
- 1020 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 34日 19時間 43分 46秒
- 1021 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|