Re: Clean Object Class Design -- Circle/Ellipse
Date: Sun, 02 Sep 2001 15:43:54 GMT
"Bob Badour" <bbadour_at_golden.net> wrote in message
> James A. Robertson wrote in message <3B906770.E1C0185E_at_mail.com>...
> >Bob Badour wrote:
> >> James A. Robertson wrote in message <3B8A6798.A8F25218_at_mail.com>...
> >> >> >1) Smalltalk is a crappy language
> >> >>
> >> >> Actually, I said it is just as crappy as C++, which does not say it
> >> >> crappy.
> >> >>
> >> >
> >> >Can you list your specific complaints?
> >> We can start by observing that Smalltalk, like C++, makes insufficient
> >> distinction between values and variables.
> >hmm - C++ variables and Smalltalk variables are entirely different,
> >leading me to wonder how well you know Smalltalk.
> I know that variables change while values do not. If Smalltalk gets
> something this fundamental entirely wrong, then it is much worse than C++.
>> >a variable as a type, thus determining the specific storage type to be
> >In C++, one declares
> >used by that variable.
> This is one way to make insufficient distinction between value and
> >In Smalltalk, variables are not declared as
> >being of a specific type - they are references to arbitrary objects.
> And the "arbitrary objects" are themselves variables. ie. They might
Or might not. A variable can hold onto 5. 5 does not change.
>> >Smalltalk, a variable doesn't have to reference any particular kind of
> Neither does an object reference in C++.
> >> Perhaps, Richard would like to list his specific complaints that are
> >> pertinent to the discussion at hand? Or would you like to offer one or
Specifically, you're making an error that may or may not be important.
Smalltalk has Objects that are values.
You've been asked what you would call the thing/type/whatever that is both variable and value. I don't think you answered. I assume its a concept that is foreign to you and hence irrelevant. Well, for an OOist, that thing is Object. You may have something useful to say, but since we part company at such a fundamental level, its hard to know.
> >> >> >2) Instances are not values.
> >> >> >
> >> >> >Since Smalltalk *has* instances that are values (the number
> >> >> >5 comes mind),
> >> >>
> >Generally (In VisualWorks, most others are roughly similar), a variable
> >references an object.
> A named variable references an object variable.
> >In fact, it refs an object header, which in turn
> >refs the actual object.
> In fact, it refers to an object header variable, which in turn refers to
> actual object variable.
> >> >objects, where the header actually holds the object (SmallInteger
> >There are exceptions; one can have 'immediate'
> >objects, for instance).
> There are exceptions; one can have 'immediate' object variables, where the
> header variable actually holds both the header variable and the object
> >For the developer, this doesn't actually matter.
> Except that Smalltalk makes insufficient distinction between value and
> variable preventing the developer from establishing proper, natural
How do you know this?
> >In fact, if you think
> >it matters, then you are paying way too much attention to detail.
> None of the irrelevant details you mentioned in your post matter. It only
> matters that Smalltalk makes insufficient distinction between values and
> variables, which I think you have amply demonstrated.
When people talk at cross-purposes, they generally come out of the discussion with the same pre-ordained opinions they went in with. As an observer, I don't see how your conclusion has been demonstrated. Received on Sun Sep 02 2001 - 17:43:54 CEST