Benefits of moving from Python to Common Lisp?

Tim Bradshaw tfb+google at tfeb.org
Mon Nov 12 06:16:50 EST 2001


Paul Rubin <phr-n2001d at nightsong.com> wrote in message news:<7xlmhddlr3.fsf at ruckus.brouhaha.com>...
> CL, however, doesn't seem to have changed much in the past decade or
> so.  There's no standardization of runtime libraries for doing stuff
> like internet programming

This is kind of tangential, and it's a point I've made before, but it
bears repeating I think.

It's important to understand the difference between languages and
implementations here and what it means for standardisation.  A
language is a class, and an implementation is an instance of that
class.  Languages such as Perl and (I think) Python are *single
instance* classes - there is only one implementation, and the language
is defined implicitly by that implementation.
CL is *not* a single-instance class - there are many CL
implementations - I guess there are O(10) implementations, not
counting variants.

`Standardising a library' for a single-implementation language is a
near-trivial task: you write the library and declare it a standard.

Standardising a library for a multiple-implementation language is
*not* trivial - in fact its very difficult indeed.  It costs a lot of
money to do it - the kind of money that is probably just not available
outside the C++/Java/XML camps, where huge amounts of money has been
spent on standardisation.  Even this huge amount of money has often
resulted in very poor standards.  The CL community has a very *good*
standard, and lacks the kind of huge money needed to generate other
standards, let alone other standards of comparable quality.

I suspect that a lot of CL people (myself included) get rather annoyed
by this repeated comparison between apples (perl, python) and oranges
(CL).  We get especially annoyed because if what you want is
perl-style `standardisation' then you can have that - simply pick a CL
implementation and write to its interfaces.  You get exactly the same
chance of your programs running on other implementations as you do
with perl or python.  Of course you also have the same near-certainty
of getting screwed by the implementor (I live in terror of perl
upgrades, and in fact I stopped doing them a couple of years ago
because every time the version changed some obscure thing broke in
some huge script that I somehow rely on, resulting in a million pages
of hex every time I wanted to print landscape PS or something.  
Someday I will have to upgrade I guess, but I think I'll wait until
perl 7.)

--tim



More information about the Python-list mailing list