Object: Identity vs. Environment
John W. Sarkela
sarkela at sbcglobal.net
Wed May 28 14:26:46 UTC 2003
On Tuesday, May 27, 2003, at 11:17 PM, Andreas Raab wrote:
> Hi Joel,
>
[... snip ...]
>> In the croquet doc:
>> http://glab.cs.uni-magdeburg.de/~croquet/downloads/Croquet0.1.pdf
>>
>> "This means that a user only has to think of one syntax-semantic
>> relationship. *Receiver message* means *the meaning is in the
>> receiver*"
>> (*'s around italics)
>>
>> In the example of #isFoo, following the above guideline would
>> certainly preclude #isFoo being placed on Object.
>
> No, quite to the contrary. It merely means that all objects are
> capable of
> responding to #isFoo without having to make specific assumptions about
> the
> kind of object. In other words, putting the method #isFoo into Object
> _enables_ us to put the true meaning into the receiver rather than
> having to
> make assumptions about the kind of object we're dealing with.
>
> Cheers,
> - Andreas
>
Andreas is absolutely right on this account. A single hierarchy will
never satisfy all programmer intents when drawing distinctions. Thus,
it has become a Smalltalk idiom to use predicates of the form #isFoo to
allow us to draw the distinction between all things Foo and all things
not Foo. Since the space that is being cleaved by the distinction
#isFoo is the space of Objects, it is mathematically most correct to
define isFoo in Object to return <false> and override that definition
to return <true> for all classes whose instances belong to the
distinction Foo. In fact, there may even be classes whose instances
need to introspect to determine their Fooness. Note, that even though
this behavior is introduced in the distinction of Object, it is up to
each individual object to introspect to determine how it responds to
the message #isFoo, and the sender needn't know how the receiver
determined its answer.
The point is that #isFoo is a distinction. A distinction that cleaves
the space of objects. Thus one definition in object class sets the
stage by implicitly saying once "everything not declared to be a Foo is
most certainly not a Foo.
I strongly urge everyone on the list to read "The Laws of Form" by G.
Spencer Brown. It is a deeply profound little book. It is also the only
math book I am aware of that dares to talk about the meaning and intent
of its basic terms.
:-}> John Sarkela
More information about the Squeak-dev
mailing list
|