Why don't people like lisp?
borcis at users.ch
Sun Oct 19 16:33:28 CEST 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).
> 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
> 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