Why is Python popular, while Lisp and Scheme aren't?

Anton Vredegoor anton at vredegoor.doge.nl
Mon Dec 2 08:29:48 EST 2002


On Sun, 01 Dec 2002 15:37:54 -0500, Fernando Pereira
<pereira at cis.upenn.edu> wrote:

[...]

>the problems were that Lisp failed to grab mindshare when it could because
>of the ridiculous fragmentation of the community (back to MACLISP vs.
>Interlisp), the lack of good free implementations, and the belief among Lisp
>promoters that *everything* should be done in Lisp, leading lack of
>interoperability with other languages. In summary, Lispers were their own
>worst enemies, and lacked a BDFL to kick some sense into them.

Its good to see this thread getting back on its track! However I think
there's another angle on Lisps popularity (besides the social and
political issues) that's more fundamental. In order to follow my
argument it's probably necessary to first read this (long) article of
Daniel Dennett:

http://www2.psych.cornell.edu/andrews/fws01/dennett_frame.html 

It's not a waste of time to read it anyway :-)

What I get from this article is (among other things) that in order to
fight complexity it is necessary to decide on what's important and
what's not. I don't think Dennett gives an answer to the question of
how to do that in this article but at least he succeeds in making the
problem very explicit.

In my opinion, in order to solve this problem, it's not only necessary
to decide on what's important, but it's also necessary to provide a
*gradient* to the importance of things. 

To explain this tautology I have to introduce the concept of memes. A
meme is like a gene in that it replicates itself, but instead of using
dna to do it, it uses a human brain to copy itself. A meme is an idea
or something like it.

Now in order to be useful a meme *must* be ambiguous, because a meme
is distributed in many brains in many forms and its proliferation
would be almost impossible if it would be required to copy itself
exactly. By the way what would an exact copy of an idea mean in a
different person?

Memes structure reality but by no means they are safe and reliable.

Different programming languages offer different way's of encapsulating
complexity for the user in order to enable her to concentrate on the
important aspects of the problem. There's a tradeoff here between
fixed elements in the language which must operate on all kind of
structures but introduce ambiguity, and flexibility of the language
which avoids possible ambiguity but at the cost of not reducing
complexity.

Of course in the end ambiguity has to be resolved to produce output
and for this Python uses scopes and Lisp has the parenthesis for that.

Now for the language to evolve and at the same time gently prod new
users into some kind of common optimal language idioms it is necessary
to be forgiving and at the same time stimulate positive development,
which is were the gradient for importance - of using certain common
language features - is necessary. Of course it helps tremendously if
positive decisions for using certain language constructs are socially
rewarded and also provide an actual benefit in speeding up ones code.

I am practically sure these things have been said somewhere else and
even better - I am only tentatively outlining some likely
contingencies :-) - but I hope my memes have crossed the
language\brain barrier.

Regards,
		Anton.








More information about the Python-list mailing list