What can you do in LISP that you can't do in Python

Courageous jkraska1 at san.rr.com
Mon May 14 23:30:28 EDT 2001


>* Compile your code and get performance that comes close to C++ without
>giving up your dynamic typing and interactive programming.

N.B.: this really isn't correct; to get this level of performance, a Lisp
programmer will have to commit to various type specifications which
are otherwise very unnatural for a Lisp programmer to use. But I am
quibbling. These days anything half the speed of C is pretty good.
This is, after all, the age of the JVM.

>* Compile individual functions or whole programs; make changes to a running
>program without needing to stop and restart. 

Python programming is wonderfully interactive; IMO, even more so
than Lisp, particularly if you have a large sysdcl and have to reevaluate it.
And writing a good sysdcl is a nightmare.

>CL is likely to be more
>suitable than Python for large and complex applications when speed is
>important,

I'd agree that Lisp is faster, but your use of the term "large and complex
applications" seems out of place and spuriously connected with the
speed issue. These are really two different issues. I'd argue that
Python's _automatic_ module system makes it better for large projects
than Lisp, for example. As for Python's speed... yep, it needs work.

>* Use an object system that has multiple dispatch....

IMO, this is highly overrated.

>* Create and manipulate symbolic tree-based data structures with the
>greatest of ease.

Cons cells are truly antiquated, and are, in my opinion, a liability
to Lisp. That cons cell manipulation is part of the savoir faire of
Lisp programming is not in its favor. 

>* Macros make CL a "programmable programming language". For some, that's far
>more than they'll ever need. For others, it's close to essential. It depends
>on your needs. (I personally have no need for macros, but find I Lisp
>remarkably powerful even without them).

The generality of the s-expression (i.e., the universal easy to parse list
of parens, as it were) hen combined with Lisp's macro system are amongst
its best features. The ability to create special purpose domain-specific idioms
is essential for solving certain types of programming tasks, and lends itself
well do to knowledge representation and the like.

C//




More information about the Python-list mailing list