Thanks to everyone who replied to my post on this topic, especially Gary
and Brett!  I hope to find time to think about this a little more and
maybe type up a few more thoughts, but in the meantime, I got an
interesting message from Marcel Weiher on the MacOS X mailing list today
with some quotes from Alan Kay that I wanted to share (I didn't forward
the whole message because I didn't get a chance to ask Marcel if he
would mind.. I know the post was in a public forum but I don't want to
be impolite).  The comments on messaging being even more important than
objects gives me hope that REBOL truly is exploring a better path!

-------- Original Message --------

"Simula to OOP is moving to new things. Simula to ADT (Abstract Data  
Types: C++, Mesa, Ada) is moving on to better old things."

"Java and C++ make you think that the new ideas are like the old  
ones. Java is the most distressing thing to hit computing since  
MS-DOS."

"If you think programming is a small thing, that's why your programs  
are so large."

"There is nothing more inefficient than 10 years development on an  
OS that never runs. (Reference to the Apple "Pink" OS project.)"

All from Alan Kay's  OOPSLA 97 talk.

         http://www.cc.gatech.edu/fac/mark.guzdial/squeak/oopsla.html

Here is a longer message by Alan on the Squeak mailing list:

<Alan Kay Quote>
Just a gentle reminder that I took some pains at the last OOPSLA to try
to
remind everyone that Smalltalk is not only NOT its syntax or the class
library, it is not even about classes. I'm sorry that I long ago  
coined the
term "objects" for this topic because it gets many people to focus on
the
lesser idea.

The big idea is "messaging" -- that is what the kernal of
Smalltalk/Squeak
is all about (and it's something that was never quite completed in our
Xerox PARC phase). The Japanese have a small word -- ma -- for "that
which
is in between" -- perhaps the nearest English equivalent is  
"interstitial".
The key in making great and growable systems is much more to design  
how its
modules communicate rather than what their internal properties and
behaviors should be. Think of the internet -- to live, it (a) has to
allow
many different kinds of ideas and realizations that are beyond any
single
standard and (b) to allow varying degrees of safe interoperability
between
these ideas.

If you focus on just messaging -- and realize that a good metasystem can
late bind the various 2nd level architectures used in objects -- then
much
of the language-, UI-, and OS based discussions on this thread are
really
quite moot. This was why I complained at the last OOPSLA that --  
whereas at
PARC we changed Smalltalk constantly, treating it always as a work in
progress -- when ST hit the larger world, it was pretty much taken as
"something just to be learned", as though it were Pascal or Algol.
Smalltalk-80 never really was mutated into the next better versions  
of OOP.
Given the current low state of programming in general, I think this is a
real mistake.

I think I recall also pointing out that it is vitally important not  
just to
have a complete metasystem, but to have fences that help guard the  
crossing
of metaboundaries. One of the simplest of these was one of the
motivations
for my original excursions in the late sixties: the realization that
assignments are a metalevel change from functions, and therefore  
should not
be dealt with at the same level -- this was one of the motivations to
encapsulate these kinds of state changes, and not let them be done willy
nilly. I would say that a system that allowed other metathings to be
done
in the ordinary course of programming (like changing what inheritance
means, or what is an instance) is a bad design. (I believe that systems
should allow these things, but the design should be such that there are
clear fences that have to be crossed when serious extensions are made.)
</Alan Kay Quote>

Reply via email to