Squeak (ST80) syntax

agree at carltonfields.com agree at carltonfields.com
Thu Feb 17 00:24:39 UTC 2000


> 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.





More information about the Squeak-dev mailing list