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

Pascal Costanza costanza at web.de
Mon Nov 18 08:59:43 EST 2002


A. Lloyd Flanagan wrote:

>>In summary, Lisp's problem is that it had no BDFL.
>>
> 
> Exactly.  In addition, Lisp proponents have historically been
> contemptous of attempts to run efficiently on available hardware,
> something which is somewhat important to anybody without a bunch of
> extra cash to buy more powerful hardware.  You can't completely ignore
> the desires of the market and expect to sell a whole lot of anything.

This situation has changed considerably. On the one hand, Common Lisp 
vendors have improved their implementations a lot with regard to 
efficiency. On the other hand, machines are powerful enough nowadays in 
order to give you some convenience in language constructs, like dynamic 
type checking. This argument shouldn't be too alien to Python fans.

> In addition, I think Common Lisp killed a lot of Lisp's momentum. 
> Much of Lisp's power comes from the application of just a few basic
> language elements; CL added an incredible amount of complexity in the
> process of including each and every favorite feature of all the major
> players in the Lisp market.  Check out Guy Steele's Common Lisp. 
> Python has the power but hasn't (yet at least) been drowned in
> complexity.

Common Lisp has a small core with a big library. Many people regard 
Common Lisp as a big language because there's no obvious disctinction 
between the language-defined and user-defined features. If you compare 
this with the situation for examle in the case of Java, there you have a 
clear distinction between the language and its API. However, the API in 
Java is actually much bigger than the built-in functionality in Common Lisp.

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

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 with a considerable number of reasonably portable 
features/libraries you should go for Common Lisp. If you want to insist 
on a small core with a standard library of a manageable size you might 
probably want to take a look at Scheme. However, it should be clear that 
in the long run, a large library pays off. (Most Scheme implementations 
come with large libraries as well, but they are not standardized.)

(These are not the only considerations to take into account. For example 
in my opinion, Scheme focuses more on features that are of an academic 
interest whereas Common Lisp stresses features that are proven in 
action. Of course, YMMV.)

Pascal

-- 
Pascal Costanza               University of Bonn
mailto:costanza at web.de        Institute of Computer Science III
http://www.pascalcostanza.de  Römerstr. 164, D-53117 Bonn (Germany)




More information about the Python-list mailing list