[Haskell-cafe] Re: [Haskell] Re: 20 years ago

Richard O'Keefe ok at cs.otago.ac.nz
Mon Jul 27 21:35:09 EDT 2009


On Jul 27, 2009, at 6:30 PM, Benjamin L.Russell wrote:
> Incidentally, just for the record, in response to my forwarding your
> claim, Alan Kay, the inventor of Smalltalk, just refuted your
> refutation [1] (see
> http://lists.squeakfoundation.org/pipermail/beginners/2009-July/006331.html) 
> ;
> _viz._:

If you read carefully what he wrote there,
it doesn't actually contradict what I said.
(For what it's worth, I _have_ read a good deal of
Alan Kay's writings.)

Molecular biology may very well have been an influence
on >Alan Kay<, but there are no traces of it in >Smalltalk<.
The concepts of >Smalltalk< have their roots in Lisp,
including the original version using nil as false, and
the meta-circular interpreter.

Sketchpad and Simula also have no trace of biology in them.

As for the claim that Smalltalk had its roots in Lisp,
this is not my opinion.  It's straight from the horse's
mouth.  Visit

http://www.smalltalk.org/smalltalk/TheEarlyHistoryOfSmalltalk_IV.html
whose title is "The first real Smalltalk", and you will read
this paragraph:

"I had orignally made the boast because McCarthy's
  self-describing LISP interpreter was written in itself.
  It was about "a page", and as far as power goes,
  LISP was the whole nine-yards for functional languages.
  I was quite sure I could do the same for object-oriented
  languages plus be able to do a resonable syntax for the
  code a loa some of the FLEX machine techiques."
[Errors in the page.]

So clearly Alan Kay _was_ influenced by Lisp,
and the initial Smalltalk-72 implementation _was_
influenced by the Lisp meta-circular interpreter.

While we're on that page, here are the six core principles:
   1. Everything is an object
      [Where's the biology in that?  Rocks are objects.]
   2. Objects communicate by sending and receiving messages
      (in terms of objects)
      [Where's the biology in that?  Sounds more like the
      telephone system.  And when organisms send messages
      to other organisms, those messages are not themselves
      organisms, although that might make a neat gimmick for
      a science fiction story.]
   3. Objects have their own memory (in terms of objects)
      [Many organisms have memory.  But their memories are
      not themselves organisms.  Again that might make a
      nice science fiction gimmick, and Brin's hydrogen
      breathers in the Uplift series come close.  Not in THIS
      biology though.]
   4. Every object is an instance of a class
      (which must be an object)
      [Maybe here's the biology?  But no, Simula 67 had
      single-inheritance classes, with never a trace of
      biology.  There's certainly no biology-talk in the
      Simula Common Base manual that I can find.  Again, in
      THIS biology, a taxon is not itself an organism,
      so if anything, Smalltalk is contradicting biology.]
   5. The class holds the shared behavior for its instances
      (in the form of objects in a pogram list)
      [Errors in the page.  Where's the biology here?
      Organisms behave, but their behaviour isn't made of
      organisms held in another organism.  Class as site of
      shared behaviour is straight Simula (and of course
      other sources).]
   6. To eval a program list, control is passed to the first
      object and the remainder is treated as its message
      [Does that look like biology to you?]

A PDF of the whole thing is
http://www.smalltalk.org/downloads/papers/SmalltalkHistoryHOPL.pdf

But how important is that paper anyway?
(1) It's by Alan Kay.
(2) It's his official history of Smalltalk.
(3) It actually says on the second page "I will try to show
     where most of the influences come from."

It's true that the abstract speaks of "a more biological
scheme of protected universal cells interacting only through
messages that could mimic any desired behavior", but that's
basically _it_ for biology, if we are to believe Kay, and
even then, "its semantics are a bit like having thousands of
and thousands of comptuers all hooked together by a very fast
network" and "Philosophically, Smalltalk's objects have much
in common with the monads of Leibnitz" (bringing us neatly
back to Haskell (:-)).

We read "The biggest hit for me while at SAIL in late '69 was to
_really understand_ Lisp".

By the way, Haskell programmers should really appreciate
the anecdote on page 13 about programming
	odds_evens x = odds x ++ evens x
           where odds []        = []
                 odds (x:xs)    = x : evens xs
                 evens (_:x:xs) = x : evens xs
                 evens _        = [].
It took him about 5 seconds to do about that way, while it
took Allen Newell "30 minutes to not quite solve".

At any rate, the paper which is supposed to trace "most of
the influences" doesn't link even *one* idea in Smalltalk
to biology.  The influences are other programming languages,
notably Lisp, Simula, and the ever-famous Sketchpad system,
philosophy, programming, computer networks, ...  As for the
"biological" nature of message passing, the paper says (p50)
	"An extemporaneous talk by R. S. Barton at Alta ski
	 lodge (1968) about computers as communication
	 devices and how everything one does can easily be
	 portrayed as sending messages to and from, was the
	 real genesis of the current version of SMALLTALK."

Biology?

I repeat, this is not MY interpretation or history.
My claim was solidly based on what Alan Kay himself wrote.



More information about the Haskell-Cafe mailing list