Messaging vs. subroutines

Dwight Hughes dwighth at ipa.net
Mon May 17 19:21:27 UTC 1999


> From: Joachim Durchholz <joachim.durchholz at munich.netsurf.de>
> Dwight Hughes wrote:
> >
> > I have attached Alan Kay's note to the Squeak list on meaages and
> > messaging below. Notice that Alan considers messaging to be far more
> > fundamental and important to Smalltalk than objects. My personal view
> > is that one can conceptually derive object oriented programming (and
> > all its related details) from the general concept of messaging -- that
> > a message can then be mapped to a machine level subroutine once
> > everything has been resolved is merely an implementation detail
> > relevant to current "normal" computer architectures, not a fundamental
> > relation.
> 
> Well, my idea of OO starts with polymorphism. Late binding aka dynamic
> binding aka virtual method dispatch aka current Smalltalk-80 message
> send is the tool that implements that, so my position isn't that far
> from the Smalltalk one.
> 
> I don't see the reasoning behind Alan's claims. Is there a place where
> he goes into more detail on *why* he thinks that messaging is central?
> 
> Regards,
> Joachim

I don't know of any specific published work on this, but as others have
noted: you _could_ just take Alan's word on this. :-) In "The History of
Smalltalk" (HOPL-II) Alan goes into some detail concerning the long,
twisted road taken to develop the concepts that led to a "pure"
object-oriented language -- the crucial understanding came when Alan
connected recursive design - where each part should have the power of
the whole - to computers and computing in general. The concept is to
recursively model a computation as an essentially unlimited number of
interconnected computers, each simulating a particular item or resource
in the computation, each responding to communications from the others to
carry the computation forward -- not as a computer containing locations
and data structures and code and processes to run the computation. Thus
all computation becomes a uniform process of sending messages to uniform
objects, which differ only in the set of messages meaningfully responded
to and in their response. And this leap was make so much more difficult
by precisely the subroutine/coroutine/procedure/process/load/store point
of view that you seem to be trying to hold on to.

Viewed in this light, Smalltalk's syntax is more like a network protocol
and the inheritance structure of the system just a hierarchically
arranged set of networked computation nodes. The Squeak VM contains a
number of basic optimizations and shortcuts to full message sends for
performance, but these could all be eliminated -- bringing the VM back
to a pure message sending engine (not even requiring conditional jumps
as part of the instruction set).

-- Dwight





More information about the Squeak-dev mailing list