- オブジェクト指向ってクソじゃねぇよ? Part2
964 :デフォルトの名無しさん[sage]:2018/11/22(木) 11:19:38.02 ID:DWgniQ0o - >>963
> Smalltalkのメリットは未実装の直前まで実行できるってことでしかない > それで一体どんな価値があるというのか? 未実装の直前まで他の準備に煩わされることなく作業をスムーズに進められるのはあきらかに価値あることだろう 未実装でエラーを出した後、仮実装のためのメソッドを追加し1回目のテスト実行を終えられる この流れを妨げないスピード感はとにかくコンパイルを通すためにいろいろ手続きを踏まないといけない早期決定畑の人には分からないと思う あと、レッド(→イエロー)→グリーン→リファクタリング→…のサイクルを回すのはたしかにそれぞれは再実行だけど レッド、イエロー、グリーン、リファクタリングそれぞれの工程で実行中に書き換えられることのメリットは生きてくる なんか、批判的に指摘してくることの粒度というかレイヤーというかがいちいち外れているんだよね 当たり前なことをしたり顔で主張されても「そうですね。で?」ってなるだけ たとえばこれもそう↓ > 決定を遅延できるから素晴らしいんだ!(何が?) アラン・ケイも書いているとおり(念のため再掲)→http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf 使い捨てではない長期運用を想定したソフトウエアの開発において、知見というのはあとからついてくることは誰もが経験済みだろうし それを開発中、運用中のシステムに適用しようと思ったとき(まあ早期決定脳では思いもよらないことだが…)に役立つのは明らかだよ たぶん思慮の及ぶダイナミックレンジがずれていてすごく狭い範囲のことしか頭にないんじゃないかな 繰り返し指摘されているような限定された局面での問題であれば今の技術で十分対応できているしそれを否定する気はさらさらないよ あと、あくまで暫定実装に過ぎないSmalltalkの実装やその欠陥にとらわれすぎでは? 本来であればアラン・ケイの「オブジェクト指向」とそれが目指す「決定の遅延」のために必要な要素は何かや ストラウストラップらの型をクラス様エンティティでやるアイデアの「オブジェクト指向」との違いが何かが論じられるべきだろう なんでそんなにSmalltalk(をやっつけること)にこだわるのかね(ほんと親でも殺されたか?)
|
- オブジェクト指向ってクソじゃねぇよ? Part2
969 :デフォルトの名無しさん[sage]:2018/11/22(木) 12:19:57.68 ID:DWgniQ0o - >>965
> 再実行しても0.1ミリ秒ぐらいの差 未実装メソッドを実装するときににコンテキストが分かれば(つまり実行中なら)実装もしやすいだろうとそういうメリットだよ 再実行する前の話 >>966 > どんな価値があるか書いてよw 書いたけど読んでないの? > 使い捨てではない長期運用を想定したソフトウエアの開発において、知見というのはあとからついてくることは誰もが経験済みだろうし > それを開発中、運用中のシステムに適用しようと思ったとき(まあ早期決定脳では思いもよらないことだが…)に役立つのは明らか
|
- オブジェクト指向ってクソじゃねぇよ? Part2
976 :デフォルトの名無しさん[sage]:2018/11/22(木) 14:40:49.98 ID:DWgniQ0o - >>973
> それは実行しなくてもコンテキストがわかるなら > もっとメリットが有るってことかな? もとより、コンテキストの関係ない関数型ならいらない機能だけどそれはさておき それなりの深さを持つコールスタックと状態を持つオブジェクト指向を使い続けるならそういうことになるだろうね でもホットスワップだとかインクリメンタルコンパイルとか無茶しやがって…って技術をこれまでも早期結合派は編み出してきたわけだから (君は無理っぽいが)その便利さが分かる人がいれば、いつかコンテキストを実行せずに知る技術もひねり出されるんじゃないかな
|
- オブジェクト指向ってクソじゃねぇよ? Part2
978 :デフォルトの名無しさん[sage]:2018/11/22(木) 14:48:36.51 ID:DWgniQ0o - >>977
コンテキストは実行時情報で型情報ではないよ?
|
- オブジェクト指向ってクソじゃねぇよ? Part2
982 :デフォルトの名無しさん[sage]:2018/11/22(木) 17:27:01.89 ID:DWgniQ0o - >>979
> OOPのメリットと言う上記全てがCommonLispでも可能 アラン・ケイは彼のOOPで目指した「決定の遅延」がLispでも(というかSmalltalkとLispのみで)可能と述べていますから当然ですね 「決定の遅延」を「メッセージング」というメタファー(まあ実際に送るのでもいいのですが)を使って目指すのがケイのOOPなので 「メッセージング」を使わずとも「決定の遅延」は実践可能だからこれは(ケイの)OOPの本質ではないという指摘は 主客を取り違えています。 同様のことはビョーン・ストラウストラップらの「ユーザー定義型をクラス(様エンティティ)でやる」アイデアのOOPについても言えて ユーザー定義型(データ抽象、抽象データ型)はクラスのない××言語でもできるから、これはOOPの本質じゃない!という指摘も やはり的を外しています
|
- オブジェクト指向ってクソじゃねぇよ? Part2
984 :デフォルトの名無しさん[sage]:2018/11/22(木) 17:33:23.62 ID:DWgniQ0o - >>980
書いてあるじゃんw 実行時のもろもろの情報だよ コールスタックだったり、インスタンス変数情報だったり、テンポラリー変数情報だったりとにかく様々だよ もちろん型情報も含まれるけど「イコール」ではない
|
- オブジェクト指向ってクソじゃねぇよ? Part2
986 :デフォルトの名無しさん[sage]:2018/11/22(木) 17:44:37.74 ID:DWgniQ0o - >>983
別に言語のみにこだわる必要はないと思うよ?どうしてそんなふうに思う? とにかくSmalltalkを気にしすぎだよ 他のレイヤーでできているならそれでいいと思うよ Smalltalkについては学習コストを鑑みて 全てをオブジェクトとそれへのメッセージングというシンプルなドグマで解決できるならベターだし 言語(というかOSモドキ)ならそういう世界を比較的簡単に実現し、そこでの実践を通じて実用性の検証ができるというだけの話だろう
|
- オブジェクト指向ってクソじゃねぇよ? Part2
988 :デフォルトの名無しさん[sage]:2018/11/22(木) 17:45:51.26 ID:DWgniQ0o - >>985
> つまりデバッガとブレークポイントによって実現できること そこからまたエディタに戻って定義して再実行して…って手間は俺はいやだなって話をずっとしている
|
- オブジェクト指向ってクソじゃねぇよ? Part2
989 :デフォルトの名無しさん[sage]:2018/11/22(木) 17:47:36.57 ID:DWgniQ0o - >>987
これはかなり近いかなと思って試してみたことあるけど、変更が反映されないんだよね 結局再実行は必要
|
- オブジェクト指向ってクソじゃねぇよ? Part2
993 :デフォルトの名無しさん[sage]:2018/11/22(木) 17:52:45.81 ID:DWgniQ0o - >>990
> それはSmalltalkぐらいだからだよ そりゃそうだよ 今のところLispとSmalltalkくらいしかできないことのさらに高みを目指そうっていう話なんだから… 早期結合派は誰か目先の利く人が無茶をして実現された技術が導入されて普及しないかぎり永久に理解できない話だと思うよ
|
- オブジェクト指向ってクソじゃねぇよ? Part2
995 :デフォルトの名無しさん[sage]:2018/11/22(木) 17:56:02.22 ID:DWgniQ0o - 昔はホットスワップなんてアクロバチックな機能はいらない
インクリメンタルコンパイルなんてコンパイル速度が速ければいらないだろとか言ってたクチじゃないの?
|
- オブジェクト指向ってクソじゃねぇよ? Part2
996 :デフォルトの名無しさん[sage]:2018/11/22(木) 18:10:45.29 ID:DWgniQ0o - 図星かw
Smalltalkが「決定の遅延」を実践し難なく実現したアクロバチックな便利機能を 早期結合派の有志が無茶をしつつも実現し普及させ、君みたいな想像力に乏しい人でもしたり顔でその恩恵にあずかれる いい話じゃないか
|