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