Why don't people like lisp?

Alex Martelli aleax at aleax.it
Mon Oct 20 14:44:53 EDT 2003


Pascal Costanza wrote:
   ...
> So why is it that Python is continuously evolving as a language? Do you

Basically because Guido LIKES language design, I think;-).

> think this is going to stop at some stage?

Not as long as Guido's at the helm:-).


> Wouldn't it be better if everyone could contribute to the evolution of a
> language, and then let the community decide what the best approaches are?

Everybody CAN contribute to Python!  Indeed, I've never seen a community
more attuned to open source.  But as for "who decides" -- you DO know that
a camel is a horse designed by a committee, right?  I far prefer to have
one highly respected designer with final decision-making power.  Guido's
not impervious to "the community", of course, but, in the end, it's HIS
final decision to make -- NOT some amorphous committee's.

Note that this delegation of final power IS "the community's decision".

Exactly because Python is aggressively open-source, there's NOTHING
stopping you, me, or anybody else, from taking a CVS snapshot and
forking off our own "python-like language" (presumably keeping binary
FFI compatibility to take advantage of the mainstream's abundance
of libraries and extensions).  But people _don't_ -- thus concretely
recognizing the advantages of sticking to "Python as Guido indented
it" over designing their own language[s].  Even things that may look
like forks to the uninitated, such as Stackless, are anything but --
Christian Tismer took huge pains in Stackless development to turn it
back into a small patch anybody can apply to Python's official sources,
just to avoid diverging from the mainstream.

I think you couldn't CALL your altered language "Python", but there
are plenty of other reptiles and/or British comedy groups that you
can no doubt freely choose from.


> The approach for Lisp is to write a domain-specific language for the
> problem at hand, and then to write the program in that domain-specific

Right.  People who fancy themselves as language designers will surely
be happier that way.  People who prefer to use languages used by better
language designers than themselves, such as me, will be happier with
Python.

> If you want to keep your Lisp program in a specific programming style
> (OOP, functional, imperative, etc.) you can do that either. Lisp gives
> you a choice here.
> 
> With Python, you have to stick to the constructs the languages give you.

Which include roughly the same paradigms as the above, BTW.

> When you want to add domain-specific abstractions on the language level,

Specifically: when you want to ALTER SYNTAX...

> you have to step outside of the language, and for example use program
> generators. Python doesn't give you a choice here.

...you can't "just alter Python's own syntax with your own changes":
you have plenty of choices (implement your chosen semantics within
Python's syntax, use any of N available parsers to parse your favourite
syntax -- user EITHER "program generators" OR interpreters at any
level on the parsed forms -- etc, etc).  You just don't have the one
choice of *altering Python's own syntax wholly within Python itself*.

Describing a situation of having 99 available strategies rather than
100 as "doesn't give you a choice" can be charitably described as
"ridiculous", it seems to me.


> They can't vote with their feet wrt to particular features of the
> programming languages they use, can they?

What are you saying?  Anybody can vote with their editor to alter
whatever set of features they hate.  Well, in practice, at the
moment, only if they know enough C, or Java, or maybe C#, or
O'CAML -- they ARE welcome to download the pypy sources and fork
off those, of course, but if they did that right now their dialect's
performance would be, ahem, somewhat slightly sub-optimal (as in,
HUNDREDS of times too slow -- we're far from turning to various
optimizations that we plan to remedy that!).

But _in practice, people don't_, except for play and experiments
of various kinds.  You can find a bazillion extremely varied
extensions to Python of all imaginable kinds, *BUT* they're ALL
*add-ons*, NEVER alteration of syntax or fundamental semantics
(Stackless had to work hard to ensure unchanged semantics JUST
adding [used to be continuations, now instead] microthreads --
no semantic alteration; psyco builds machine code on the fly
WITHOUT any syntax nor semantic alteration; etc, etc).  The way
Pythonistas are voting with their feet and their editors seems
to be overwhelmingly in favour of Guido, see...


Alex





More information about the Python-list mailing list