[Newbies] Re: Smalltalk Data Structures and Algorithms

Alan Kay alan.nemo at yahoo.com
Fri Jul 24 14:50:35 UTC 2009


To WIMC

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.

Objects
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)

Smalltalk
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)

Alan



> From: Benjamin L. Russell <DekuDekuplex at Yahoo.com>
> Date: 24. Juli 2009 03:37:04 GMT-03:00
> To: beginners at lists.squeakfoundation.org
> Subject: [Newbies] Re: Smalltalk Data Structures and Algorithms
> Reply-To: "A friendly place to get answers to even the most basic questions about Squeak." <beginners at lists.squeakfoundation.org>
> 
> On Mon, 29 Jun 2009 11:25:34 +0530, "K. K. Subramaniam"
> <subbukk at gmail.com> wrote:
> 
>> Concepts in Squeak have their origins
>> in biology rather than in computational math. The boundary between 'hardware'
>> 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
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/beginners/attachments/20090724/841aea73/attachment-0001.htm


More information about the Beginners mailing list