John Roth said:
Um - I see no mention of "AST" in that article at all. He's mostly
talking about "Language Oriented Programming" (seems to be another
term to describe DSLs) and "Language Workbenches".
This shows one reason _why_ designing a language with the basic
AST representation as primary may become a big deal. Maybe
not, too.
This sentence is meaningless without the definition of AST that I
asked for.
There have been proposals to add them to Python for as long as
I can remember. They have always been shot down. Vigorously.
PEP 343 is marked as accepted.
The basic issue here is neither the collection methods nor the
closures. It's a compact yet readable syntax that puts them
together. That's what one should get out of the Fowler piece:
how nice it is to be able to do some rather common things
compactly.
All steps in that direction have always been resisted.
So you're not complaining about missing functionality, you're
complaining about syntactic sugar. That's not really in line with the
rest of your article, which seems to be complaining that python is
missing out on adding important new functionality.
I'd say resisting such changes is pythonic. Signaling that you're
switching from an expression to statements with a magic character is
hardly readable; statements should look like statements, not
expressions.
And I never suggested you were.
So you're dropping the complaint that Python doesn't have one standard
GUI?
I've already explained that, if you want to invoke "only one way"
then list and generator comprehensions are the violation since
there were other ways of doing it.
First you argue that python isn't improving. Now you complain that
improving some things (and thus obsoleting others) is a bad thing.
LCs are clearly superior to map and filter. They replace two builtin
functions with one more readable language construct.
He just blogged on that yesterday; I'm going to have to look at
it in detail. Not something to look at in the middle of composing
a response. Please note that it's in terms of the Python 3000
framework, which should be noted in context of your first point
at the top of this post.
Yup. I goofed - I should have listed them as the only proposal I knew
of for new features to Python 3000.
It seems to be the concensus on this group anyway: declarative typing
does not give enough improvement in program correctness to override
more concise programs and TDD. That may, of course, be wishful
thinking on the Python community's part.
"The concensus of this group" is a *long* way from "the debate has
moved on". I agree that it's the concensus of this group - but this is
a group devoted to a dynamic programming language. If you go to a
group devoted to a statically typed language, you'll find a different
concensus. Which means the debate is still very much alive.
You may find it hilarious. I find it kind of sad - painting oneself
into a corner so that upgrades become a pain for the customer
base is not a laughing matter.
No, it's hilarious because of the old saw that if you're drawing
criticism from both sides of a debate, you must be doing something
right.
"I don't want it to change too fast" is the same as "Fat and
happy", just in different words.
So we have one (count him, 1) user who complains that it's changing to
fast. I suspect most readers here would disagree with him.
It seems that your complaint is really that Python isn't going in the
direction you want it to go. The people developing Python are doing
what they think is best for the language. You may think they're
wrong. I know I do at times. Unless we're one of the people doing the
development, our seat on the board is non-voting, so there's not much
we can do beyond complain. If we want a vote, we can work on Python
rather than in Python. In the extreme case, we can secede and become
BDFL of our own variant of Python.
<mike