Re: [Haskell-cafe] Re: [Haskell] Re: 20 years ago

2009-07-27 Thread Richard O'Keefe


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 

Re: [Haskell-cafe] Re: [Haskell] Re: 20 years ago

2009-07-27 Thread Peter Gammie

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/

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: [Haskell] Re: 20 years ago

2009-07-27 Thread Richard O'Keefe


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.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: [Haskell] Re: 20 years ago

2009-07-27 Thread Peter Gammie

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
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: [Haskell] Re: 20 years ago

2009-07-18 Thread wren ng thornton

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
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: [Haskell] Re: 20 years ago

2009-07-18 Thread wren ng thornton

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
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: [Haskell] Re: 20 years ago

2009-07-15 Thread Richard O'Keefe


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.

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.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe