Why don't people like lisp?

Pascal Costanza costanza at web.de
Mon Oct 20 15:25:55 EDT 2003


Alex Martelli wrote:

>>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.

Who cares about committees? I don't.

Yes, there exist committee-driven standards for Scheme and Common Lisp. 
But they are not by far as limiting as those for other languages.

In the case of Python, couldn't you rightfully regard it as driven by a 
one-man commitee? ;-)

>>With Python, you have to stick to the constructs the languages give you.
> 
> 
> Which include roughly the same paradigms as the above, BTW.

Yes, roughly.

>>When you want to add domain-specific abstractions on the language level,
> 
> 
> Specifically: when you want to ALTER SYNTAX...
> 

If it were only about making small alterations to the syntax, I wouldn't 
lead this discussion. I mean what I say, I am talking about adding 
full-fledged language constructs.

>>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*.

Exactly. Lisp-style Macros make these things a breeze. The other 
alternatives you suggest are considerably more complicated. As I have 
said before, Lisp makes the simple things a little bit harder (-> syntax 
for beginners), so that the hard things become considerably simpler (-> 
adding sophisticated abstractions in order to considerably reduce the 
amount of code for complex tasks).

> 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.

I know about these choices, I have tried them all. I have written 
compilers, interpreters, with and without parser generators, and have 
co-designed and used transformation frameworks. These things are 
considerably harder to build, and you need to spend a considerable 
amount of time on the technology itself which distracts you from solving 
the problem at hand. With Lisp-style macros, these things are much 
simpler to handle once you have gotten it.

> 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

You still have a wrong idea of how macros work. Macros are of course 
also only add-ons. You don't alter unrelated syntax or unrelated 
portions of source code, and you don't change fundamental semantics.

Instead of spreading misconceptions you should really start to get to 
know the things better that you criticize.


Pascal





More information about the Python-list mailing list