Messaging vs. subroutines

Glenn Krasner krasner at objectshare.com
Thu May 20 17:32:16 UTC 1999


I've always thought that "method" was inferior to "function". (Of course, I
may have always been wrong.)

The arguments made on this list, pro and con, about "method", "message",
"object", etc. as to whether it would have been better to reuse terminology
from other programming languages or use a new term, it seems to me, also
apply to "class", "variable", "statement", "expression", "code", "number",
or many other terms that Smalltalk did reuse. I see as much validity in
rejecting "variable" or "expression" on the grounds that Smalltalk's
semantics for those is (or could be) dramatically different from the
semantics in other languages, so to use similar terms would mislead
programmers into never realizing the beauty of the Smalltalk semantics.
Similarly, I see as much validity in accepting "variable" or "expression"
becuase they help the beginner and eventually the beauty is understood by
the enlightened.

I don't believe there's a single value function that could determine which
are and are not the best terms. For me, the Smalltalk terms, both borrowed
and invented, are all pretty good choices,  except for "method", for which
I think "function" would have been better (but retain "mesage").

The choice of "best" terms probably changes over time. In the early '90s,
for example, ParcPlace made a correct choice to drop the term "Virtual
Machine" from our lexicon--no customer understood what we meant--and to use
"ObjectEngine" instead, which did communicate to customers. Nowadays,
becuase of you-know-what (and unfortunately, I don't mean Squeak),
customers are totally confused by "ObjectEngine" and very much understand
and prefer "Virtual Machine". Since you-know-what also reused "method" from
Smalltalk, I don't expect it ever to change, even to a better term.

glenn





More information about the Squeak-dev mailing list