Features Download

From: Alan Kay <alan.nemo <at> yahoo.com>
Subject: Re: Smalltalk Data Structures and Algorithms
Newsgroups: gmane.comp.lang.smalltalk.squeak.beginners
Date: Friday 24th July 2009 14:50:35 UTC (over 9 years ago)

This is an interesting example of an ever increasing web disease -- that
is: expressing mere opinions without foundations or checking. This one is
easy, because there is a readily available "Early History of Smalltalk"
that the ACM got me to write in 1993. So why wouldn't people just type
"history of smalltalk" into Google? (I don't know and I haven't been able
to figure this out). 

The very first hit finds this paper. (This one is not the best version of
it because someone just scanned the doc I wrote to get an HTML version and
left out lots of the pictures. But in looking at it, it seems to answer
this question very straightforwardly -- and that answer was given by
"someone who was actually there" and had a hand in the invention of
Smalltalk, rather than people with opinions from the side.)

What is wrong? Why is mere opinion so dominating discussions held on the
easiest medium there has ever been that can provide substantiations with
just a little curiosity and work? Is the world completely reverting to an
oral culture of assertions held around an electronic campfire?

As anyone who would be willing to read a few pages of writing will be able
to see, there were a number of important influences on the invention of
objects and then the invention of Smalltalk itself.

a. The first two influences I saw were pure mathematics and molecular
biology (these were my two majors in college starting in 1958). 
b. The second two I saw (in the very early 60s) were procedural
abstractions of date structures in the Burroughs 220 file system for the
Air Force, and especially the Burroughs B5000 computer hardware. 
c. "In the air" in the ARPA community in 1966 was the intention to invent a
new kind of distributed network with "no central control or switching". 
d. The next two I saw (in 1966 in the very same week) were Sketchpad and
Simula. Sketchpad was the dominant metaphor, but I had to see Simula a few
days later to understand just how great an idea Sketchpad was. 

These seven influences got me to thinking about one abstraction that was
indeed like a biological cell on the one hand and an entire computer on the
other which could be universally used at all levels of scales in both
software and hardware to "model anything" (including all the old
inconvenient things computing was using). This is where "message passing"
took hold as something stronger in concept and more loosely coupled and
scalable system-wise.

Somewhat asked me what I was doing and I said "object oriented computing".
(I should have thought much harder about the choice of terms)

a. In 1968 I saw Seymour Papert, Wally Feurzig, et al., and LOGO and got
interested in the idea of a computer and computer environment for children.
Right around that time I read Marvin Minsky's incredible book "Computation:
Finite and Infinite Machines" and he made a kind of Lisp from Goedel
numbers that was really beautiful. This got me to look at Lisp again and
finally understand what was truly great about it. In 1970 I was at the
Stanford AI Project on a postdoc and I started playing around with various
kinds of interpreters.

b. In 1971 at PARC we had the wonderful funding to be able to try to really
make all this happen, and I started thinking about a programming language
for children that would not be harder to learn than LOGO but which would be
object oriented and also use Carl Hewitt's ideas in PLANNER as a way of
communicating in forms that could be used for deduction (this was somewhat
like the object-oriented Prologs that were done much later).

c. In 1972, while working on all this "the bet" happened and I spent a few
weeks just making the simplest possible OOP language using McCarthy's
techniques first employed for Lisp in the late 50s. This is in the Appendix
of the "Early History" paper, and it is what Dan Ingalls implemented in a
month to get a first running version of Smalltalk.

I most definitely still think of OOP at its best as being "biological".

Best wishes (and happy reading)


> From: Benjamin L. Russell 
> Date: 24. Juli 2009 03:37:04 GMT-03:00
> To: [email protected]
> Subject: [Newbies] Re: Smalltalk Data Structures and Algorithms
> Reply-To: "A friendly place to get answers to even the most basic
questions about Squeak." 
> On Mon, 29 Jun 2009 11:25:34 +0530, "K. K. Subramaniam"
>  wrote:
>> Concepts in Squeak have their origins
>> in biology rather than in computational math. The boundary between
>> and 'software' is blurry. See the reading list at
>>  http://www.squeakland.org/resources/books/readingList.jsp
>> particularly "The Selfish Gene" by Richard Dawkins.
> Richard O'Keefe refutes this claim in his post [1] "Re: Re: [Haskell]
> Re: 20 years ago," dated "2009-07-16 01:38:14 GMT," on the
> Haskell-Cafe mailing list (see
> http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61329);
> _viz._:
>>>> Concepts in Squeak [a dialect and implementation of Smalltalk] have
>>> their origins
>>>> in biology rather than in computational math....
>> That posting is wrong.
>> Smalltalk's roots are very firmly planted in Lisp,
>> with perhaps a touch of Logo (which also had its roots in Lisp).
>> The classic Smalltalk-76 paper even contains a meta-circular
>> interpreter, which I found reminiscent of the old Lisp one.
>> The "biological" metaphor in Smalltalk is actually a SOCIAL
>> metaphor: sending and receiving messages, and a "social"
>> model of agents with memory exchanging messages naturally
>> leads to anthropomorphisms.
>> The other classic OO language, which inspired C++, which
>> inspired Java, which inspired C#, is Simula 67, which has
>> its roots in Algol 60.  While Simula 67 was sometimes used
>> for simulating biological processes, the main background
>> was discrete event systems like factories and shops; there
>> are no biological metaphors in Simula.
> -- Benjamin L. Russell
> [1] O'Keefe, Richard. "Re: Re: [Haskell] Re: 20 years ago."
> gmane.comp.lang.haskell.cafe. Gmane. 16 July 2009. 24 July 2009.
> <http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61329>.
> --Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
> http://dekudekuplex.wordpress.com/
> Translator/Interpreter / Mobile:  +011 81 80-3603-6725
> "Furuike ya, kawazu tobikomu mizu no oto."
> -- Matsuo Basho^
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
CD: 85ms