To Alan Kay,

Thank you very much for your detailed clarification.  I had actually
already started reading your paper [1] (at
http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html#29)
before Richard O'Keefe's response mentioned earlier [2] (see
http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61329), but
hadn't yet had enough time to read through it at that point.

Just for reference, here is how this misunderstanding apparently
occurred:

1) On the date "Mon, 29 Jun 2009
11:25:34 +0530," K. K. Subramaniam replied to me in the thread "Re:
Re: Smalltalk Data Structures
and Algorithms" [3] (see
http://lists.squeakfoundation.org/pipermail/beginners/2009-June/006270.html)
on the squeak-beginners mailing list as follows:

>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.

2) On the date "Mon Jul 13 08:35:06 EDT 2009," Bulat Ziganshin wrote
in the thread "[Haskell] 20 years ago" [4] (see
http://www.haskell.org/pipermail/haskell/2009-July/021487.html) on the
Haskell mailing list as follows:

>Industrial programmers often think that functional programming is
>"unnatural" and cannot be mastered by most of them. But 20 years ago
>they thought the same about OOP
>
>The first widespead OOP system was a Turbo Pascal 5.5, released 1989.

3) To correct his misunderstanding about which widespread OOP system
came first, I responded as follows [5] (see
http://www.haskell.org/pipermail/haskell/2009-July/021489.html):

>Just for the record, Turbo Pascal was preceded by a *pure*
>object-oriented language, Smalltalk [1], as described below:
>
>>The Smalltalk language, which was developed at Xerox PARC (by Alan Kay 
>>and others) in the 1970s, introduced the term object-oriented 
>>programming to represent the pervasive use of objects and messages as 
>>the basis for computation.... Smalltalk and with it OOP were introduced to 
>>a wider audience by the August 1981 issue of Byte magazine.
>
>[...]
>
>[1] "Object-oriented programming - Wikipedia, the free encyclopedia."
>_Wikipedia, the free encyclopedia._ 13 July 2009. 14 July 2009.
><http://en.wikipedia.org/wiki/Object-oriented_programming>.

4) Ziganshin then replied as follows [6] (see
http://www.haskell.org/pipermail/haskell/2009-July/021490.html):

>TP was a first OOP system sold in hundreds of thousands of copies. it
>was "OOP for the masses" and its manual reflects what masses thought
>about OOP those times - just the same that they think about FP now.
>you can replace OOP with FP in the manual text i cited and read it as
>modern text :)

5) The discussion continued for a few more posts, until one user then
asked in private e-mail to have the topic moved to the Haskell-Cafe
mailing list.  Discussion continued there, with Ketil Malde
re-introducing the topic, as follows [7]
(http://www.haskell.org/pipermail/haskell-cafe/2009-July/064185.html):

>[redirected from hask...@]
>
>[...]
>
>Objects contain all kinds of hidden state and dependencies, and the
>sheer unpredicatability of it all is the reason for the
>anthropomorphics - it a symptom of a disease, not a desirable
>quality.

6) Dissatisfied with his use of the term "disease" in relation to
anthropomorphics, I responded as follows [8] (see
http://www.haskell.org/pipermail/haskell-cafe/2009-July/064235.html):

>Although I don't necessary agree with your choice of the term, I find
>it interesting that you should use the biological term "disease";
>according to a post [1] entitled "Re: Re: Smalltalk Data Structures
>and Algorithms," by K. K. Subramaniam, dated "Mon, 29 Jun 2009
>11:25:34 +0530," on the squeak-beginners mailing list (see
>http://lists.squeakfoundation.org/pipermail/beginners/2009-June/006270.html),
>>Concepts in Squeak [a dialect and implementation of Smalltalk] have
>their origins 
>>in biology rather than in computational math.... See the reading list at
>>http://www.squeakland.org/resources/books/readingList.jsp
>>particularly "The Selfish Gene" by Richard Dawkins.

7) This is when Richard O'Keefe entered the thread, claiming that
Subramaniam's above-mentioned post was incorrect, as follows [2]
(again, see
http://www.haskell.org/pipermail/haskell-cafe/2009-July/064270.html):

>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.

At this point, I considered responding that Smalltalk was in fact
rooted in biology, so I skimmed your paper [1] for the term "LISP."
However, I then came across such explanations as the following, which
led me to think that O'Keefe was correct (at the end of section "II.
1967-69--The FLEX Machine, a first attempt at an OOP-based personal
computer"):

>The biggest hit for me while at SAIL in late '69 was to really 
>understand LISP. Of course, every student knew about car, cdr, 
>and cons, but Utah was impoverished in that no one there used 
>LISP and hence, no one had penetrated thye mysteries of eval and 
>apply. I could hardly believe how beautiful and wonderful the idea 
>of LISP was [McCarthy 1960]. I say it this way because LISP had not 
>only been around enough to get some honest barnacles, but worse, 
>there wee deep falws in its logical foundations. By this, I mean that 
>the pure language was supposed to be based on functions, but its 
>most important components---such as lambda expressions quotes, 
>and conds--where not functions at all, and insted ere called special 
>forms. Landin and others had been able to get quotes and cons in 
>terms of lambda by tricks that were variously clever and useful, but 
>the flaw remained in the jewel. In the practical language things 
>were better. There were not just EXPRs (which evaluated their 
>arguments0, but FEXPRs (which did not). My next questions was, 
>why on earth call it a functional language? Why not just base 
>everuything on FEXPRs and force evaluation on the receiving side 
>when needed? I could never get a good answer, but the question 
>was very helpful when it came time to invent Smalltalk, because this 
>started a line of thought that said "take the hardest and most 
>profound thing you need to do, make it great, an then build every 
>easier thing out of it". That was the promise of LiSP and the lure of 
>lambda--needed was a better "hardest and most profound" thing. 
>Objects should be it. 

That paragraph, together with the meta-circular interpreter given in
the appendix, gave me the mistaken impression (at first) that O'Keefe
was correct.

After reading your response, I then looked through your paper again,
and it seems that you had probably intended to emphasize the following
paragraphs (in the "Introduction"), instead:

>Smalltalk's design--and existence--is due to the insight that 
>everything we can describe can be represented by the recursive 
>composition of a single kind of behavioral building block that hides 
>its combination of state and process inside itself and can be dealt 
>with only through the exchange of messages. Philosophically, 
>Smalltalk's objects have much in common with the monads of 
>Leibniz and the notions of 20th century physics and biology....
>
>In computer terms, Smalltalk is a recursion on the notion of computer 
>itself. Instead of dividing "computer stuff" into things each less strong 
>than the whole--like data structures, procedures, and functions which 
>are the usual paraphernalia of programming languages--each Smalltalk 
>object is a recursion on the entire possibilities of the computer. Thus its 
>semantics are a bit like having thousands and thousands of computer all 
>hooked together by a very fast network. Questions of concrete 
>representation can thus be postponed almost indefinitely because we 
>are mainly concerned that the computers behave appropriately, and are 
>interested in particular strategies only if the results are off or come back 
>too slowly. 

The difficulty is that the paper, as a whole, deals with influences
from both LISP and biology, and without perusing the paper, it is easy
to get a misconception as to which is the more important influence.
This is most likely what gave O'Keefe the misconception that Smalltalk
was rooted in LISP instead of biology.

-- Benjamin L. Russell

[1] Kay, Alan C. "The Early History of Smalltalk." Cambridge,
Massachusetts: _History of Programming Languages: The second ACM
SIGPLAN conference on History of programming languages_ (1993): 69-95.
<http://portal.acm.org/citation.cfm?id=154766.155364&coll=GUIDE&dl=GUIDE&CFID=45415434&CFTOKEN=84716013>.
Also available at
<http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html#29>.

[2] O'Keefe, Richard. "Re: Re: [Haskell] Re: 20 years ago."
gmane.comp.lang.haskell.cafe. Gmane. 16 July 2009. 27 July 2009.
<http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61329>.

[3] Subramaniam, K. K. "Re: Re: Smalltalk Data Structures and
Algorithms." The Beginners Archives. Squeak.org. 29 June 2009. 27 July
2009.
<http://lists.squeakfoundation.org/pipermail/beginners/2009-June/006270.html>.

[4] Ziganshin, Bulat. "20 years ago." gmane.comp.lang.haskell.general.
Gmane. 13 July 2009. 27 July 2009.
<http://permalink.gmane.org/gmane.comp.lang.haskell.general/17354>.

[5] Russell, Benjamin L. "Re: 20 years ago."
gmane.comp.lang.haskell.general. Gmane. 14 July 2009. 27 July 2009.
<http://permalink.gmane.org/gmane.comp.lang.haskell.general/17356>.

[6] Ziganshin, Bulat. "Re: Re: 20 years ago."
gmane.comp.lang.haskell.general. Gmane. 14 July 2009. 27 July 2009.
<http://permalink.gmane.org/gmane.comp.lang.haskell.general/17357>.

[7] Malde, Ketil. "Re: [Haskell] Re: 20 years ago."
gmane.comp.lang.haskell.cafe. Gmane. 14 July 2009. 27 July 2009.
<http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61243>.

[8] Russell, Benjamin L. "Re: [Haskell] Re: 20 years ago."
gmane.comp.lang.haskell.cafe. Gmane. 15 July 2009. 27 July 2009.
<http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61293>.

On Fri, 24 Jul 2009 07:50:35 -0700 (PDT), Alan Kay
<alan.n...@yahoo.com> wrote:

>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 <dekudekup...@yahoo.com>
>> Date: 24. Juli 2009 03:37:04 GMT-03:00
>> To: beginners@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@lists.squeakfoundation.org>
>> 
>> On Mon, 29 Jun 2009 11:25:34 +0530, "K. K. Subramaniam"
>> <subb...@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@lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>
>
>      
-- 
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@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners

Reply via email to