Thinking about a better UI

Joachim Durchholz joachim.durchholz at
Sat May 15 18:54:11 UTC 1999

"Randal L. Schwartz" wrote:
> >>>>> "Joachim" == Joachim Durchholz <joachim.durchholz at> writes:
> Joachim> This was one of my initial grudges against Smalltalk: Lots of
> Joachim> new words meaning just the same old stuff, making it
> Joachim> difficult to understand what was really new about Smalltalk.
> Joachim> Just try it:
> Joachim>   Smalltalk terminology   Standard terminology
> Joachim>     method                  subroutine
> Joachim>     message send            subroutine call
> Joachim>     object                  data structure
> Joachim>     self                    first parameter
> Saying a message send is a subroutine call is akin to calling "a car"
> just "a slightly faster horse".  You damage the ability to grok the
> differences by misnaming it.

OTOH you damage the ability to find the similarities. It took me several
hours of concentrated tracing the call/return mechanisms of the VM
description to be sure that the subroutine call is definitely the usual
parameter passing / control transfer / result determination / control
transfer back to caller routine that I knew from all standard languages.
I found it telling that I had to grok a large part of the VM description
to be sure of this (and I wasn't really sure at that time). And I was
under the impression that they were overstating the differences and
totally ignoring the similarities.

> The wrong model is deadly.  It limits thinking -- you won't even know
> to ask questions about what you don't know, in terms of the
> differences.

Yup. And denying a tight relationship between message sends and
subroutine calls *is* the wrong model.

> A "message send" is NOT a subroutine call.  Even calling it one
> doesn't make it one. :)

Right. The selection of the subroutine to call is different (dynamic
dispatch, in contrast to static linking for conventional languages).

Please don't send unsolicited ads.

More information about the Squeak-dev mailing list