Smalltalk Data Structures and Algorithms

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

Smalltalk Data Structures and Algorithms

Frank Church-3
Are there any books that cover this area for Smalltalk?

--
Frank Church
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

David Urquhart-2
Frank wrote:
>>Are there any books that cover this area for Smalltalk?

I have looked down this avenue...

The Design Patterns Smalltalk Companion (Software Patterns Series) by Sherman Alpert, Kyle Brown, and Bobby Woolf
http://www.amazon.com/Design-Patterns-Smalltalk-Companion-Software/dp/0201184621/ref=sr_1_2?ie=UTF8&s=books&qid=1245981504&sr=8-2

Smalltalk Best Practice Patterns by Kent Beck
The latter is more expensive but neither are pricey and there are secondhand ones on Amazon.

Dave


On Fri, Jun 26, 2009 at 7:29 AM, Frank Church <[hidden email]> wrote:
Are there any books that cover this area for Smalltalk?

--
Frank Church
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners



--
DAVID URQUHART
Managed Training

email: [hidden email]
skype: davidurquhart
direct: +61 2 8003 5218
mobile: +61 415 093 827
fax: +61 2 9475 4373
reception: +61 2 8084 9549

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

K. K. Subramaniam
In reply to this post by Frank Church-3
On Friday 26 Jun 2009 2:59:13 am Frank Church wrote:
> Are there any books that cover this area for Smalltalk
Yes. See http://stephane.ducasse.free.fr/FreeBooks.html for an annotated list.

BTW, Smalltalk is a object-based system. An object combines the role of data
and algorithm into one unit. The computational model is different from that of
procedural programming. Are you looking for anything specific?

Subbu

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

cedreek
I'd suggest reading "The Design Patterns Smalltalk Companion" Alpert et al.

http://www.amazon.com/Design-Patterns-Smalltalk-Companion-Software/dp/0201184621

drafts: http://stephane.ducasse.free.fr/FreeBooks/SmalltalkDesignPatternCompanion/

hth,

2009/6/26 K. K. Subramaniam <[hidden email]>:

> On Friday 26 Jun 2009 2:59:13 am Frank Church wrote:
>> Are there any books that cover this area for Smalltalk
> Yes. See http://stephane.ducasse.free.fr/FreeBooks.html for an annotated list.
>
> BTW, Smalltalk is a object-based system. An object combines the role of data
> and algorithm into one unit. The computational model is different from that of
> procedural programming. Are you looking for anything specific?
>
> Subbu
>
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>



--
Cédrick
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

Benjamin L. Russell
In reply to this post by K. K. Subramaniam
On Fri, 26 Jun 2009 07:57:49 +0530, "K. K. Subramaniam"
<[hidden email]> wrote:

>On Friday 26 Jun 2009 2:59:13 am Frank Church wrote:
>> Are there any books that cover this area for Smalltalk
>Yes. See http://stephane.ducasse.free.fr/FreeBooks.html for an annotated list.
>
>BTW, Smalltalk is a object-based system. An object combines the role of data
>and algorithm into one unit. The computational model is different from that of
>procedural programming. Are you looking for anything specific?

Is there a counterpart to SICP (_Structure and Interpretation of
Computer Programs_; see http://mitpress.mit.edu/sicp/) focusing on
roughly the same topics from a purely object-oriented standpoint, but
using Smalltalk, in particular Squeak, as a means rather than as an
end?

One aspect that I really miss in Squeak is more focus on theory.  It
would be nice if somebody presented a proof of correctness of a purely
object-oriented algorithm that was implementation-independent.

-- Benjamin L. Russell
--
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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Re: Smalltalk Data Structures and Algorithms

K. K. Subramaniam
On Monday 29 Jun 2009 10:07:30 am Benjamin L. Russell wrote:
> Is there a counterpart to SICP (_Structure and Interpretation of
> Computer Programs_; see http://mitpress.mit.edu/sicp/) focusing on
> roughly the same topics from a purely object-oriented standpoint, but
> using Smalltalk, in particular Squeak, as a means rather than as an
> end?
There is no single book to my knowledge. 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.

> One aspect that I really miss in Squeak is more focus on theory.  It
> would be nice if somebody presented a proof of correctness of a purely
> object-oriented algorithm that was implementation-independent.
Squeak is conceived to work more like an organism than a mechanism so concepts
like proof of correctness does not translate easily into such an environment.
PoC applies to computations small enough to be 'intellectually manageable'
while Squeak tackles the big picture as a continously evolving gestalt of
objects and interactions. The closest document that captures the essence of
Squeak is the NSF Proposal at
   http://www.vpri.org/pdf/rn2006002_nsfprop.pdf

Also see the (somewhat long) discussion thread
   http://www.nabble.com/Dynabook-hw-cost-td10732041i20.html

Subbu
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

Conrad Taylor
In reply to this post by Frank Church-3
On Thu, Jun 25, 2009 at 2:29 PM, Frank Church <[hidden email]> wrote:
Are there any books that cover this area for Smalltalk?

--
Frank Church

Frank, if you're interested in data structures in algorithms, I would highly recommend
"Introduction to Algorithms 3rd edition" by Thomas H. Cormen et al.  All the algorithms
are presented in a language agnostic manner using psuedo-code.  Also, I am in agreement
with the other responders to your post about getting yourself copies of "Design Patterns
Smalltalk Companion" and "Smalltalk Best Practice Patterns".

Good luck,

-Conrad
 
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Re: Smalltalk Data Structures and Algorithms

Benjamin L. Russell
In reply to this post by K. K. Subramaniam
--- On Mon, 6/29/09, K. K. Subramaniam <[hidden email]> wrote:

> On Monday 29 Jun 2009 10:07:30 am
> Benjamin L. Russell wrote:
> > Is there a counterpart to SICP (_Structure and
> Interpretation of
> > Computer Programs_; see http://mitpress.mit.edu/sicp/) focusing on
> > roughly the same topics from a purely object-oriented
> standpoint, but
> > using Smalltalk, in particular Squeak, as a means
> rather than as an
> > end?
> There is no single book to my knowledge. 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.

Fascinating.  So an object is an abstract representation of a gene,
rather than a blueprint for a computational process....  This is a
revelation.

>
> > One aspect that I really miss in Squeak is more focus
> on theory.  It
> > would be nice if somebody presented a proof of
> correctness of a purely
> > object-oriented algorithm that was
> implementation-independent.
> Squeak is conceived to work more like an organism than a
> mechanism so concepts
> like proof of correctness does not translate easily into
> such an environment.
> PoC applies to computations small enough to be
> 'intellectually manageable'
> while Squeak tackles the big picture as a continously
> evolving gestalt of
> objects and interactions. The closest document that
> captures the essence of
> Squeak is the NSF Proposal at
>    http://www.vpri.org/pdf/rn2006002_nsfprop.pdf

Yes, that paper is indeed interesting: in particular, the following
portion:

>In Biology [Bio], one of our favorite sources of fruitful analogies,
>the scaling of entities is not smooth but jumps from rather small
>carbon based molecules to much larger entire cells that can play
>many kinds of roles derived from very similar architectures.
>Looking ahead to even more interesting possible analogies with
>Biology are the recent advances in understanding
>developmental processes of multicelled animals....
>
>These large plateaus for stable structures suggest we take a
>similar and somewhat “theatrical view” of a system in which every
>entity at every level is portrayed by an intelligent actor wearing
>appropriate costumes and simply playing a role. Here we are “not
>multiplying entities unnecessarily”, but are putting the burden on a
>single kind of object (and we hope that it can be explained simply
>enough to make the larger system much easier to understand than
>if it had been built from many thousands of seemingly different entities....)

The above section on the analogy with biology (notice the two
references to "cells") contrasts rather sharply with the following
view taken in [1] (see the "Forward," by Alan J. Perlis, at
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-5.html) (notice
the reference to "mechanisms"):

>Our traffic with the subject matter of this book involves us with three
>foci of phenomena: the human mind, collections of computer
>programs, and the computer. Every computer program is a model,
>hatched in the mind, of a real or mental process. These processes,
>arising from human experience and thought, are huge in number,
>intricate in detail, and at any time only partially understood. They are
>modeled to our permanent satisfaction rarely by our computer programs.
>Thus even though our programs are carefully handcrafted discrete
>collections of symbols, mosaics of interlocking functions, they continually
>evolve: we change them as our perception of the model deepens,
>enlarges, generalizes until the model ultimately attains a metastable
>place within still another model with which we struggle. The source of
>the exhilaration associated with computer programming is the continual
>unfolding within the mind and on the computer of mechanisms
>expressed as programs and the explosion of perception they generate.
>If art interprets our dreams, the computer executes them in the guise
>of programs!

Cells versus mechanisms:  This seems to be one essence of the purely
object-oriented vs. Lisp-style methodologies.  So in order to
appreciate Smalltalk (and more generally, purely object-oriented
programming), it seems that one must learn to think of computation in
terms of cells, rather than mechanisms.  Or perhaps even more
generally, one must learn to abandon thinking in terms of computation
entirely, and instead think in terms of selfish genes, a la Dawkins.

>
> Also see the (somewhat long) discussion thread
>    http://www.nabble.com/Dynabook-hw-cost-td10732041i20.html

The following portion by "Lex Spoon-3" (see
http://www.nabble.com/Re%3A-Dynabook-hw-cost-p10849141.html) in the
above-mentioned thread in [2] seems particularly relevant:

>It would be really neat to have a subset of Squeak that was designed
>to be amenable to proof, and then to teach one of the existing proof
>systems about this subset.  If you include blocks, but reject
>inheritance, then you could come up with something close to the
>lambda-calculus-like languages that the existing proof tools are so
>good at.  You would not like programming this way, compared to using
>full Squeak, but for core things like Semaphore and SharedQueue it
>would seem useful.

Yes, for theoretical purposes, a minimal subset of Squeak designed to
be amenable to proof would indeed be useful.  This would be similar to
picoProlog (see _An Introduction to Logic Programming through Prolog_
([3]), a textbook by Michael Spivey that uses such a dialect) or, in
some ways, to Haskell 98 or R5RS (or more accurately R4RS) Scheme.
What would be nice about such a dialect is that it would facilitate
education and research on purely object-oriented principles,
independent of the implementation.  Focus on this area seems to be
somewhat lacking in most Smalltalk discussion circles, if I understand
the situation, compared to in corresponding, say, functional or logic
programming circles.

Incidentally, would you happen to know what happened to the
"preposterous proposal" mentioned by Alan Kay in the following
portion,

>See what you think of the "preposterous proposal" (as one reviewer termed it).
>
>http://www.vpri.org/pdf/NSF_prop_RN-2006-002.pdf

in the following message in your above-described thread in [4]?

>Re: Dynabook hw cost
>http://www.nabble.com/Re%3A-Dynabook-hw-cost-p10856407.html

Also, would you happen to know of any Squeak-related (or
Smalltalk-related) discussion circles focusing on the kind of
discussion in this thread; specifically, on the evolution and
conceptual basis of Smalltalk?

-- Benjamin L. Russell

References

[1] Abelson, Harold and Sussman, Gerald Jay with Sussman, Julie.
_Structure and Interpretation of Computer Programs, Second Edition._
Cambridge, MA: The MIT Press and New York: McGraw-Hill, 1996.
<http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-5.html>

[2] Lex Spoon-3. "Re: Dynabook hw cost." Nabble(TM). 29 May 2007. 29
June 2009.
<http://www.nabble.com/Re%3A-Dynabook-hw-cost-p10849141.html>

[3] Spivey, J. M. _An Introduction to Logic Programming through
Prolog._ Oxford: Michael Spivey, 2002.
<http://spivey.oriel.ox.ac.uk/mike/logic/>

[4] Kay, Alan. "Re: Dynabook hw cost." Nabble(TM). 30 May 2007. 29
June 2009.
<http://www.nabble.com/Re%3A-Dynabook-hw-cost-p10856407.html>
--
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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Re: Smalltalk Data Structures and Algorithms

K. K. Subramaniam
On Monday 29 Jun 2009 3:27:30 pm Benjamin L. Russell wrote:
> Fascinating.  So an object is an abstract representation of a gene,
> rather than a blueprint for a computational process....  This is a
> revelation.
"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. " Alan Kay
http://www.smalltalk.org/smalltalk/TheEarlyHistoryOfSmalltalk_Introduction.html

An image is a like an Internet in a single bag of bits. You have all these
tiny 'computers' exchanging messages with each other all the time to get 'work
done'. Once Alan expressed regret for introducing the term 'object-oriented
programming' because it downplayed the role of messages. Oops :-)!

Subbu
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

Benjamin L. Russell
In reply to this post by K. K. Subramaniam
On Mon, 29 Jun 2009 11:25:34 +0530, "K. K. Subramaniam"
<[hidden email]> 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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Re: Smalltalk Data Structures and Algorithms

David Mitchell-10
I think K.K. is referring to the writings of Alan Kay, who is pretty
authoritative when it comes to Smalltalk. In his paper, The Early
History of Smalltalk, published by the ACM in History of Programming
Languages II (1993).

"My biology minor had focused on both cell metabolism and larger scale
morphogenesis with its notions of simple mechanisms controlling
complex processes and one kind of building block able to differentiate
into all needed building blocks. The 220 file system, the B5000,
Sketchpad, and finally Simula, all used the same idea for different
purposes. Bob Barton, the main designer of the B5000 and a professor
at Utah had said in one of his talks a few days earlier: "The basic
principal of recursive design is to make the parts have the same power
as the whole." For the first time I thought of the whole as the entire
computer and wondered why anyone would want to divide it up into
weaker things called data structures and procedures. Why not divide it
up into little computers, as time sharing was starting to? But not in
dozens. Why not thousands of them, each simulating a useful structure?
"

Online here: http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html


On Fri, Jul 24, 2009 at 1:37 AM, Benjamin L.
Russell<[hidden email]> wrote:

> On Mon, 29 Jun 2009 11:25:34 +0530, "K. K. Subramaniam"
> <[hidden email]> 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
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

alanone1
In reply to this post by Frank Church-3
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 <[hidden email]>
> Date: 24. Juli 2009 03:37:04 GMT-03:00
> To: [hidden email]
> Subject: [Newbies] Re: Smalltalk Data Structures and Algorithms
> Reply-To: "A friendly place to get answers to even the most basic questions about Squeak." <[hidden email]>
>
> On Mon, 29 Jun 2009 11:25:34 +0530, "K. K. Subramaniam"
> <[hidden email]> 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
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Re: Smalltalk Data Structures and Algorithms

K. K. Subramaniam
In reply to this post by David Mitchell-10
On Friday 24 Jul 2009 6:48:30 pm David Mitchell wrote:
> I think K.K. is referring to the writings of Alan Kay, who is pretty
> authoritative when it comes to Smalltalk. In his paper, The Early
> History of Smalltalk, published by the ACM in History of Programming
> Languages II (1993).
Thanks, David. Yes, that is the reference. In the 60s, there were many ideas
floating around for an electronic computer that would 'augment human
intellect'. Alan's idea was quite radical for its time. The dominant idea was
that of Von Neumann. Tansel had a nice article written in his Squeak e-zines.

Subbu
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

Benjamin L. Russell
In reply to this post by alanone1
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 haskell@]
>
>[...]
>
>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
<[hidden email]> 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 <[hidden email]>
>> Date: 24. Juli 2009 03:37:04 GMT-03:00
>> To: [hidden email]
>> Subject: [Newbies] Re: Smalltalk Data Structures and Algorithms
>> Reply-To: "A friendly place to get answers to even the most basic questions about Squeak." <[hidden email]>
>>
>> On Mon, 29 Jun 2009 11:25:34 +0530, "K. K. Subramaniam"
>> <[hidden email]> 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
>> [hidden email]
>> 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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

Benjamin L. Russell
Below is a message I posted to correct Richard O'Keefe's
misunderstanding in understanding the significance of biology as one
of the origins of Smalltalk [1] (see
http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61718):

>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._:
>
>>I most definitely still think of OOP at its best as being "biological".
>
>[1] Kay, Alan. "[Newbies] Re: Smalltalk Data Structures and
>Algorithms." The Beginners Archives. Squeak.org. 24 July 2009. 27 July
>2009. <http://lists.squeakfoundation.org/pipermail/beginners/2009-July/006331.html>.

Nevertheless, O'Keefe now still insists that Smalltalk did not
originate in biology [2] (see
http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61749);
_viz._:

On Tue, 28 Jul 2009 13:35:09 +1200, in gmane.comp.lang.haskell.cafe
"Richard O'Keefe" <[hidden email]> wrote:

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

I could continue to try to correct him, but now other members there
are beginning to question the relevance of the thread to the topic of
discussion there (Haskell).

Any suggestions on a good way to resolve his misunderstanding?

-- Benjamin L. Russell

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

[2] O'Keefe, Richard. "Re: Re: [Haskell] Re: 20 years ago."
gmane.comp.lang.haskell.cafe. Gmane. 28 July 2009. 29 July 2009.
<http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61749>.
--
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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Re: Smalltalk Data Structures and Algorithms

David Mitchell-10
I don't think there is a misunderstanding. There is disagreement. You
don't correct disagreement.

Alan Kay feels his influence was from biology (and other things,
including LISP).

Richard finds flaws in the analogy.

No misunderstanding.



On Wed, Jul 29, 2009 at 12:38 AM, Benjamin L.
Russell<[hidden email]> wrote:

> Below is a message I posted to correct Richard O'Keefe's
> misunderstanding in understanding the significance of biology as one
> of the origins of Smalltalk [1] (see
> http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61718):
>
>>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._:
>>
>>>I most definitely still think of OOP at its best as being "biological".
>>
>>[1] Kay, Alan. "[Newbies] Re: Smalltalk Data Structures and
>>Algorithms." The Beginners Archives. Squeak.org. 24 July 2009. 27 July
>>2009. <http://lists.squeakfoundation.org/pipermail/beginners/2009-July/006331.html>.
>
> Nevertheless, O'Keefe now still insists that Smalltalk did not
> originate in biology [2] (see
> http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61749);
> _viz._:
>
> On Tue, 28 Jul 2009 13:35:09 +1200, in gmane.comp.lang.haskell.cafe
> "Richard O'Keefe" <[hidden email]> wrote:
>
>>
>>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.
>
> I could continue to try to correct him, but now other members there
> are beginning to question the relevance of the thread to the topic of
> discussion there (Haskell).
>
> Any suggestions on a good way to resolve his misunderstanding?
>
> -- Benjamin L. Russell
>
> [1] Russell, Benjamin L. "Re: [Haskell] Re: 20 years ago."
> gmane.comp.lang.haskell.cafe. Gmane. 27 July 2009. 29 July 2009.
> <http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61718>.
>
> [2] O'Keefe, Richard. "Re: Re: [Haskell] Re: 20 years ago."
> gmane.comp.lang.haskell.cafe. Gmane. 28 July 2009. 29 July 2009.
> <http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61749>.
> --
> 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
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk Data Structures and Algorithms

Klaus D. Witzel
On Wed, 29 Jul 2009 16:57:22 +0200, David Mitchell wrote:

> I don't think there is a misunderstanding. There is disagreement. You
> don't correct disagreement.
>
> Alan Kay feels his influence was from biology (and other things,
> including LISP).
>
> Richard finds flaws in the analogy.
>
> No misunderstanding.

+1

Only disagreement and lots of "... in Smalltalk ..." missing from the  
listing of the six core principles' POV.

And thank you very much Ben for writing this all up. I love it :)

/Klaus

>
> On Wed, Jul 29, 2009 at 12:38 AM, Benjamin L.
> Russell<[hidden email]> wrote:
>> Below is a message I posted to correct Richard O'Keefe's
>> misunderstanding in understanding the significance of biology as one
>> of the origins of Smalltalk [1] (see
>> http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61718):
>>
>>> 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._:
>>>
>>>> I most definitely still think of OOP at its best as being  
>>>> "biological".
>>>
>>> [1] Kay, Alan. "[Newbies] Re: Smalltalk Data Structures and
>>> Algorithms." The Beginners Archives. Squeak.org. 24 July 2009. 27 July
>>> 2009.  
>>> <http://lists.squeakfoundation.org/pipermail/beginners/2009-July/006331.html>.
>>
>> Nevertheless, O'Keefe now still insists that Smalltalk did not
>> originate in biology [2] (see
>> http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61749);
>> _viz._:
>>
>> On Tue, 28 Jul 2009 13:35:09 +1200, in gmane.comp.lang.haskell.cafe
>> "Richard O'Keefe" <[hidden email]> wrote:
>>
>>>
>>> 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.
>>
>> I could continue to try to correct him, but now other members there
>> are beginning to question the relevance of the thread to the topic of
>> discussion there (Haskell).
>>
>> Any suggestions on a good way to resolve his misunderstanding?
>>
>> -- Benjamin L. Russell
>>
>> [1] Russell, Benjamin L. "Re: [Haskell] Re: 20 years ago."
>> gmane.comp.lang.haskell.cafe. Gmane. 27 July 2009. 29 July 2009.
>> <http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61718>.
>>
>> [2] O'Keefe, Richard. "Re: Re: [Haskell] Re: 20 years ago."
>> gmane.comp.lang.haskell.cafe. Gmane. 28 July 2009. 29 July 2009.
>> <http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/61749>.
>> --
>> 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
>> [hidden email]
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>>

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners