From:
"Mark S. Miller" <markm@erights.org>
Replying To:
Tyler Close <tyler@lfw.org>
Date:
Tue, 03 Nov 1998 20:34:35 -0800
Subject:
Re: Types, Makers, and Inheritanc
At 01:33 PM 10/20/98 , Tyler Close wrote:
>At 09:48 AM 10/20/98 -0700, you wrote:
>>[-] Rule #1 of Capability-based Design: Distinctions in authority are
>>represented with distinct objects.
>
>[?] I understand and agree with this design principle; however, I am not sure
>that I see how it applies. Exactly what authority does a type object give
>you? I don't see that it can in any way add to the way that you interact
>with an instance object.
[-] Yes, the type gives no authority. But the maker does.
Therefore, they're distinct.
>>Programs must be able to manipulate
>>descriptions of objects and their protocols (i.e., type objects) without
>>granting the authority to create instances.
>
>[?] Could you explain exactly what kind of manipulation you're talking about?
[#] Does this possible gun respond to the "shoot" message?
>>It's useful to be able to
>>talk about the protocol of bank accounts, create user interfaces to them,
>>etc. without allowing the construction of them outside of banks. This
>>means that they must be separate objects.
>
>[-] I don't see how it's necessary to have Type objects in order to have an
>interface to an instance object. In C++, I never had a need or desire for
>Type objects.
[?] Really?
Are you not the one, at the foresight-office meeting, that approved of the
ability to ask an object about its protocol?
>While Type objects do represent a different concept than Maker objects, I
>feel comfortable that I can get by just fine without Type objects.
[-] Protocol descriptions are needed.
As an example, how would you write a GUI-enhanced command interpreter where
the user can pop up a menu of all the messages they can send to a given
object? In Java 1.0, which had no protocol for asking an object about its
protocol, I cannot imagine a way to do such a command interpreter.
It would have been hard travelling in Prague if it were impossible to ask
"Do you speak English?".
> Going without Type objects might even encourage better designs.
[?] How so
[++++] You are pushing in a good direction.
I just wanted to emphasize that I appreciate your vigorous efforts to get
rid of things. It is proper that I be pushed to try to justify everything
I don't get rid of. a) We probably will find some things to get rid of,
and b) at least we'll learn something. Even if it seems I always say no,
and even if I use reasons you find repugnant, please keep pushing. Thanks!
You keep pushing, and I'll Popper,
--MarkM