From: ······@gmail.com
Subject: Lisp and Plato
Date: 
Message-ID: <1110517703.801037.188540@f14g2000cwb.googlegroups.com>
I'm reading Bertrand Russell's "The History of Western Pilosophy" right
now and was struck by how apt Russell's interpretation of the Plato's
"parable of the cave" is to my experiences with Lisp programming...

I'm sure you have all heard of this parable before from high school-
Plato discusses a man who lived with others in a cave his whole life,
bound to a post where all he, and the others, can see are their
reflections and reflections of others on a cave wall. One day he
escapes and realizes that what he used to view as reality (the shadows)
was really just reflections of a much greater reality.

What struck me was the following sentence from p.125:

"If he is the sort of philosopher who is fit to become a guardian, he
will feel it his duty to those who were formerly his fellow-prisoners
to go down again to the cave, instruct them as to the truth, and show
them the way up. But he will have difficulty in persuading them,
because, coming out of the sunlight, he will see shadows less clearly
than they do, and will seem to them stupider than before his escape."

In a small way, this is a great way to describe how I feel lately
whenever I try to explain anyone at my dayjob about functional
programmng, DSLs, syntax expressions, etc etc. It's like I have escaped
a cave of Java/C#/C++ and to my coworkers my ideas seems
ludicrous/stupid and they make statements like "why wouldn't you want
to liberally assign things to class/local variables? Recalculating
things would be really slow" or "Why would you want to write your own
language to solve a domain problem? That's crazy talk!"

I mean, clearly the "Lisp Way" doesn't solve _all_ programming problems
and Java/C#/C++/etc methodologies also have some keen insights, but it
sure seems to gain you a lot of ground which is just impossible to
convey to non-lispers, I find...

Anyway, just wanted to share an interesting possible parallel between
Plato and Lisp evangelism :)

Conrad Barski, M.D.

From: Trent Buck
Subject: Re: Lisp and Plato
Date: 
Message-ID: <20050312000639.4593a2f0@harpo.marx>
Spake ······@gmail.com:
> I'm reading Bertrand Russell's "The History of Western Pilosophy" right
> now and was struck by how apt Russell's interpretation of the Plato's
> "parable of the cave" is to my experiences with Lisp programming...
> 
> I'm sure you have all heard of this parable before from high school-
> Plato discusses a man who lived with others in a cave his whole life,
> bound to a post where all he, and the others, can see are their
> reflections and reflections of others on a cave wall. One day he
> escapes and realizes that what he used to view as reality (the shadows)
> was really just reflections of a much greater reality.

I think _Flatland_ conveys the idea better.  Perhaps because I'm a
better mathematician than philosopher (not that that's saying much :-)).

-- 
Trent Buck, Student Errant
Never trust a computer you can lift.
From: lin8080
Subject: Re: Lisp and Plato
Date: 
Message-ID: <42323FD5.E8255A4F@freenet.de>
Trent Buck schrieb:
> Spake ······@gmail.com:

> > I'm reading Bertrand Russell's "The History of Western Pilosophy" right
> > now and was struck by how apt Russell's interpretation of the Plato's
> > "parable of the cave" is to my experiences with Lisp programming...

> I think _Flatland_ conveys the idea better.  Perhaps because I'm a
> better mathematician than philosopher (not that that's saying much :-)).

 (defun IANBU (foo)
  "I am nothing but all"
     (print (cdr foo)))

stefan
From: Borkdude
Subject: Re: Lisp and Plato
Date: 
Message-ID: <1111410906.302650.145960@g14g2000cwa.googlegroups.com>
Nice parallel. Co-incidentally I was thinking about the same parabel
applied to side-effect (free) languages. In languages with
side-effects, all you see from only the program is not a true
reflection of the world. This could be a reason to shift the scope to
more side-effect-free oriented languages like functional programming,
in order to get a clearer vision of the true world. 

Michiel
From: lin8080
Subject: Re: Lisp and Plato
Date: 
Message-ID: <423FE6F7.C0BC4251@freenet.de>
Borkdude schrieb:

Hallo

> Nice parallel. Co-incidentally I was thinking about the same parabel
> applied to side-effect (free) languages. In languages with
> side-effects, all you see from only the program is not a true
> reflection of the world. This could be a reason to shift the scope to
> more side-effect-free oriented languages like functional programming,
> in order to get a clearer vision of the true world.

Seems a deep problem. side-effekt. Sometimes one wish to have, sometimes
not.

But you can write a (mirror) function "in order to get a clearer vision
of the true world."

Also, the reflection of the world inside a PC is not necessarily a true
graph, there is usually to much mathematics. 
Or compare the illustration of the "true" world in your head with other
humans. Only side-effects? 

Assoc-fields, wrong-memories, wish-thoughts and more, every part named
"not true" (or: includes "side-effects"). It is very blur, but in human
practice it works nice (could/should be improved/cleared up). 

It looks a bit like magic, to get something precisely with unprecise
methods. So, which other computer languages allow such structures? Most
of ~~ are too exact for that, chasms to walk over... There are not very
much languages without a philosophical background, but that situation
tends to leave "easy use".

Anyway, back to Plato, you can create shadows with more than one
possible reality/interpretation. This is a kind of (nil). Normaly a
missinterpretable shaddow should be ignored, but at last this means
every shaddow have this status and than there will be no input. 

I once experiment with (predict), (believe) and (assume) function,
(think there was some text in c.l.l. anno 2003), but the results are not
very useable, it works like complex fuzzy grid and I lose
control/overview (it turned out as to big for me, needs more math than I
know).

How a about changing "symbols" with "icons"? Icons like variable
textures adjust to multilayered landscapes representing a possible
true/ambiguous world view. A selfcorrecting procedure? uuuh...

stefan

Lisp is the best kind of.