オブジェクト指向ってなんだっけ?

「継承は害悪か?」から、オブジェクト指向について議論する基盤についての議論。
14
pokarim @pokarim

「継承は害悪か。」をトゥギャりました。 http://togetter.com/li/86313

2011-01-06 00:20:10
pokarim @pokarim

オブジェクト指向は、集合論<->圏論のアナロジーでいくと、とても集合論ぽく感じているんだけど、これはただの自分の個人的なイメージ。どうしたらちゃんとした議論にできるかな。

2011-01-06 00:11:11
pokarim @pokarim

オブジェクト指向の問題点を真剣に考えるためには、オブジェクト指向がなぜ便利なのか、もう一度分析しなおしてみるといいかもしれない。

2011-01-06 00:12:37
pokarim @pokarim

そうですね。クラス=集合ではないってよく言われますね。 RT @naka_aki_spl: 「クラスは集合」というより「クラスのある側面と集合のある側面は似てる」じゃないかな、とかは思うことはよく有る。

2011-01-06 00:19:34
Yasuo Nakanishi @nakanishiyasuo

結局の所、インターフェースを議論しないでオブジェクト指向を議論するのはムリだと思うんだけどな。インターフェースに比べたらオブジェクトなんてうんこ。

2011-01-06 00:19:22
非実在naka aki @naka_aki_spl

インターフェース?そんなものもあったなあ。ふぉっふぉっふぉ。

2011-01-06 00:20:35
非実在naka aki @naka_aki_spl

ところでどこのどのインターフェースの話だろう?Javaの?

2011-01-06 00:20:52
pokarim @pokarim

インターフェースって外部的な仕様の記述だと思うのですが、逆にその外部的な記述だけでプログラミングができないものでしょうか。RT @nakanishiyasuo: 結局の所、インターフェースを議論しないでオブジェクト指向を議論するのはムリだと思うんだけどな。..

2011-01-06 00:21:09
mzp @mzp

クラスってオブジェクトの集合じゃないんすか?なんかこう、ちょっと定義を工夫すれば集合として扱えそうな気がするんだけど

2011-01-06 00:21:57
非実在naka aki @naka_aki_spl

Javaのだとしたら「Javaのオブジェクトやクラスがうんこ」だというだけ、というオチもネタ帳に仕込んでおくべきかなとも思う。

2011-01-06 01:03:25
非実在naka aki @naka_aki_spl

「似てる面がある」ので、「流用する」ことは多分出来ると思う。クラスを集合として「流用」するかんじ。

2011-01-06 00:23:36
くっくっkura 🇯🇵🦀 @PG_kura

Togetterでは上っ面のデメリットだけを呟いてますが、あくまで継承はデータ構造と処理セットと具象化ガイドライン(しかも強い縛りのオマケ付)の3点セットを段ボールに詰めて手軽に抽象・再利用しようとするウルトラCだからこそ、不用意なデメリットを伴いやすいってだけなんですけどね。

2011-01-06 00:24:47
mzp @mzp

集合で形式化するより、○○で形式化したほうが便利!とかならありそう

2011-01-06 00:24:53
pokarim @pokarim

ぼくもそんなふうに思います。だれか解説希望。 RT @mzp: クラスってオブジェクトの集合じゃないんすか?なんかこう、ちょっと定義を工夫すれば集合として扱えそうな気がするんだけど

2011-01-06 00:25:51
非実在naka aki @naka_aki_spl

「なにが集合か」と言われたら「コレクション系のやつ。それこそSetクラスとか有るよなあ」と答えたほうが色々しあわせじゃないか、とか思ったりする。違うのかなあ。あるいはクエリつまりxxx.find_all{…} (rubyでいえば)とかさ。

2011-01-06 00:27:08
ドロップなんとか @yujiorama

クラスがオブジェクトの集合だったら、そのオブジェクトはどうやって定義されるの?って気がする

2011-01-06 00:29:28
非実在naka aki @naka_aki_spl

ところで(Javaとかの)Interfaceだと、「メソッド名が固定」なわけだけど、それしか選択肢が無いのってまずくないのかなあ? たしかww、.NETだと、handlesとかいって「継承するときに違う名前のメソッドで受ける」とか出来るんじゃなかった?あれいいね。

2011-01-06 00:28:55
ドロップなんとか @yujiorama

これは先人の議論が山盛りな話題な予感

2011-01-06 00:29:11
くっくっkura 🇯🇵🦀 @PG_kura

そんなのは使い手次第だという意見は正しいと思うが、全体のボトムアップは多くの程度問題同士の比較の上に為せると思う。継承に関しては使い手の技量・経験に依る品質のぶれ幅が他と比べて大きい上、お手軽で、後からの設計方向転換にやたら弱いっていう面もあるので代替があるなら欲しいのです。

2011-01-06 00:30:23
pokarim @pokarim

型理論についてちゃんと理解すればすっきりするんかな。CLTTとか読めと。

2011-01-06 00:31:25
シャミノ @syamino

とりあえずStructural subtypingについて考えればクラスについての固定的な観念を崩せますよと宣伝だけしておきたい

2011-01-06 00:35:10
非実在naka aki @naka_aki_spl

てか、よく分からんのだけどもしかしてそれって「オブジェクト指向」である以前に「集合指向」とでも呼ぶべきものだったりしないかな。オブジェクト指向をブートストラップさせるために先に集合指向のビルドアップが必要だ、とでも言うべきアーキテクチャ構成。

2011-01-06 00:40:47
非実在naka aki @naka_aki_spl

Structural subtypingめもめも。ところで「固定的な観念」ってどこの畑の固定だろう。色々あるから宗教戦争になりそうなんだがww

2011-01-06 00:35:35
pokarim @pokarim

それはわかります。むしろ自分の中では固定的な観念がくずれてOOが分解しつつあって逆にわかりにくい。人によって捉え方違うし。 RT syamino: とりあえずStructural subtypingについて考えればクラスについての固定的な観念を崩せますよと宣伝だけしておきたい

2011-01-06 00:36:28
佐原伸 @donkeyshin

少なくともSmalltalkやVDM++では、オブジェクトの集合ではありません。 "@mzp クラスってオブジェクトの集合じゃないんすか?"

2011-01-06 00:37:09