すごいんだよ?
カプセル化(英語: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/
探検
オブジェクト指向ってクソじゃねぇよ? Part2
レス数が950を超えています。1000を超えると書き込みができなくなります。
2018/10/18(木) 23:20:41.34ID:/ofNkRJS
884デフォルトの名無しさん
2018/11/20(火) 23:29:45.37ID:l2byaKpo 皇帝はうろたえるが、家来たちにはオブジェクト指向がわからないとは言えず、
オブジェクト指向のメリットを大声で賞賛し、
周囲のプログラマも調子を合わせてオブジェクト指向を褒める
オブジェクト指向のメリットを大声で賞賛し、
周囲のプログラマも調子を合わせてオブジェクト指向を褒める
885デフォルトの名無しさん
2018/11/20(火) 23:32:41.60ID:l2byaKpo まんまお前らだなw
staticおじさんと五十歩百歩w
staticおじさんと五十歩百歩w
886デフォルトの名無しさん
2018/11/20(火) 23:57:53.01ID:1npKfTne じゃあ上でOOPの弱点を指摘するレスをかいてたオレは
差し詰めその小さな子供見たいに無垢で正直なんだな
差し詰めその小さな子供見たいに無垢で正直なんだな
887デフォルトの名無しさん
2018/11/21(水) 00:13:49.18ID:RC26/6OQ constおじさん大暴れ
888デフォルトの名無しさん
2018/11/21(水) 00:18:05.20ID:zIpdinjM それは、オレではないww
残念でしたー
残念でしたー
889デフォルトの名無しさん
2018/11/21(水) 00:36:54.68ID:8MyYCmiU 流れを読まずに持論を書く
オブジェクト指向とはデータ構造と それに作用するメソッドを結びつけること
逆に言えば、そのデータに結びつかない作用や参照を排除するアクセス機構を持つ
つまりはカプセル化こそが本質
実際、これはオブジェクト指向という言葉がメジャーになる前から使われていて
Cの標準ライブラリにあるFILE構造体はその典型と言える
FILE構造体にはアクセス制限はかけられていない、というかCではかけられないけど
直接アクセスしなくてもファイル操作には困らない
FILE構造体というデータ構造に対する必要十分なメソッドは用意されてる
継承や多態性などはオブジェクト指向を便利に使うためのユーティリティに過ぎない
これらは節度ある使い方をすれば便利だけど、やり過ぎると確かに副作用はある
オブジェクト指向とはデータ構造と それに作用するメソッドを結びつけること
逆に言えば、そのデータに結びつかない作用や参照を排除するアクセス機構を持つ
つまりはカプセル化こそが本質
実際、これはオブジェクト指向という言葉がメジャーになる前から使われていて
Cの標準ライブラリにあるFILE構造体はその典型と言える
FILE構造体にはアクセス制限はかけられていない、というかCではかけられないけど
直接アクセスしなくてもファイル操作には困らない
FILE構造体というデータ構造に対する必要十分なメソッドは用意されてる
継承や多態性などはオブジェクト指向を便利に使うためのユーティリティに過ぎない
これらは節度ある使い方をすれば便利だけど、やり過ぎると確かに副作用はある
890デフォルトの名無しさん
2018/11/21(水) 00:38:45.87ID:zIpdinjM >>889
それと構造体のインスタンスとの違いは何だと思う?
それと構造体のインスタンスとの違いは何だと思う?
891デフォルトの名無しさん
2018/11/21(水) 00:52:09.02ID:8MyYCmiU >>890
質問の意味を取り違えてるかも知れないけど
構造体が使えるならオブジェクト指向は要らないのでは、という意味かな
問題は使い方にある
オブジェクト指向言語とはオブジェクト指向的な作りをサポートする言語
質問の意味を取り違えてるかも知れないけど
構造体が使えるならオブジェクト指向は要らないのでは、という意味かな
問題は使い方にある
オブジェクト指向言語とはオブジェクト指向的な作りをサポートする言語
892デフォルトの名無しさん
2018/11/21(水) 01:04:22.97ID:zIpdinjM893デフォルトの名無しさん
2018/11/21(水) 01:06:57.00ID:zIpdinjM ま、今夜は寝るわ。
あう機会があったら
またねノシ
あう機会があったら
またねノシ
894デフォルトの名無しさん
2018/11/21(水) 01:19:24.31ID:8MyYCmiU895デフォルトの名無しさん
2018/11/21(水) 01:20:25.70ID:ILAAUKO6 「スマンがお前らがガタガタ抜かすよか遥か昔に『オブジェクト』っつう計算機科学用語生み出したの俺なんだわw
黙ってようと思ったけどさ、あんまりお前らが的外れなこと偉そうにグダグダ言ってるもんで。しかも枝葉ww
一番大切なことは何か教えといてやろうか?
それは『メッセージング』だよ」
──アラン・ケイ(俺私訳)
黙ってようと思ったけどさ、あんまりお前らが的外れなこと偉そうにグダグダ言ってるもんで。しかも枝葉ww
一番大切なことは何か教えといてやろうか?
それは『メッセージング』だよ」
──アラン・ケイ(俺私訳)
896デフォルトの名無しさん
2018/11/21(水) 01:33:17.63ID:ILAAUKO6 「俺様にとってOOPとは、メッセージング、状態プロセスを隠蔽しローカルに保持・保護すること(薬中:カプセル化のこと)、そしてすべてに対する遅延バインディングの徹底、これに尽きる」
──アラン・ケイ(俺私訳)
──アラン・ケイ(俺私訳)
897デフォルトの名無しさん
2018/11/21(水) 01:47:09.00ID:ILAAUKO6 アラン・ケイの言うOOPに必須の要素:
・カプセル化
・メッセージパッシング
・動的バインディング(実行時に於けるプログラムの進化・適応能力)
必須ではない要素:
・クラス
・クラス継承
・オブジェクト・関数・データの特別扱い
・newキーワード
・多態(ポリモーフィズム)
・静的型
・クラスを「型」として認識すること
・カプセル化
・メッセージパッシング
・動的バインディング(実行時に於けるプログラムの進化・適応能力)
必須ではない要素:
・クラス
・クラス継承
・オブジェクト・関数・データの特別扱い
・newキーワード
・多態(ポリモーフィズム)
・静的型
・クラスを「型」として認識すること
898デフォルトの名無しさん
2018/11/21(水) 01:59:47.29ID:ILAAUKO6 「『オブジェクト指向』っつう用語は俺が造ったが、C++とやらにはそれについて語ることがなんにもない」
──アラン・ケイ(俺私訳)(C++が引き合いに出されてるがこの発言は97年。もっと遅ければJavaになったのだろうか…?)
──アラン・ケイ(俺私訳)(C++が引き合いに出されてるがこの発言は97年。もっと遅ければJavaになったのだろうか…?)
899デフォルトの名無しさん
2018/11/21(水) 02:13:11.72ID:8MyYCmiU900デフォルトの名無しさん
2018/11/21(水) 02:15:17.92ID:8MyYCmiU901デフォルトの名無しさん
2018/11/21(水) 02:20:09.41ID:zIpdinjM902デフォルトの名無しさん
2018/11/21(水) 02:37:44.49ID:SfkVXijR >>901
何だその言い訳
ラーメンの出前頼んだ人に「ラーメンだと冷めるし伸びちゃうでしょ?だから寿司を持ってきたよ。君にはラーメンじゃなくてコレが必要なんだ!だからコレを今日からラーメンではなくて寿司と呼ぶよ!」と言ってるようなもん。意味不明。
ラーメンの冷める、伸びるといった問題が顕在化してきて、寿司がそれを解決できるからといって、寿司こそが真のラーメンであるということにはならない。
何だその言い訳
ラーメンの出前頼んだ人に「ラーメンだと冷めるし伸びちゃうでしょ?だから寿司を持ってきたよ。君にはラーメンじゃなくてコレが必要なんだ!だからコレを今日からラーメンではなくて寿司と呼ぶよ!」と言ってるようなもん。意味不明。
ラーメンの冷める、伸びるといった問題が顕在化してきて、寿司がそれを解決できるからといって、寿司こそが真のラーメンであるということにはならない。
903デフォルトの名無しさん
2018/11/21(水) 02:38:44.44ID:SfkVXijR 寿司ではなくラーメンと呼ぶ、だった
904デフォルトの名無しさん
2018/11/21(水) 07:08:50.55ID:ziJlPcJv ここまでオブジェクト指向の数値的なメリットなし
905デフォルトの名無しさん
2018/11/21(水) 07:10:32.88ID:ziJlPcJv 議論してる奴等は全員使ってる技術のメリットもあげられないサル
906デフォルトの名無しさん
2018/11/21(水) 07:39:32.60ID:NVAWjNTH907デフォルトの名無しさん
2018/11/21(水) 07:59:06.79ID:ziJlPcJv908デフォルトの名無しさん
2018/11/21(水) 08:02:19.92ID:AzUCjiVS909デフォルトの名無しさん
2018/11/21(水) 08:03:11.06ID:1y5iZMYL メリットくん、半角くん、チンポくん
ウォッチしてんなーw
ウォッチしてんなーw
910デフォルトの名無しさん
2018/11/21(水) 08:07:49.07ID:HZRf7c2A nodeやり始めたときに関数型やイベントでどうやってプログラムを組み上げていいかわからず
結局オブジェクト指向の書き方になってしまった
結局オブジェクト指向の書き方になってしまった
911デフォルトの名無しさん
2018/11/21(水) 08:09:42.68ID:K8VHhpBv jsは関数型でも非同期が最大のメリットだからまた一味違うんだよな
Goやれ
Goやれ
912デフォルトの名無しさん
2018/11/21(水) 08:24:22.62ID:ruXLd7u/ メリットくんも言語の素養がないしな
まず自分から定量化のための指標を提示しなさいよ
まず自分から定量化のための指標を提示しなさいよ
913デフォルトの名無しさん
2018/11/21(水) 08:24:46.50ID:NVAWjNTH914デフォルトの名無しさん
2018/11/21(水) 09:33:50.45ID:No2NMZ8g - Simulaはクラスとオブジェクトという言語機能は与えたけど「オブジェクト指向」は(当初は)考えられていない
- (ごく初期の)Smalltalkはメッセージングによる「決定の遅延」の徹底とそのサポートをもって「オブジェクト指向」と呼んだ
- C++は、ユーザーによるデータ型定義(抽象データ型、データ抽象)をSimulaのクラスを使ってやるアイデアを「オブジェクト指向」と呼んだ
- (ごく初期の)Smalltalkはメッセージングによる「決定の遅延」の徹底とそのサポートをもって「オブジェクト指向」と呼んだ
- C++は、ユーザーによるデータ型定義(抽象データ型、データ抽象)をSimulaのクラスを使ってやるアイデアを「オブジェクト指向」と呼んだ
915デフォルトの名無しさん
2018/11/21(水) 09:41:46.92ID:No2NMZ8g だから、「オブジェクト指向」のメリットというのは
- Smalltalk(ケイの主張)の「オブジェクト指向」なら、実装中、実装完了後、必要なら実行中も決定を変えられる柔軟性。
- C++(ストラウストラップの主張)では継承を活用した差分プログラミングと自在に定義可能な型を用いた安全なプログラミング
ということになる。ただし、
前者のメッセージングは主に効率の面からスケールしないことが早々に分かって、Smalltalkを含め
単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
後者も「差分プログラミング」については、「型安全なプログラミング」が保証できない場合があることが早々に指摘され
その用途でのクラスの欠点を補うことを目的に「インターフェース」が考案され現在はこちらが広く用いられている。
とまあ紆余曲折はあったが、前述のメリット(目指す先)はその後も大きくは変わっていない
- Smalltalk(ケイの主張)の「オブジェクト指向」なら、実装中、実装完了後、必要なら実行中も決定を変えられる柔軟性。
- C++(ストラウストラップの主張)では継承を活用した差分プログラミングと自在に定義可能な型を用いた安全なプログラミング
ということになる。ただし、
前者のメッセージングは主に効率の面からスケールしないことが早々に分かって、Smalltalkを含め
単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
後者も「差分プログラミング」については、「型安全なプログラミング」が保証できない場合があることが早々に指摘され
その用途でのクラスの欠点を補うことを目的に「インターフェース」が考案され現在はこちらが広く用いられている。
とまあ紆余曲折はあったが、前述のメリット(目指す先)はその後も大きくは変わっていない
916デフォルトの名無しさん
2018/11/21(水) 11:13:01.71ID:VgS6VJyN >>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
ナンチャッテメッセージングスタイルになることによってプログラミング言語が失ってしまったものは何だったのでしょうか?
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
ナンチャッテメッセージングスタイルになることによってプログラミング言語が失ってしまったものは何だったのでしょうか?
917デフォルトの名無しさん
2018/11/21(水) 12:19:22.25ID:ZdAecqpt >>913
それは君がメリットを明確にしないからじゃん
それは君がメリットを明確にしないからじゃん
918デフォルトの名無しさん
2018/11/21(水) 12:39:53.31ID:No2NMZ8g >>916
単純に並行並列・分散というような処理におけるスケーラビリティでしょうね
ヒューイットのアクターはSmalltalk-72(初期のSmalltalk処理系で、非同期ではないながらも
トークン列をメッセージとして一応処理していました)をヒントに、ケイのメッセージングのアイデアを並列処理に応用し
定式化を試みた理論で、今、このアクター理論に基づく言語機能やライブラリを備えた言語が各所で重宝されています
アクター理論こそ真の(ケイの目指した)「オブジェクト指向」だと言う人もいますが、これはちょっと言い過ぎですね
両者はメッセージングという共通項は持ちますが、かたや並列並行処理、かたや決定の遅延と、問題にしている領域が違うので…
単純に並行並列・分散というような処理におけるスケーラビリティでしょうね
ヒューイットのアクターはSmalltalk-72(初期のSmalltalk処理系で、非同期ではないながらも
トークン列をメッセージとして一応処理していました)をヒントに、ケイのメッセージングのアイデアを並列処理に応用し
定式化を試みた理論で、今、このアクター理論に基づく言語機能やライブラリを備えた言語が各所で重宝されています
アクター理論こそ真の(ケイの目指した)「オブジェクト指向」だと言う人もいますが、これはちょっと言い過ぎですね
両者はメッセージングという共通項は持ちますが、かたや並列並行処理、かたや決定の遅延と、問題にしている領域が違うので…
919デフォルトの名無しさん
2018/11/21(水) 12:45:55.83ID:UM5ff+tU > - Smalltalk(ケイの主張)の「オブジェクト指向」なら、実装中、実装完了後、必要なら実行中も決定を変えられる柔軟性。
この「実行中」の定義が今と常識とぜんぜん違うんでしょ?
Smalltalkは実行環境でOSみたいなもんだから、
「実行中も決定を変えられる」っていうのは
今で言うOS起動中にプロセスを再起動できる程度の意味でしょう
今はプロセスは通常は複数のオブジェクトの集まりでできているけど
アランケイの時代は1プロセスが1オブジェクトレベル程度の小さなものだった
そういう想定だから1オブジェクトを入れ替えるという発想も理解できるが、
今だと複数のオブジェクトを同時に入れ替えないと正しく動作しないので
そんな1オブジェクトずつちまちまと動作を変えていくなんてありえない
そもそもアランケイの言う「実行中」は「起動中」であって
「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に
入れ替えるとか怖くてできない。入れ替えるにしても保存したら即反映じゃなくて
ユーザーが誰も使用してない状態にして入れ替えないとだめだろうしな。
つまりアランケイが求めていた柔軟性は、OSとプロセスの概念によって
もっと実用的な形で実現されてしまった。だから誰も言語にそんな物を求めていない
この「実行中」の定義が今と常識とぜんぜん違うんでしょ?
Smalltalkは実行環境でOSみたいなもんだから、
「実行中も決定を変えられる」っていうのは
今で言うOS起動中にプロセスを再起動できる程度の意味でしょう
今はプロセスは通常は複数のオブジェクトの集まりでできているけど
アランケイの時代は1プロセスが1オブジェクトレベル程度の小さなものだった
そういう想定だから1オブジェクトを入れ替えるという発想も理解できるが、
今だと複数のオブジェクトを同時に入れ替えないと正しく動作しないので
そんな1オブジェクトずつちまちまと動作を変えていくなんてありえない
そもそもアランケイの言う「実行中」は「起動中」であって
「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に
入れ替えるとか怖くてできない。入れ替えるにしても保存したら即反映じゃなくて
ユーザーが誰も使用してない状態にして入れ替えないとだめだろうしな。
つまりアランケイが求めていた柔軟性は、OSとプロセスの概念によって
もっと実用的な形で実現されてしまった。だから誰も言語にそんな物を求めていない
920デフォルトの名無しさん
2018/11/21(水) 13:24:30.02ID:No2NMZ8g >>919
なんでこの流れでそこまで徹底的に否定しないと気が済まないのか分からないけど(Smalltalkに親でも殺された?)
「オブジェクト指向」とは何かを説明したまでで、それに対する批判や感想は勝手にやってもらったらいいと思うよ
ただ
> 今で言うOS起動中にプロセスを再起動できる程度の意味
というのはちょっと現状の制約に合わせて矮小化しすぎのような気がする
アラン・ケイが目指したのはたぶん通常は手を入れない((セキュリティや安全面から当然だが)枠組みそれ自体
(たとえば言語処理系)における決定事項も変更可能なほどの柔軟性(メタ機能)なので
http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
関連して、(繰り返しになるけどその善し悪しは別にして)自身の枠組みに手を入れられること以外にも
デフォで永続化可能っていうのも今のOS(における仮想化したそれ自体やプロセスの再起動)には考慮されないファクターだよね
なんでこの流れでそこまで徹底的に否定しないと気が済まないのか分からないけど(Smalltalkに親でも殺された?)
「オブジェクト指向」とは何かを説明したまでで、それに対する批判や感想は勝手にやってもらったらいいと思うよ
ただ
> 今で言うOS起動中にプロセスを再起動できる程度の意味
というのはちょっと現状の制約に合わせて矮小化しすぎのような気がする
アラン・ケイが目指したのはたぶん通常は手を入れない((セキュリティや安全面から当然だが)枠組みそれ自体
(たとえば言語処理系)における決定事項も変更可能なほどの柔軟性(メタ機能)なので
http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
関連して、(繰り返しになるけどその善し悪しは別にして)自身の枠組みに手を入れられること以外にも
デフォで永続化可能っていうのも今のOS(における仮想化したそれ自体やプロセスの再起動)には考慮されないファクターだよね
921デフォルトの名無しさん
2018/11/21(水) 17:04:46.25ID:bLoKnUqC >>919
いや、今も昔も、Smalltalkではメソッドを実行中のオブジェクトについてもクラス定義やメソッドを変更することができる。
Smalltalk-80が失ったのは、メッセージ自体が持つオブジェクトらしさ。メッセージセレクタはオブジェクトではあるが、ソースコード上はあまりオブジェクトらしい扱いになっていない。
いや、今も昔も、Smalltalkではメソッドを実行中のオブジェクトについてもクラス定義やメソッドを変更することができる。
Smalltalk-80が失ったのは、メッセージ自体が持つオブジェクトらしさ。メッセージセレクタはオブジェクトではあるが、ソースコード上はあまりオブジェクトらしい扱いになっていない。
922デフォルトの名無しさん
2018/11/21(水) 17:44:11.51ID:No2NMZ8g >>921
細かいことで恐縮ですが
> Smalltalk-80が失ったのは
ナンチャッテメッセージングスタイルになったのはSmalltalk-76からなので正確には「Smalltalkが-76以後失ったのは」かと…
> ソースコード上はあまりオブジェクトらしい扱いになっていない。
「ソースコード上でのオブジェクトらしい扱い」って具体的にはどういった感じでしょうか?
メッセージセレクタはメッセージを構成するトークンとして現れていますし、オブジェクトらしい扱いは一応受けているとおもうのですが
「(メソッドコールの)処理上、(セレクタではなく)メッセージが」
(既存メソッドのコールであればVM内で完結することもあって、メッセージっぽい扱いをされていない)、ではなく?
細かいことで恐縮ですが
> Smalltalk-80が失ったのは
ナンチャッテメッセージングスタイルになったのはSmalltalk-76からなので正確には「Smalltalkが-76以後失ったのは」かと…
> ソースコード上はあまりオブジェクトらしい扱いになっていない。
「ソースコード上でのオブジェクトらしい扱い」って具体的にはどういった感じでしょうか?
メッセージセレクタはメッセージを構成するトークンとして現れていますし、オブジェクトらしい扱いは一応受けているとおもうのですが
「(メソッドコールの)処理上、(セレクタではなく)メッセージが」
(既存メソッドのコールであればVM内で完結することもあって、メッセージっぽい扱いをされていない)、ではなく?
923デフォルトの名無しさん
2018/11/21(水) 18:19:44.20ID:UM5ff+tU >>921
> いや、今も昔も、Smalltalkではメソッドを実行中のオブジェクトについてもクラス定義やメソッドを変更することができる。
「変更することが出来る」っていうことはわかってるんだよ
そこは重要じゃない。重要なのは変更してもシステムは
エラーなく続行し続けられるか?でしょ?
関数型言語なら状態を持たないからわかるけど
Smalltalkはオブジェクト指向なんだから状態を持っている
状態を持っているまま処理内容だけを変更したら
(データに互換性がない場合)エラー出るでしょ?
クラス定義を変えるならば、インターフェースが変わることだってある
その場合、クラス定義だけじゃなくて、クラスを使っている方も
同時に変更しなければいけない。
もちろんリファクタリングとデータのマイグレーション(変換)を駆使すれば
プログラムを走らせながら、変更するのは可能かもしれないけど、
そんなアクロバットプログラミングなんて誰も求めてない
サービスの一時停止やプロセスの再起動で許されることのほうが多いでしょって話
> いや、今も昔も、Smalltalkではメソッドを実行中のオブジェクトについてもクラス定義やメソッドを変更することができる。
「変更することが出来る」っていうことはわかってるんだよ
そこは重要じゃない。重要なのは変更してもシステムは
エラーなく続行し続けられるか?でしょ?
関数型言語なら状態を持たないからわかるけど
Smalltalkはオブジェクト指向なんだから状態を持っている
状態を持っているまま処理内容だけを変更したら
(データに互換性がない場合)エラー出るでしょ?
クラス定義を変えるならば、インターフェースが変わることだってある
その場合、クラス定義だけじゃなくて、クラスを使っている方も
同時に変更しなければいけない。
もちろんリファクタリングとデータのマイグレーション(変換)を駆使すれば
プログラムを走らせながら、変更するのは可能かもしれないけど、
そんなアクロバットプログラミングなんて誰も求めてない
サービスの一時停止やプロセスの再起動で許されることのほうが多いでしょって話
924デフォルトの名無しさん
2018/11/21(水) 18:30:17.93ID:BbP/iGml オブジェクト指向とオブジェクト指向プログラミング言語とは、方向性が真逆。
むしろオブジェクト指向を意識しなくてもオブジェクト指向プログラミングできるのが、
Rubyのような『いわゆる』オブジェクト指向プログラミング言語。
627 デフォルトの名無しさん 2018/11/01(木) 04:32:24.08 ID:PmS8KjrS
一回こっきりの家庭用ソロゲーを作成するなら、オブジェクト指向がチンポがうんたらは必要無い。
──オブジェクト指向の言語を書こうというのに、オブジェクト指向でないCで書かれているというのは意外な気もします。
まつもと「CでRubyのオブジェクト指向を作ってて、その機能はCからも使えるんですよ。
だからRubyのC実装って、Cで書かれているんだけどRubyのオブジェクト指向で書ける。
僕はこれが好みなんですが、違う人も多いみたいですね」
http://ascii.jp/elem/000/001/228/1228027/
しかしながら将来的に改変したり削除したり拡張したりする場合、『チンポ』のような多態性が不可欠。
むしろオブジェクト指向を意識しなくてもオブジェクト指向プログラミングできるのが、
Rubyのような『いわゆる』オブジェクト指向プログラミング言語。
627 デフォルトの名無しさん 2018/11/01(木) 04:32:24.08 ID:PmS8KjrS
一回こっきりの家庭用ソロゲーを作成するなら、オブジェクト指向がチンポがうんたらは必要無い。
──オブジェクト指向の言語を書こうというのに、オブジェクト指向でないCで書かれているというのは意外な気もします。
まつもと「CでRubyのオブジェクト指向を作ってて、その機能はCからも使えるんですよ。
だからRubyのC実装って、Cで書かれているんだけどRubyのオブジェクト指向で書ける。
僕はこれが好みなんですが、違う人も多いみたいですね」
http://ascii.jp/elem/000/001/228/1228027/
しかしながら将来的に改変したり削除したり拡張したりする場合、『チンポ』のような多態性が不可欠。
925デフォルトの名無しさん
2018/11/21(水) 18:36:07.42ID:8Yc2p7H1 >>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, アーロンカービル
>そもそもアランケイの言う「実行中」は「起動中」であって
>「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に
チンポがシコシコしている間、俺はそれでも俺なのかと尋ねた。
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, アーロンカービル
926デフォルトの名無しさん
2018/11/21(水) 18:37:29.28ID:UM5ff+tU >>925
たとえば、CycはFredという名前の男がドナルドダックのモノマネをするという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には羽がないことは知っているが、
アヒルのように歩き、アヒルのように鳴くものはアヒルに違いないと考えた。
したがって、CycはFredがドナルドダックのモノマネしている間、
Fredはそれでも人間なのかと尋ねた。
たとえば、CycはFredという名前の男がドナルドダックのモノマネをするという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には羽がないことは知っているが、
アヒルのように歩き、アヒルのように鳴くものはアヒルに違いないと考えた。
したがって、CycはFredがドナルドダックのモノマネしている間、
Fredはそれでも人間なのかと尋ねた。
927デフォルトの名無しさん
2018/11/21(水) 18:53:28.93ID:8Yc2p7H1 >>919
>この「実行中」の定義が今と常識とぜんぜん違うんでしょ?
『オブジェクト指向』なる『概念』そのものはずっと前から俺の股間に付いているんだけど、
『オブジェクト指向プログラミング言語』はごく最近、これまでに無かった『機能』が追加されたんだろう?
>この「実行中」の定義が今と常識とぜんぜん違うんでしょ?
『オブジェクト指向』なる『概念』そのものはずっと前から俺の股間に付いているんだけど、
『オブジェクト指向プログラミング言語』はごく最近、これまでに無かった『機能』が追加されたんだろう?
928デフォルトの名無しさん
2018/11/21(水) 18:59:11.61ID:8Yc2p7H1929デフォルトの名無しさん
2018/11/21(水) 19:07:17.83ID:8Yc2p7H1 >>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く
930デフォルトの名無しさん
2018/11/21(水) 19:36:14.36ID:bLoKnUqC >>922
レシーバ セレクタ 引数
これらのうちレシーバと引数は表現式(オブジェクト)ですが、セレクタはそれ単独では表現式(オブジェクト)ではないですね。もちろんメソッド内のリテラルにセレクタがシンボルオブジェクトとして格納されているので実体としてはオブジェクトですが。
レシーバ セレクタ 引数
これらのうちレシーバと引数は表現式(オブジェクト)ですが、セレクタはそれ単独では表現式(オブジェクト)ではないですね。もちろんメソッド内のリテラルにセレクタがシンボルオブジェクトとして格納されているので実体としてはオブジェクトですが。
931デフォルトの名無しさん
2018/11/21(水) 21:55:34.70ID:Xc/Hc18Z オブジェクト指向を語るお前らがクソ
932デフォルトの名無しさん
2018/11/21(水) 22:07:53.22ID:ZgksAXKX オブジェクト指向のメリット
型を持ってる変数が最初にくるから
書くときIDEのインテリセンスが使いやすくて便利
型を持ってる変数が最初にくるから
書くときIDEのインテリセンスが使いやすくて便利
933デフォルトの名無しさん
2018/11/21(水) 22:09:43.33ID:LAJ52fwT 型はオブジェクト指向の要素じゃない。次!
934デフォルトの名無しさん
2018/11/21(水) 22:11:59.32ID:ZgksAXKX でも大抵型ついてるし変数が最初にくるからそれが使いやすいんだ
オブジェクト指向以外でそんなのあるか?
オブジェクト指向以外でそんなのあるか?
935デフォルトの名無しさん
2018/11/21(水) 22:20:32.18ID:Poi4aHpr >>930
なるほど
ただ、Smalltalk-72でも(セレクタ同様、トークナイズ後にシンボル様オブジェクトとして扱われるとは言え)
リテラルでないトークンをメッセージに混ぜられますよね?
例えばSmalltalk-72のウィンドウを生成するメッセージ式は
👉dp ← dispframe 100 75 100 120 string 200.!
のように記述するのですが(念のため、dispframeがレシーバ、100 75 100 120 string 200 がメッセージです)
http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/parc/techReports/Smalltalk-72_Instruction_Manual_Mar76.pdf p.30
最後から二番目の「string」は続く引数がバッファサイズであることをパターン認識により見分けられるよう添えらます
リテラルではないこともあわせ、このstringはセレクタ(の特にキーワード)に近い役割&扱いだと言うことができそうなので
Smalltalk-76以降の文法で失われた…とするのはちょっと弱いように思いました
あくまで個人の感想ですが
なるほど
ただ、Smalltalk-72でも(セレクタ同様、トークナイズ後にシンボル様オブジェクトとして扱われるとは言え)
リテラルでないトークンをメッセージに混ぜられますよね?
例えばSmalltalk-72のウィンドウを生成するメッセージ式は
👉dp ← dispframe 100 75 100 120 string 200.!
のように記述するのですが(念のため、dispframeがレシーバ、100 75 100 120 string 200 がメッセージです)
http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/parc/techReports/Smalltalk-72_Instruction_Manual_Mar76.pdf p.30
最後から二番目の「string」は続く引数がバッファサイズであることをパターン認識により見分けられるよう添えらます
リテラルではないこともあわせ、このstringはセレクタ(の特にキーワード)に近い役割&扱いだと言うことができそうなので
Smalltalk-76以降の文法で失われた…とするのはちょっと弱いように思いました
あくまで個人の感想ですが
936デフォルトの名無しさん
2018/11/21(水) 22:35:28.94ID:UM5ff+tU オブジェクト指向言語のメリット
オブジェクト指向がやりやすい
オブジェクト指向がやりやすい
937デフォルトの名無しさん
2018/11/21(水) 22:39:18.12ID:DBPerFhf とことん手段指向
身もフタもないな
身もフタもないな
938デフォルトの名無しさん
2018/11/21(水) 23:18:04.82ID:UM5ff+tU オブジェクト指向のメリットは?とよく聞かれますが、
そもそも、オブジェクト指向以外のやり方にメリットが
ないってのが答えなんですよね
オブジェクト指向以外のメリットを書くスレ
https://mevius.5ch.net/test/read.cgi/tech/1542808008/
そもそも、オブジェクト指向以外のやり方にメリットが
ないってのが答えなんですよね
オブジェクト指向以外のメリットを書くスレ
https://mevius.5ch.net/test/read.cgi/tech/1542808008/
939デフォルトの名無しさん
2018/11/21(水) 23:19:44.65ID:JM/nMfDs >>938
つまりオブジェクト指向にもメリットがないと言いたいのかstaticおじさん
つまりオブジェクト指向にもメリットがないと言いたいのかstaticおじさん
940デフォルトの名無しさん
2018/11/21(水) 23:19:48.93ID:QCzQZ2rP オブジェクト単位に分ける工程が無駄
ハイ、論破
ハイ、論破
941デフォルトの名無しさん
2018/11/21(水) 23:52:34.04ID:UM5ff+tU それを数値で示していない。はい論破返し
942デフォルトの名無しさん
2018/11/22(木) 00:02:06.85ID:SJlwfHl4 ガウディ本読んでる奴が居ない件の
943デフォルトの名無しさん
2018/11/22(木) 00:06:13.73ID:WA/+SJn9 ハヽ/::::ヽ.ヘ===ァ
{::{/≧===≦V:/、
/ >:´:::::::::::::::::::::::::`ヽ\_
|iγ:::::::::::::::::::::::::::::::::::::::::ヽi| カ
〈/::::::::::::::::::::::::::::::::::::::::::::::ハ_》 バ
!:::::::l::::/|ハ::::::::∧::::i:::::::::::i デ
|::::::i∨ ト-:::::/ ,X:j:::/:::::l ィ
r⌒ ヽ ヽ::::| ≧z !V z≦ i/:::::/ ./'⌒ゝ
. ヽと ヽ ゝ:} “ “ {:::::/ っ丿
\ \::ゝ、 _ ( ) _ イ::/ /`
\ /::::\
/::::/`ヽ r'´ \:::\
/::::/ | _ _」 }ノノ
{:::/ | " ヽ
ヽ | 丿
| /'⌒ } " }
| { ゝ,,ノ
| {
| i
ゝ__,,ノ
{::{/≧===≦V:/、
/ >:´:::::::::::::::::::::::::`ヽ\_
|iγ:::::::::::::::::::::::::::::::::::::::::ヽi| カ
〈/::::::::::::::::::::::::::::::::::::::::::::::ハ_》 バ
!:::::::l::::/|ハ::::::::∧::::i:::::::::::i デ
|::::::i∨ ト-:::::/ ,X:j:::/:::::l ィ
r⌒ ヽ ヽ::::| ≧z !V z≦ i/:::::/ ./'⌒ゝ
. ヽと ヽ ゝ:} “ “ {:::::/ っ丿
\ \::ゝ、 _ ( ) _ イ::/ /`
\ /::::\
/::::/`ヽ r'´ \:::\
/::::/ | _ _」 }ノノ
{:::/ | " ヽ
ヽ | 丿
| /'⌒ } " }
| { ゝ,,ノ
| {
| i
ゝ__,,ノ
944デフォルトの名無しさん
2018/11/22(木) 00:06:56.04ID:YC9N9M8Q >>943
っω
っω
945デフォルトの名無しさん
2018/11/22(木) 00:16:53.46ID:HONMAAM4 >>941
staticおじさんは黙っとけw
staticおじさんは黙っとけw
946デフォルトの名無しさん
2018/11/22(木) 00:19:35.78ID:WA/+SJn9 >>945
staticおじさんではないので黙らないw
staticおじさんではないので黙らないw
947デフォルトの名無しさん
2018/11/22(木) 00:20:36.62ID:HONMAAM4 >>946
でもオブジェクト指向しらんのやろwそれstaticおじさんやからw
でもオブジェクト指向しらんのやろwそれstaticおじさんやからw
948デフォルトの名無しさん
2018/11/22(木) 00:25:38.32ID:WA/+SJn9 >>947
オブジェクト指向知ってるのでstaticおじさんでないことは証明された
オブジェクト指向知ってるのでstaticおじさんでないことは証明された
949デフォルトの名無しさん
2018/11/22(木) 00:54:40.06ID:AcqNnxh2 >>923
> Smalltalkはオブジェクト指向なんだから状態を持っている
> 状態を持っているまま処理内容だけを変更したら
(データに互換性がない場合)エラー出るでしょ?
そのエラーが出てからの対処が容易であることがすなわちケイのOOPの肝たる「決定の遅延」(のサポート)なんですよ
おそらくとうてい許容できない行為だろうとは思いますが、Smalltalkでは日常のこちらを参考まで
https://youtu.be/ymITEeAOtEA
https://youtu.be/xfLhXb1K4Uk
> Smalltalkはオブジェクト指向なんだから状態を持っている
> 状態を持っているまま処理内容だけを変更したら
(データに互換性がない場合)エラー出るでしょ?
そのエラーが出てからの対処が容易であることがすなわちケイのOOPの肝たる「決定の遅延」(のサポート)なんですよ
おそらくとうてい許容できない行為だろうとは思いますが、Smalltalkでは日常のこちらを参考まで
https://youtu.be/ymITEeAOtEA
https://youtu.be/xfLhXb1K4Uk
950デフォルトの名無しさん
2018/11/22(木) 00:56:50.72ID:ROOr0q+m ×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く
>俺.オシッコを止める
『指でチンポをつまんでオシッコを止める』
>俺.オシッコを出す
『尿モレ』『尿シッキン』どうする?
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く
>俺.オシッコを止める
『指でチンポをつまんでオシッコを止める』
>俺.オシッコを出す
『尿モレ』『尿シッキン』どうする?
951デフォルトの名無しさん
2018/11/22(木) 01:27:10.12ID:pXjB8XIH >>941
でもこの場合
オブジェクト単位に分ける工程が完全に削除できるんだからメリットってわかるでしょ?
オブジェクト単位に分ける工程が0より大きいので
それが削除できる以上メリットとなる
証明完了
でもこの場合
オブジェクト単位に分ける工程が完全に削除できるんだからメリットってわかるでしょ?
オブジェクト単位に分ける工程が0より大きいので
それが削除できる以上メリットとなる
証明完了
952デフォルトの名無しさん
2018/11/22(木) 01:38:10.58ID:ROOr0q+m >>951
>オブジェクト単位に分ける工程
人工知能は『物の意味』を『区別』することから始まるのでは?
776 Mr.Moto sage 2018/09/08(土) 08:57:47.30 ID:Hj3WpMqo
「もの」という言葉が出たついでに言っておくと、
ここでいう「もの」は“individual”、すなわち「不可分なもの。
個人、個体、個物」を意味する。れっきとした哲学用語だ。
ただし、これは「物理的な存在」ではなく、「概念」を
指していて、しかも「具体的な意味」「内包的な意味」を
持たない。その意味で、individual は「意味を引っ掛ける釘」の
ようなもので、「こっちの釘とあっちの釘は、どこがどう違うと
言われても説明できない。ただ、引っかかっている意味が違うし、
比較によって区別できる」ものである。
同じような性質をもった存在として、Codd のデータベース理論における
データベース・キーというものがある。
>オブジェクト単位に分ける工程
人工知能は『物の意味』を『区別』することから始まるのでは?
776 Mr.Moto sage 2018/09/08(土) 08:57:47.30 ID:Hj3WpMqo
「もの」という言葉が出たついでに言っておくと、
ここでいう「もの」は“individual”、すなわち「不可分なもの。
個人、個体、個物」を意味する。れっきとした哲学用語だ。
ただし、これは「物理的な存在」ではなく、「概念」を
指していて、しかも「具体的な意味」「内包的な意味」を
持たない。その意味で、individual は「意味を引っ掛ける釘」の
ようなもので、「こっちの釘とあっちの釘は、どこがどう違うと
言われても説明できない。ただ、引っかかっている意味が違うし、
比較によって区別できる」ものである。
同じような性質をもった存在として、Codd のデータベース理論における
データベース・キーというものがある。
953デフォルトの名無しさん
2018/11/22(木) 01:41:49.54ID:ROOr0q+m 自然言語処理スレッド その5
http://mevius.5ch.net/test/read.cgi/tech/1537152490/
そもそも人工知能とは、『オブジェクト指向の果てなき追求』ではないのか?
違うか?
違うというなら、その理由を50字以内で述べろ!
http://mevius.5ch.net/test/read.cgi/tech/1537152490/
そもそも人工知能とは、『オブジェクト指向の果てなき追求』ではないのか?
違うか?
違うというなら、その理由を50字以内で述べろ!
954デフォルトの名無しさん
2018/11/22(木) 01:47:25.03ID:YC9N9M8Q955デフォルトの名無しさん
2018/11/22(木) 01:49:36.77ID:ROOr0q+m >>954
>違うという理由を人に聞く前に
>そうだという理由を述べるのが筋だろ
ならばシステムをオブジェクト単位に分ける必要性について答えておこうか。
>>951
>オブジェクト単位に分ける工程が完全に削除できるんだから
戦神のベルトが倉庫を圧迫。仕分けましょう【DQ10】
http://okirakudq10.com/archives/53537205.html
>違うという理由を人に聞く前に
>そうだという理由を述べるのが筋だろ
ならばシステムをオブジェクト単位に分ける必要性について答えておこうか。
>>951
>オブジェクト単位に分ける工程が完全に削除できるんだから
戦神のベルトが倉庫を圧迫。仕分けましょう【DQ10】
http://okirakudq10.com/archives/53537205.html
956デフォルトの名無しさん
2018/11/22(木) 02:01:56.48ID:YC9N9M8Q957デフォルトの名無しさん
2018/11/22(木) 04:49:22.53ID:sPtmfb/w >>935
そんな風に、セレクタ(的なシンボル)とオブジェクトが一緒くたにして扱われるところが、Smalltalk-72の良いところだと思っていて、76や80のメッセージセレクタはちょっと味付けが違っていて、オブジェクトと一線を画しているというのが、私の個人の感想です。
そんな風に、セレクタ(的なシンボル)とオブジェクトが一緒くたにして扱われるところが、Smalltalk-72の良いところだと思っていて、76や80のメッセージセレクタはちょっと味付けが違っていて、オブジェクトと一線を画しているというのが、私の個人の感想です。
958デフォルトの名無しさん
2018/11/22(木) 06:01:15.58ID:WA/+SJn9 >>949
> そのエラーが出てからの対処が容易であることがすなわちケイのOOPの肝たる「決定の遅延」(のサポート)なんですよ
エラーが出る時点で駄目でしょ?
> おそらくとうてい許容できない行為だろうとは思いますが、Smalltalkでは日常のこちらを参考まで
許容してはいけないことだね。
エラーが出て止まるならまだいいけど、間違った結果で実行されてしまったら取り返しがつかないもの
アクロバットプログラミングはやめよう
> そのエラーが出てからの対処が容易であることがすなわちケイのOOPの肝たる「決定の遅延」(のサポート)なんですよ
エラーが出る時点で駄目でしょ?
> おそらくとうてい許容できない行為だろうとは思いますが、Smalltalkでは日常のこちらを参考まで
許容してはいけないことだね。
エラーが出て止まるならまだいいけど、間違った結果で実行されてしまったら取り返しがつかないもの
アクロバットプログラミングはやめよう
959デフォルトの名無しさん
2018/11/22(木) 06:33:08.70ID:WA/+SJn9 Smalltalkの実行しながら修正できるっていうのは、
「最初から再実行しなくても修正できるよ」程度のものなんだろう
最初から再実行すればいいじゃん?
それが今の時代の感覚。
テストコードはあるしプロセスを終了して最初から再実行すればいい
無の状態から再実行するから同じ状態が何度でも作れる
ユニットテストはSmalltalkで一番最初に実装されたが、
これにによって「最初から再実行しなくても修正できるよ」の
価値が大きく下がったのだろう
もちろんSmalltalk開発の初期はコンピュータの性能が低く
Smalltalkの場合、実行環境そのものという設計だったから
再実行できたとしても、再実行するのに時間がかかった
それも今はプロセス単位で再実行できるし、コンピュータの性能の
向上で再実行すれば十分になってしまった。
昔はデバッガを使って実行中にブレークポイントで止めて実行しつつ状態を
確認していたのだが、今はそんなことをすることは殆どなくなった。
なぜなら関数レベルで単体で実行することが簡単になったからだ。
「最初から再実行しなくても修正できるよ」程度のものなんだろう
最初から再実行すればいいじゃん?
それが今の時代の感覚。
テストコードはあるしプロセスを終了して最初から再実行すればいい
無の状態から再実行するから同じ状態が何度でも作れる
ユニットテストはSmalltalkで一番最初に実装されたが、
これにによって「最初から再実行しなくても修正できるよ」の
価値が大きく下がったのだろう
もちろんSmalltalk開発の初期はコンピュータの性能が低く
Smalltalkの場合、実行環境そのものという設計だったから
再実行できたとしても、再実行するのに時間がかかった
それも今はプロセス単位で再実行できるし、コンピュータの性能の
向上で再実行すれば十分になってしまった。
昔はデバッガを使って実行中にブレークポイントで止めて実行しつつ状態を
確認していたのだが、今はそんなことをすることは殆どなくなった。
なぜなら関数レベルで単体で実行することが簡単になったからだ。
960デフォルトの名無しさん
2018/11/22(木) 07:54:59.11ID:AcqNnxh2961デフォルトの名無しさん
2018/11/22(木) 08:07:58.62ID:y7NAvoby >>951
頭からダラダラ書くことしかできないお前にはそうなんだろうな w
頭からダラダラ書くことしかできないお前にはそうなんだろうな w
962デフォルトの名無しさん
2018/11/22(木) 08:11:04.06ID:AcqNnxh2 >>959
> ユニットテストはSmalltalkで一番最初に実装されたが、
> これにによって「最初から再実行しなくても修正できるよ」の
> 価値が大きく下がった
注目する部分の粒度というかタイミング(あるいはリズム感)みたいなものが互いに食い違っているんだよね
動画にもあるように、たとえTDDであっても再実行せずに直せるのは別にアクロバティックでも何でもなく
むしろ(TDDとしても)自然な流れなんだけどなぁ
決定の遅延派と早期結合派とは一生わかりあえないんだろうねきっと
> ユニットテストはSmalltalkで一番最初に実装されたが、
> これにによって「最初から再実行しなくても修正できるよ」の
> 価値が大きく下がった
注目する部分の粒度というかタイミング(あるいはリズム感)みたいなものが互いに食い違っているんだよね
動画にもあるように、たとえTDDであっても再実行せずに直せるのは別にアクロバティックでも何でもなく
むしろ(TDDとしても)自然な流れなんだけどなぁ
決定の遅延派と早期結合派とは一生わかりあえないんだろうねきっと
963デフォルトの名無しさん
2018/11/22(木) 10:06:11.05ID:WA/+SJn9 >>962
TDDではまず実行してテストが失敗する状態にしないといけない
実行し終わって結果が出てるんだよ
つまり二回目以降の実行っていうのは「再実行」
この再実行が簡単に行えるわけだが、それに対する
Smalltalkのメリットは未実装の直前まで実行できるってことでしかない
それで一体どんな価値があるというのか?
> 決定の遅延派と早期結合派とは一生わかりあえないんだろうねきっと
価値の話をしてないからな。
決定を遅延できるから素晴らしいんだ!(何が?)
そう、何が素晴らしいのかが書かれていない
過去においては素晴らしいなにかがあったかもしれないが、
それは今は別の技術によって解決されてしまってるということ
別の技術というのは早期結合のことじゃない
別の技術による決定の遅延という意味。決定の遅延自体は行っている。
Smalltalkの言語機能を使っていないだけ
それとも今の時代においても、何か価値があるのか?
なくなってしまってるから書けないはずだ
TDDではまず実行してテストが失敗する状態にしないといけない
実行し終わって結果が出てるんだよ
つまり二回目以降の実行っていうのは「再実行」
この再実行が簡単に行えるわけだが、それに対する
Smalltalkのメリットは未実装の直前まで実行できるってことでしかない
それで一体どんな価値があるというのか?
> 決定の遅延派と早期結合派とは一生わかりあえないんだろうねきっと
価値の話をしてないからな。
決定を遅延できるから素晴らしいんだ!(何が?)
そう、何が素晴らしいのかが書かれていない
過去においては素晴らしいなにかがあったかもしれないが、
それは今は別の技術によって解決されてしまってるということ
別の技術というのは早期結合のことじゃない
別の技術による決定の遅延という意味。決定の遅延自体は行っている。
Smalltalkの言語機能を使っていないだけ
それとも今の時代においても、何か価値があるのか?
なくなってしまってるから書けないはずだ
964デフォルトの名無しさん
2018/11/22(木) 11:19:38.02ID:DWgniQ0o >>963
> Smalltalkのメリットは未実装の直前まで実行できるってことでしかない
> それで一体どんな価値があるというのか?
未実装の直前まで他の準備に煩わされることなく作業をスムーズに進められるのはあきらかに価値あることだろう
未実装でエラーを出した後、仮実装のためのメソッドを追加し1回目のテスト実行を終えられる
この流れを妨げないスピード感はとにかくコンパイルを通すためにいろいろ手続きを踏まないといけない早期決定畑の人には分からないと思う
あと、レッド(→イエロー)→グリーン→リファクタリング→…のサイクルを回すのはたしかにそれぞれは再実行だけど
レッド、イエロー、グリーン、リファクタリングそれぞれの工程で実行中に書き換えられることのメリットは生きてくる
なんか、批判的に指摘してくることの粒度というかレイヤーというかがいちいち外れているんだよね
当たり前なことをしたり顔で主張されても「そうですね。で?」ってなるだけ
たとえばこれもそう↓
> 決定を遅延できるから素晴らしいんだ!(何が?)
アラン・ケイも書いているとおり(念のため再掲)→http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
使い捨てではない長期運用を想定したソフトウエアの開発において、知見というのはあとからついてくることは誰もが経験済みだろうし
それを開発中、運用中のシステムに適用しようと思ったとき(まあ早期決定脳では思いもよらないことだが…)に役立つのは明らかだよ
たぶん思慮の及ぶダイナミックレンジがずれていてすごく狭い範囲のことしか頭にないんじゃないかな
繰り返し指摘されているような限定された局面での問題であれば今の技術で十分対応できているしそれを否定する気はさらさらないよ
あと、あくまで暫定実装に過ぎないSmalltalkの実装やその欠陥にとらわれすぎでは?
本来であればアラン・ケイの「オブジェクト指向」とそれが目指す「決定の遅延」のために必要な要素は何かや
ストラウストラップらの型をクラス様エンティティでやるアイデアの「オブジェクト指向」との違いが何かが論じられるべきだろう
なんでそんなにSmalltalk(をやっつけること)にこだわるのかね(ほんと親でも殺されたか?)
> Smalltalkのメリットは未実装の直前まで実行できるってことでしかない
> それで一体どんな価値があるというのか?
未実装の直前まで他の準備に煩わされることなく作業をスムーズに進められるのはあきらかに価値あることだろう
未実装でエラーを出した後、仮実装のためのメソッドを追加し1回目のテスト実行を終えられる
この流れを妨げないスピード感はとにかくコンパイルを通すためにいろいろ手続きを踏まないといけない早期決定畑の人には分からないと思う
あと、レッド(→イエロー)→グリーン→リファクタリング→…のサイクルを回すのはたしかにそれぞれは再実行だけど
レッド、イエロー、グリーン、リファクタリングそれぞれの工程で実行中に書き換えられることのメリットは生きてくる
なんか、批判的に指摘してくることの粒度というかレイヤーというかがいちいち外れているんだよね
当たり前なことをしたり顔で主張されても「そうですね。で?」ってなるだけ
たとえばこれもそう↓
> 決定を遅延できるから素晴らしいんだ!(何が?)
アラン・ケイも書いているとおり(念のため再掲)→http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
使い捨てではない長期運用を想定したソフトウエアの開発において、知見というのはあとからついてくることは誰もが経験済みだろうし
それを開発中、運用中のシステムに適用しようと思ったとき(まあ早期決定脳では思いもよらないことだが…)に役立つのは明らかだよ
たぶん思慮の及ぶダイナミックレンジがずれていてすごく狭い範囲のことしか頭にないんじゃないかな
繰り返し指摘されているような限定された局面での問題であれば今の技術で十分対応できているしそれを否定する気はさらさらないよ
あと、あくまで暫定実装に過ぎないSmalltalkの実装やその欠陥にとらわれすぎでは?
本来であればアラン・ケイの「オブジェクト指向」とそれが目指す「決定の遅延」のために必要な要素は何かや
ストラウストラップらの型をクラス様エンティティでやるアイデアの「オブジェクト指向」との違いが何かが論じられるべきだろう
なんでそんなにSmalltalk(をやっつけること)にこだわるのかね(ほんと親でも殺されたか?)
965デフォルトの名無しさん
2018/11/22(木) 11:23:08.96ID:WA/+SJn9966デフォルトの名無しさん
2018/11/22(木) 11:24:22.26ID:WA/+SJn9967デフォルトの名無しさん
2018/11/22(木) 12:00:14.14ID:P9tUkoXd 15行以上のカキコはたいていクソなので無条件にNGにしてる。
(.*\n){15}でNG word登録。
(.*\n){15}でNG word登録。
968デフォルトの名無しさん
2018/11/22(木) 12:05:29.43ID:ROOr0q+m969デフォルトの名無しさん
2018/11/22(木) 12:19:57.68ID:DWgniQ0o970デフォルトの名無しさん
2018/11/22(木) 12:26:03.13ID:f4Y3NhdZ ここまでオブジェクト指向のメリットなし
971デフォルトの名無しさん
2018/11/22(木) 12:29:23.68ID:ElVxNvlT >>961
>頭からダラダラ書くことしかできないお前にはそうなんだろうな w
ドラえもん ぼくたち地球人
https://youtu.be/UYdfmyd2vD4
僕たち地球人〜今日も明日もあさっても〜チンポがシコシコ〜するんだよー!
バ バ ア が 潮 吹 い た ぁ !
http://egg.5ch.net/test/read.cgi/welfare/1539337979/
>頭からダラダラ書くことしかできないお前にはそうなんだろうな w
ドラえもん ぼくたち地球人
https://youtu.be/UYdfmyd2vD4
僕たち地球人〜今日も明日もあさっても〜チンポがシコシコ〜するんだよー!
バ バ ア が 潮 吹 い た ぁ !
http://egg.5ch.net/test/read.cgi/welfare/1539337979/
972デフォルトの名無しさん
2018/11/22(木) 12:53:30.19ID:ElVxNvlT 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
シコシコするは他動詞なので、所有者の意思とは無関係にチンポが自立行動するのであれば「イライラする」「ムラムラする」という自動詞を用いるのが正しい
>>587
「ちんちん」の語源の1つの説に、
支那の娼婦が幼児語で「入れて入れて」と言った言葉を
当時の出羽守が有難がって日本に広めたという
かなり眉唾物な故事がある。
その説に依るなら「チンポかシコシコする。」は
当然のように入れた側の所感とその転用じゃな。
591 名無し三等兵 (スッップ Sd1f-hEn1) sage 2018/11/22(木) 12:26:55.61 ID:9IvK1JXqd
>>587
シコシコするは他動詞なので、所有者の意思とは無関係にチンポが自立行動するのであれば「イライラする」「ムラムラする」という自動詞を用いるのが正しい
973デフォルトの名無しさん
2018/11/22(木) 14:13:32.13ID:WA/+SJn9 >>969
> 未実装メソッドを実装するときににコンテキストが分かれば(つまり実行中なら)実装もしやすいだろうとそういうメリットだよ
それは実行しなくてもコンテキストがわかるなら
もっとメリットが有るってことかな?
> 未実装メソッドを実装するときににコンテキストが分かれば(つまり実行中なら)実装もしやすいだろうとそういうメリットだよ
それは実行しなくてもコンテキストがわかるなら
もっとメリットが有るってことかな?
974デフォルトの名無しさん
2018/11/22(木) 14:14:27.19ID:ElVxNvlT975デフォルトの名無しさん
2018/11/22(木) 14:28:15.43ID:WA/+SJn9 結局Smalltalkの実行中に編集ができるっていうのは単なる
未実装メソッドを実装するときににコンテキストが分かれば
(つまり実行中なら)実装もしやすいだろう程度のことでしかなかったということだ
要するに、テキストエディタの補完機能でなんとかなるし、
型があればもっと実行しなくてももっと正確にコンテキストがわかるということ
大したメリットじゃないんだよね
未実装メソッドを実装するときににコンテキストが分かれば
(つまり実行中なら)実装もしやすいだろう程度のことでしかなかったということだ
要するに、テキストエディタの補完機能でなんとかなるし、
型があればもっと実行しなくてももっと正確にコンテキストがわかるということ
大したメリットじゃないんだよね
976デフォルトの名無しさん
2018/11/22(木) 14:40:49.98ID:DWgniQ0o >>973
> それは実行しなくてもコンテキストがわかるなら
> もっとメリットが有るってことかな?
もとより、コンテキストの関係ない関数型ならいらない機能だけどそれはさておき
それなりの深さを持つコールスタックと状態を持つオブジェクト指向を使い続けるならそういうことになるだろうね
でもホットスワップだとかインクリメンタルコンパイルとか無茶しやがって…って技術をこれまでも早期結合派は編み出してきたわけだから
(君は無理っぽいが)その便利さが分かる人がいれば、いつかコンテキストを実行せずに知る技術もひねり出されるんじゃないかな
> それは実行しなくてもコンテキストがわかるなら
> もっとメリットが有るってことかな?
もとより、コンテキストの関係ない関数型ならいらない機能だけどそれはさておき
それなりの深さを持つコールスタックと状態を持つオブジェクト指向を使い続けるならそういうことになるだろうね
でもホットスワップだとかインクリメンタルコンパイルとか無茶しやがって…って技術をこれまでも早期結合派は編み出してきたわけだから
(君は無理っぽいが)その便利さが分かる人がいれば、いつかコンテキストを実行せずに知る技術もひねり出されるんじゃないかな
977デフォルトの名無しさん
2018/11/22(木) 14:42:50.30ID:WA/+SJn9 >>976
そんなにコンテキスト(=型情報)を知ること重要?w
そんなにコンテキスト(=型情報)を知ること重要?w
978デフォルトの名無しさん
2018/11/22(木) 14:48:36.51ID:DWgniQ0o >>977
コンテキストは実行時情報で型情報ではないよ?
コンテキストは実行時情報で型情報ではないよ?
979デフォルトの名無しさん
2018/11/22(木) 16:42:53.79ID:aWnPsB95 OOPのメリットと言う上記全てがCommonLispでも可能だが、別にCommonLispがオブジェクト指向だからというわけではないぞ
実行時の環境がどれだけ豊かかという点はオブジェクト指向に関係は無いよ。smalltalkの特徴と混同し過ぎではないか?
実行時の環境がどれだけ豊かかという点はオブジェクト指向に関係は無いよ。smalltalkの特徴と混同し過ぎではないか?
980デフォルトの名無しさん
2018/11/22(木) 16:57:56.75ID:WA/+SJn9981デフォルトの名無しさん
2018/11/22(木) 17:22:56.72ID:ElVxNvlT チンポがシコシコするぜ!!
982デフォルトの名無しさん
2018/11/22(木) 17:27:01.89ID:DWgniQ0o >>979
> OOPのメリットと言う上記全てがCommonLispでも可能
アラン・ケイは彼のOOPで目指した「決定の遅延」がLispでも(というかSmalltalkとLispのみで)可能と述べていますから当然ですね
「決定の遅延」を「メッセージング」というメタファー(まあ実際に送るのでもいいのですが)を使って目指すのがケイのOOPなので
「メッセージング」を使わずとも「決定の遅延」は実践可能だからこれは(ケイの)OOPの本質ではないという指摘は
主客を取り違えています。
同様のことはビョーン・ストラウストラップらの「ユーザー定義型をクラス(様エンティティ)でやる」アイデアのOOPについても言えて
ユーザー定義型(データ抽象、抽象データ型)はクラスのない××言語でもできるから、これはOOPの本質じゃない!という指摘も
やはり的を外しています
> OOPのメリットと言う上記全てがCommonLispでも可能
アラン・ケイは彼のOOPで目指した「決定の遅延」がLispでも(というかSmalltalkとLispのみで)可能と述べていますから当然ですね
「決定の遅延」を「メッセージング」というメタファー(まあ実際に送るのでもいいのですが)を使って目指すのがケイのOOPなので
「メッセージング」を使わずとも「決定の遅延」は実践可能だからこれは(ケイの)OOPの本質ではないという指摘は
主客を取り違えています。
同様のことはビョーン・ストラウストラップらの「ユーザー定義型をクラス(様エンティティ)でやる」アイデアのOOPについても言えて
ユーザー定義型(データ抽象、抽象データ型)はクラスのない××言語でもできるから、これはOOPの本質じゃない!という指摘も
やはり的を外しています
983デフォルトの名無しさん
2018/11/22(木) 17:32:39.19ID:WA/+SJn9 ほんとなぁ「決定の遅延」を言語でやることが目的になってるよなw
なんのためにやるのか?それは言語以外のレイヤーで実現できないのか?
それが抜けてる
なんのためにやるのか?それは言語以外のレイヤーで実現できないのか?
それが抜けてる
984デフォルトの名無しさん
2018/11/22(木) 17:33:23.62ID:DWgniQ0o >>980
書いてあるじゃんw
実行時のもろもろの情報だよ
コールスタックだったり、インスタンス変数情報だったり、テンポラリー変数情報だったりとにかく様々だよ
もちろん型情報も含まれるけど「イコール」ではない
書いてあるじゃんw
実行時のもろもろの情報だよ
コールスタックだったり、インスタンス変数情報だったり、テンポラリー変数情報だったりとにかく様々だよ
もちろん型情報も含まれるけど「イコール」ではない
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 上野動物園の双子パンダ、1月末に中国に返還へ 国内でパンダ不在に [蚤の市★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 中国軍機のレーダー照射1週間 駆け引き続く 中国、米のレッドライン模索 日本、米以外の同志国とも連携探る 米は対立から距離置く★2 [ぐれ★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 橋下徹氏「総理なら岡田さんに何を聴かれても耐えてほしかった」 高市首相の台湾有事めぐる答弁に# [jinjin★]
- 【悲報】成瀬は天下を取りに行くってラノベを読んだんだけど、質問だが、成瀬って『処女』なのか? [483447288]
- 【米国側沈黙】中国爆撃機を出動させた“台湾発言”…高市の“アドリブ”だった! [979264442]
- 遊戯王やってる奴スレ
- (財務)片山さつき『サナエノミクス💕』開始。「所得、経済、税収全てが上がる夢のような政策」 [153490809]
- 【動画】近所の交差点で事故った車が横転しててワロタwww
- 今年の大晦日も、孤独のグルメスペシャルだ。
