Re: [Haskell] Re: 20 years ago

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

Re: [Haskell] Re: 20 years ago

Ketil Malde-5

[redirected from haskell@]

Benjamin L.Russell <[hidden email]> 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.

-k
--
If I haven't seen further, it is by standing in the footprints of giants
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: [Haskell] Re: 20 years ago

Benjamin L. Russell
On Tue, 14 Jul 2009 12:36:02 +0200, Ketil Malde <[hidden email]>
wrote:

>
>[redirected from haskell@]
>
>Benjamin L.Russell <[hidden email]> 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.

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.

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^

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

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

Richard A. 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

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

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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

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

wren ng thornton
In reply to this post by Richard A. O'Keefe
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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: [Haskell] Re: 20 years ago

Benjamin L. Russell
In reply to this post by Richard A. O'Keefe
On Thu, 16 Jul 2009 13:38:14 +1200, "Richard O'Keefe"
<[hidden email]> 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....

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^

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

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

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

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

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

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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

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

Richard A. 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

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

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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe