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

Alexander Schmolck a.schmolck at gmx.net
Mon Nov 18 13:11:08 EST 2002


> 
> I think the blurred boundaries between the core language and the library in
> Common Lisp are a big advantage.

Only in the sense that libraries and user defined functions/macros etc. don't
look any different from core language constructs. One problem with stuffing
everything fdirectly in the core is that it makes it very difficult to
supersede it and thus to grow the language. As a (maybe slightly inaccurate)
example, perl has regexps in the core, whereas python has an extra
library. When the python folks decided to upgrade their regular expression
syntax to something more powerful, all they had to do was to provide a new
library (re) and the old library (regex) is being slowly phased out. The perl
folks, however, are currently in the process of creating a completely new
language, partly to get rid of the old regexps.

Another related problem is that Common Lisp doesn't scale well. It is a big
and complex language and that's it. While this might be a big productivity win
for an experienced developer who can leverage a large collection of well
thought out standard functions, it makes it a bad choice for many other
scenarios (if you knew neight CL nor python, would you rather have your
application scripted in python or CL?). 

> 
> 
> To summarize some claims, some people say that Common Lisp is too big while
> some say that it is lacking in APIs. However, you can't say both things at the
> same time, this would be contradictory. If you want to try a Lispy language

I see no contradiction. Common lisp, compared to python, for example, is
lacking in libraries to achieve specific tasks needed for many real world
applications (such as GUIs, net protocols, text-processing, etc.), but comes,
unlike to python, with plenty of looping constructs including a Turing
complete format function, amongst other things. Now python programmers doing
Numerics don't have to worry about the SOAP module and vice versa for web
developers, whereas *all* CL programmers have to master loop, dolist, format
and whatever else lurks in cl:. Since specialized libraries for the task at
hand win out over more powerful language concepts, with CL you often have to
know much more in order to be able to do much less than with python.

That doesn't mean that python is generally better than CL, it just means that
people are not as irrational as lispers generally belief for often prefering
python over CL.

alex



More information about the Python-list mailing list