Re: [Newbies] Re: Smalltalk Data Structures and Algorithms
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. Russelldekudekup...@yahoo.com 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 o...@cs.otago.ac.nz 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
[Newbies] Re: Smalltalk Data Structures and Algorithms
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. Russelldekudekup...@yahoo.com 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 o...@cs.otago.ac.nz 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
[Newbies] Re: Smalltalk Data Structures and Algorithms
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 o...@cs.otago.ac.nz 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
[Newbies] Re: Smalltalk Data Structures and Algorithms
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
Re: [Newbies] Re: Smalltalk Data Structures and Algorithms
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. Russelldekudekup...@yahoo.com wrote: 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 ___ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Re: [Newbies] Re: Smalltalk Data Structures and Algorithms
--- On Mon, 6/29/09, K. K. Subramaniam subb...@gmail.com 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,
Re: [Newbies] Re: Smalltalk Data Structures and Algorithms
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 Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
[Newbies] Re: Smalltalk Data Structures and Algorithms
On Fri, 26 Jun 2009 07:57:49 +0530, K. K. Subramaniam subb...@gmail.com 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 Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners