Message passing rather than object orientation
kenkahn at toontalk.com
Sat Oct 13 03:20:32 UTC 2001
Alan Kay wrote:
> I think after Carl heard about Smalltalk in Nov 72, and saw some
> of the examples, he was able to come up with some valuable
> characterizations of control structures and objects. Unfortunately
> for posterity, neither the PARC group or the MIT group really was
> able to implement a practical enough version of the deeper scope of
> these ideas. (Part of the problem is that something like
> zero-overhead, large number of processes are needed to really do the
> job.) Recently Andreas Raab has done some remarkable experiments with
> very large numbers of very low overhead processes in Squeak which
> bodes well for the future.
I should learn more about what Andreas has done (and Squeakers should look
at how Mozart/Oz has done something similar - visit www.mozart-oz.org ).
Concurrent logic programming languages never had a problem getting zero
overhead processes since it is easy to make a process feather weight in a
language in which there is no primitive way of expressing sequential
computation. There is no stack or calling context. (When you need
sequentiality you need to program it yourself as a kind of data flow
dependency. This can be a bit awkward but it is rare enough and keeps the
underly model and engine nice and simple.) Even in the 1980s we (and the
Japanese 5th Generation Project) had programs with tens or hundreds of
thousands of processes running perfectly well.
> Ken, what are your current thoughts about what should be done (now 12
> years after the ECOOP paper)?
I have two completely different answers depending upon whether one is a
revolutionary or not.
1. Revolutionary answer. Don't let the past hinder you. As you used to say
"burn the disk packs". I would continue to explore the family of languages
Vijay Saraswat called Concurrent Constraint Programming in his CMU thesis
(1989). I would try to combine the best of ToonTalk ( www.toontalk.com )
with these more textual languages. I think great things can be made and
great things discovered. But I still don't have a good answer to the
question that Mark Weiser asked me 12 years ago - "how can the world get
from where it is to where I see it should go?" Maybe ToonTalk is an answer
if we just wait 20 years for these kids to grow up.
2. Evolutionary answer. Start from where most programmers are today (maybe
C++ or Java) and give them small enough steps forward that the chance of
success is great enough. Some of the things that should be part of an ideal
language can be provided in libraries. It can get pretty ugly but at least
the ideas become widely diseminated.
To me Squeak is revolutionary without being radical anymore. I think if you
are going to be revolutionary you may as well also explore radically
different models of computation.
-ken kahn ( www.toontalk.com )
More information about the Squeak-dev