Re: [Haskell] Re: 20 years ago

[redirected from haskell@]
Benjamin L.Russell
One often amusing outgrowth of this is that FP (OOP) fanatics anthropomorphize their functions (objects).
Well, I don't think we do. Functions are just mappings of values to values, they may be opaque, but they're predictable, unchanging, and just...too boring to be antropomorphized. 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. -k -- If I haven't seen further, it is by standing in the footprints of giants

On Tue, 14 Jul 2009 12:36:02 +0200, Ketil Malde
[redirected from haskell@]
Benjamin L.Russell
writes: One often amusing outgrowth of this is that FP (OOP) fanatics anthropomorphize their functions (objects).
Well, I don't think we do.
Functions are just mappings of values to values, they may be opaque, but they're predictable, unchanging, and just...too boring to be antropomorphized.
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.
Concepts in Squeak [a dialect and implementation of Smalltalk] have
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), 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.
It's an interesting coincidence that you should hit upon the term "disease," which also derives from biology. It's not just "the sheer unpredictability of it all" that is "the reason for the anthropomorphics"; it is the fundamental difference of the basis in biology vs. computational mathematics. Haskell (and FP) derive from the latter; Smalltalk (and OOP) derive from the former. Biological structures also contain "all kinds of hidden state and dependencies"; in that sense, objects are similar to biological structures, and are more easily anthromorphized on that account. Functional programming functions, on the other hand, are not similar to biological structures, and hence are not easily anthromorphized; instead, they are similar to mathematical functions. I wouldn't necessarily say that "anthromorphics ... [is] a symptom of a disease," though. Anthromorphics simply uses terms from biology, from which concepts in Squeak (and the OO paradigm thereof) derive. The closest counterpart for Haskell that I can think of is the puzzle game "Alligator Eggs!" [2] (see http://worrydream.com/AlligatorEggs/), by Bret Victor, which draws an analogy between various behaviors of alligators and operations in the lambda calculus--a collection of "allomorphisms," perhaps? -- Benjamin L. Russell [1] Subramaniam, K. K. "Re: Re: Smalltalk Data Structures and Algorithms." The Beginners Archives. Squeak.org. 29 June 2009. 15 July 2009. http://lists.squeakfoundation.org/pipermail/beginners/2009-June/006270.html. [2] Victor, Bret. "Alligator Eggs!" _Bret Victor's website._ Bret Victor. 11 May 2007. 15 July 2009. http://worrydream.com/AlligatorEggs/. -- 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^

On Jul 15, 2009, at 5:25 PM, Benjamin L.Russell wrote:
Concepts in Squeak [a dialect and implementation of Smalltalk] have
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) , 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.

Richard O'Keefe wrote:
On Jul 15, 2009, at 5:25 PM, Benjamin L.Russell wrote:
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....
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.
Also of note, the social metaphor is also very mathematical. It has its roots in process calculi like the pi-calculus, petri nets, the join-calculus, etc. The "original" OOP metaphor of Agents is also strongly aligned to this process calculus interpretation. (And any anthropologist will defy that sociality has more than a primitive connexion with biological systems. Animal behaviorists may disagree.) -- Live well, ~wren

Richard O'Keefe wrote:
On Jul 15, 2009, at 5:25 PM, Benjamin L.Russell wrote:
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....
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.
Also of note, the social metaphor is also very mathematical. It has its roots in process calculi like the pi-calculus, petri nets, the join-calculus, etc. The "original" OOP metaphor of Agents is also strongly aligned to this process calculus interpretation. (And any anthropologist will defy that sociality has more than a primitive connexion with biological systems. Animal behaviorists may disagree.) -- Live well, ~wren

On Thu, 16 Jul 2009 13:38:14 +1200, "Richard O'Keefe"
On Jul 15, 2009, at 5:25 PM, Benjamin L.Russell wrote:
Concepts in Squeak [a dialect and implementation of Smalltalk] have
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) , 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....
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".
-- Benjamin L. Russell [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. -- 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^

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.

On 28/07/2009, at 11:35 AM, Richard O'Keefe wrote:
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 (:-)).
But Richard (or am I arguing with Kay?) - monads don't interact. http://en.wikipedia.org/wiki/Monadology I'd take that to be their defining characteristic - Leibniz is trying to overcome Cartesian mind/body dualism here. Perhaps Smalltalk objects are regulated by pre-established harmonies... and have no need to talk to each other. Or perhaps that is the part that lies outside Kay's identification, in which case one might say the ontologies of monads and Smalltalk have superficial similarities but the deeper structure diverges significantly. (I think my point is well-defended by the above wikipedia article - the OO insights are thin on the ground, and are at least quite tangled.) How are you going to relate Leibniz's monads and Haskell's? I can't find my way, neatly or otherwise. :-P Ah, I see, Haskell has an interface to the best of all possible worlds... :-) cheers peter -- http://peteg.org/

On Jul 28, 2009, at 2:25 PM, Peter Gammie wrote:
But Richard (or am I arguing with Kay?) - monads don't interact.
You're arguing with Alan Kay here: the reference to Leibniz was his. The key link here is (Wikipedia): " Leibniz allows just one type of element in the build of the universe" (sic.). In precisely the same way, Alan Kay allowed just one kind of 'thing' in his computational universe: object. Just as in the lambda calculus, everything is a function and in set theory everything is a set, so in Smalltalk _everything_ (including classes and the number 42 and anonymous functions) is an object.
How are you going to relate Leibniz's monads and Haskell's? I can't find my way, neatly or otherwise. :-P
Verbally.

On 28/07/2009, at 12:59 PM, Richard O'Keefe wrote:
On Jul 28, 2009, at 2:25 PM, Peter Gammie wrote:
But Richard (or am I arguing with Kay?) - monads don't interact.
You're arguing with Alan Kay here: the reference to Leibniz was his. The key link here is (Wikipedia): " Leibniz allows just one type of element in the build of the universe" (sic.). In precisely the same way, Alan Kay allowed just one kind of 'thing' in his computational universe: object. Just as in the lambda calculus, everything is a function and in set theory everything is a set, so in Smalltalk _everything_ (including classes and the number 42 and anonymous functions) is an object.
Yea gods, that's the thinnest use of monads ever. The concept that lead to idealism, away from mind-body dualism is reduced to ... monism. Awesome. http://en.wikipedia.org/wiki/Monism He could've cited just about any of the major philosophies for that - and I'm not going to talk about religions.
How are you going to relate Leibniz's monads and Haskell's? I can't find my way, neatly or otherwise. :-P
Verbally.
Sure, but I was hoping you'd explain why Wadler uses the pineal gland allusions in his COMPREHENDING MONADS (capitals denoting paper title). That structure was *exactly* what Leibniz was doing his best to avoid in his monadology. I think Wadler was making a joke. cheers peter
participants (5)
-
Benjamin L.Russell
-
Ketil Malde
-
Peter Gammie
-
Richard O'Keefe
-
wren ng thornton