Messaging *IS* a Mainstream Terminology
Joachim Durchholz
joachim.durchholz at munich.netsurf.de
Fri May 21 20:39:55 UTC 1999
agree at carltonfields.com wrote:
>
> Joachim's argument is rooted upon the proposition that Smalltalk
> programmers should use a mainstream terminology, which he insists
> prefers terms such as "function," and "method,"
Not even "method". But that is an aside point; the substance of my
argument is presented correctly.
> to terms such as "messages," or "messaging," and since he feels that
> "message sends are just the same as functions."
The latter is a bit overstated (and has a terminological mix-up that I
hope I never wrote). I admit I said something like that in the heat of
the debate, but what I really mean is that message sends and subroutine
calls have a lot in common and the Smalltalk folklore doesn't
acknowledge that.
> He provides no substantive reason why the term "function call" is
> better than the term "message send," apart from his insistance that
> the latter is disused in favor of the former.
Correct. I don't like the construction "provides no substantive
reason... apart from" though; it's rather negative rhetoric.
> I have been unable to confirm his assertion. A review of
> object-oriented literature in my library suggests that opposite to be
> true: that "messaging" or "message send" is a mainstream (perhaps the)
> usage for the concept, and that the awkward phrase "member function
> call" isn't an overwhelmingly favored usage at all.
Well, the books on my shelf have a different slant. It's probably a
better idea to look at the shelves of a library.
> Let us consider James Gosling's view, which casts a striking contrast
> to Joachim's:
>
> "If an object wants another object to do some work on its behalf, then
> in the parlance of object-oriented programming, the first object sends
> a message to the second object."
Well, that's James's view of things. I don't accept authorities just on
the basis of words. I have seen lots of authorities presenting their
personal view of the world as unshakeable truth (and it's all too human
I guess; I don't hold it against them).
> Certainly it is true that some formal language specifications do use
> terms other than "message send," or "message passing" to define
> particular syntactic constructs in particular languagea, such as C++
> which uses the term "member function calls" (and which is expressly
> distinguished from mere "function calls").
Aside note: Member function calls are different in that there's no
object-dependent selection of function body to select for the call. (I'm
skipping a discussion of virtual vs. nonvirtual member functions here,
to keep this a small aside note.)
> Now, in the sense of full disclosure, I have done far more practicing
> of law than hacking since I left graduate school and since I sold my
> software publishing businesses. Accordingly, my libraries haven't
> been kept entirely up to date.
Hah! Caught you! :))
Seriously, I appreciate this. I hope we can cool down the battle heat a
bit.
> It may be that the more traditional uses have ultimately been usurped
> and wholly preempted by the term "member function call."
Probably. The only contestor for OO terminology has been Simula (which
predates Smalltalk by a bit if I'm right). And Simula never had that
evangelic drive that's inherent in Smalltalk's idea of creating a new
paradigm of computing, so the Simula terminology never quite made it
into the OO mainstream. (Just representing the situation; I don't see
evangelism as a good or bad thing in itself.)
There's one aspect to my argument that I'd like to add to complete the
picture:
Mainstream terminology isn't just OO terminology. The mainstream outside
the OO arena uses words like "subroutine" and "subroutine call". I
maintain that there's enough overlap between the concept of a subroutine
and a method that this should be acknowledged in some form.
I think that the extent of the overlap wasn't obvious initially, so I
don't hold the terminology against its creators. But I think the
similarities should be clearly spelt out; erecting artificial
terminological barriers is doing both Smalltalk and the computing
community in general a disservice.
I hope this discussion has been helpful in shedding some light on the
concepts that we all thought we knew; I've certainly learnt something
here, even if I don't fully disagree with everybody else's point of
view.
Regards, and thank you all very much,
Joachim
--
Please don't send unsolicited ads.
More information about the Squeak-dev
mailing list
|