Messaging vs. subroutines

Joachim Durchholz joachim.durchholz at munich.netsurf.de
Thu May 20 20:03:24 UTC 1999


John Sarkela wrote:
> 
> Joachim Durchholz wrote:
> >
> > John Sarkela wrote:
> > >
> > > When I used to teach Smalltalk I would often have a copy
> > > of Webster's Ninth New Collegiate dictionary. If one looks
> > > up the definitions of class, object, message, method and
> > > framework, one will discover that Smalltalk is the language
> > > that avoids jargon. These words mean precisely what they
> > > mean in everyday parlance.
> > >
> > > So, I would put forth that it is Smalltalk that has traditionally
> > > eschewed jargon. This isn't mysterious terminology to an
> > > English speaker. An object is an object. A message is a message.
> > > A method is a method.
> >
> > Bzzt, wrong.
> >
> > An object in Smalltalk parlance is not a physical object. It does
> > not necessarily have a weight, a color, or whatever physical objects
> > have.
> >
> All definitions in this message are according to Websters New World
> Dictionary 2nd edition (it's handy)
> 
>         object  [...] 4.a noun or substantive that directly or
>           indirectly receives the action of a verb or one that
>           is governed by a preposition.
> 
> Nothing about physicality inherent in that definition. I'm not
> at all sure what a gerund looks like after all. ;-)

This is the grammatical definition of an object. I thought we were
talking everyday meanings here.

> > A Smalltalk message is not an everyday message. A Smalltalk message
> > is an instruction to the receiver to do something specific. An
> > everyday message is just a bit of information that is passed to
> > somebody.
> 
>         message 1. a communication passed or sent between
>           persons by speech, in writing, by signals, etc.
> 
> I would argue that the fundamental point of Smalltalk is that all of
> computing can be boiled down to entities passing bits of information
> to each other.

So do subroutines. Or any other information-passing mechanism. By the
above definition, *everything* is a message send.
What makes Smalltalk messages interesting is that they have specific
limitations lifted and other limitations still enforced. (You cannot
pass more or less parameters than the number specified in the message
signature; you can only send messages that are defined by the receiver;
a message always implies an answer; other restrictions in the same
vein.)
In other words, if I use the above definition, the sentence "Smalltalk
uses messages for inter-object communication" has an information content
of exactly zero. Maybe that's the real reason why I don't like the
message send terminology.

> > A Smalltalk method is a step-by-step description of what to do. An
> > everyday method is often a much more fuzzy thing; a set of
> > principles, promises ("do this and you'll easily get a useful
> > result"), step-by-step instructions. I.e. an everyday method may
> > contain step-by-step instructions, but not necessarily so.
> >
> 
>         method 1. a way of doing anything; mode; procedure; process;
>            esp. a regular, orderly definite procedure
> 
> I would once again assert that a Smalltalk method is quite adequately
> defined as a regular orderly definite procedure.

Yes. But you're just quoting one of several meanings. An OOA method is
very unlike a Smalltalk method.

> > What *can* be said is that Smalltalk jargon uses some very intuitive
> > metaphors. But even those Smalltalk metaphors are just that, and
> > once you reach their limits, they won't help you anymore (and might
> > even hinder you).
> 
> I stand by my statement that Smalltalk usage of object, message,
> method, class, and framework were chosen precisely to avoid
> the use of jargon. The standard definitions do indeed accurately
> describe their referents.

> > > No mystery if you haven't been conditioned by traditional
> > > programming languages.
> >
> > I'll admit any day that I'm conditioned by years of using
> > traditional programming languages. However, I think anybody who
> > claims he isn't conditioned by his working environment and
> > terminology just hasn't noticed the conditioning yet.
> > The "anybody" in the sentence above is intentional. I don't think it
> > is possible to program a computer without giving up some of the real
> > world concepts. In fact doing a full simulation of the world would
> > be fruitless; the world itself is its best and most accurate
> > simulation :)
> > So what computers are good for is not doing objects, it's doing
> > abstractions. Computer objects have been observed to be one of the
> > best ways of doing such abstractions; the Smalltalk terminology
> > provides some very useful metaphors that make thinking about the
> > abstractions inside the computer easier. But that doesn't mean that
> > a Smalltalk message send is the same as a real-world message send.
> 
> "The map is not the territory." Count Korzybski

Exactly my point. And a Smalltalk message is not a real-world message as
you claim.

Regards,
Joachim
-- 
Please don't send unsolicited ads.





More information about the Squeak-dev mailing list