Why don't people like lisp?

Borcis borcis at users.ch
Sun Oct 19 10:33:28 EDT 2003


Francis Avila wrote:
 > Procedural, imperative programming is
> simply a paradigm that more closely matches the ordinary way of thinking
> (ordinary = in non-programming, non-computing spheres of human endevor) than
> functional programming.

There is no such thing as "the" ordinary way of thinking, except in
the mind of people who have not enquired enough about the ways of thinking
of other people to discover this "astonishing" fact - but I will concede that 
failure to enquire is more likely to occur among adepts of procedural and 
imperative authority (authority - not thinking).

This said, I find it a bit ridiculous to oppose lisp and python along that 
scale; compared to logic programming (eg Prolog), or even to reverse-polish 
stack-based syntax like in PostScript - and given that both python and lisp 
are dynamic and don't require types declarations - programming in python and 
programming in lisp feel very similar (except for a few things you can do in 
lisp but not in python).

...
> The same reason why programmers call lisp "mind-expanding" and "the latin of
> programming languages" is the very same reason why they are reluctant to
> learn it--its different, and for many also hard to get used to.

Everybody finds one's own mother's style of cooking more palatable, but that's 
no excuse to reflect on things as if everybody had the same mother.

> Python doesn't try (too) hard to change the ordinary manner of thinking,
> just to be as transparent as possible. I guess in that sense it encourages a
> degree of mental sloth, but the objective is executable pseudocode.

Python and lisp imho compete for the status of easiest language to program in; 
python differs from lisp in that in leaves you less freedom to shoot yourself 
in the foot with meta-programming (having access to code as an easy data 
structure, something Prolog has too). And python also has for itself a free 
reference implementation running on all platforms, with an extensive standard 
lib (that's why I use it rather than lisp).

> Lisp
> counters that thinking the lisp way may be harder, but the power it grants
> is out of all proportion to the relatively meager investment of mental
> energy required--naturally, it's hard to convince someone of that if they
> don't actually _use_ it first, and in the end some will probably still think
> it isn't worth the trouble.  It will take very significant and deep cultural
> and intellectual changes before lisp is ever an overwhelmingly dominant
> language paradigm.

The real issue is what language gets taught to beginners and what language is 
required by employers, and such choices are mostly historical accidents of fad 
and fashion.

> That is, when it becomes more natural to think of
> cake-making as
> 
> UD: things
> Gxyz: x is baked at y degrees for z minutes.
> Hx: x is a cake.
> Ix: x is batter.
> 
> For all x, ( (Ix & Gx(350)(45)) > Hx )
> 
> (i.e. "Everything that's a batter and put into a 350 degree oven for 45
> minutes is a cake")
> 
> ...instead of...
> 
> 1. Heat the oven to 350 degrees.
> 2. Place batter in oven.
> 3. Bake 45 minutes
> 4. Remove cake from oven.
> 
> (i.e. "To make a cake, bake batter in a 350 degree oven for 45 minutes")

This is not serious. Write down a piece of idiomatic python, and I'm sure some 
lisper will show you how well lisp can mimic that.

> 
> ...then lisp will take over the universe.  Never mind that the symbolic
> logic version has more precision.

Lisp isn't symbolic logic. Symbolic logic isn't the example you gave.





More information about the Python-list mailing list