Squeak (ST80) syntax

Travis Griggs tgriggs at keyww.com
Thu Feb 17 01:26:19 UTC 2000


agree at carltonfields.com wrote:

> > At that point, it got really fun.
>
> *snip*
>
> > Then it came to classes.
> > What's a class? A class is a kind of Thing. So, it got renamed.
> > Kind.
>
> Right, but now, substituting "Kind" for "class" in the preceding sentence, we have
>
>         "A Kind is a kind of Thing."
>
> > That was easy to explain to my wife.
>
> Do we need to be able to explain things informally to make things easy to understand?  Don't we risking confusing ourselves?  Consider:
>
> > When we got talking about Kinds of Things,
>
> Well, Kinds *ARE* Things that *ARE* kinds of Things.
>
> > the whole notion of classification became much more tractible.
>
> I'm dizzy already.
>
> > Vehicle was a Kind of Thing.
>
> I thought Vehicle was a Kind!  Oh, its both a Thing and a Kind, or is it a kind of Kind?
>
> > Car was a Kind of Vehicle.
>
> Car certainly is a kind of Vehicle, but is it a Kind (Class) of Vehicle?  Is subclass a Kind relationship?  Is it a Kind of Thing or a Kind of Vehicle?  (I am obviously making this tortured, not to show that the terminology is untenable, but that it risks abuses that are likely to confuse.  Consider:
>
> >And a particular instance of a Car was a Kind of Car.
>
> So, a subclass of a Kind is a Kind of a Kind.  But an instance of a Kind is also a Kind of Kind?
>
> >The message kind was implemented in Thing to return class.
>
> and now, we have
>
>         aCar kind == Vehicle
>
> is false (aCar kind == Car), but
>
>         aCar isKindOf: Vehicle
>
> is true!
>
> Ok, ok, ok.  I know I went overboard beating on a pretty neat idea.  It's late and I'm at the office in the middle of preparing for a nasty hearing, so I have my advocates hat on.  I enjoyed reading the thread as well, and think it has much to teach us.
>
> My point is that the distance we have from words like Object, Class and subclass is USEFUL, in precisely the way they free us up to use informal language without self-referential confusion (and opportunities for mind-numbing bugmaking!).  They seem to suggest enough, and no more, to get us over the brink in confusing ourselves, but remind us, when we use the words, that we mean a specific programming concept, and not the informal use of words.

When I did this stuff, it was somewhat rough. I remember being a little perplexed about how to deal with this, because some behind the scenes stuff got kind of funky. Metaclass for example got turned into KindOfKind. And kindOfKind was what one had to send to get the class when on the class side. OTOH, one of the things that got brought home to me during these explorations was why people get excited about classeless OO systems. In a prototype
based system the single dimensional interpretation of kind becomes a little more tractible.

--
Travis Griggs (a.k.a. Lord of the Fries)
Member, Fravenic Skreiggser Software Collective
Key Technology
P-P-P-Penguin  Power!






More information about the Squeak-dev mailing list