[Python-ideas] A comprehension scope issue in PEP 572
brenbarn at brenbarn.net
Thu May 10 14:23:00 EDT 2018
On 2018-05-10 11:05, Tim Peters wrote:
> So long as I'm the only one looking at real-life use cases, mine is
> the only evidence I care about ;-) I don't really care about
> contrived examples, unless they illustrate that a proposal is
> ill-defined, impossible to implement as intended, or likely to have
> malignant unintended consequences out-weighing their benefits.
You keep saying things like this with a smiley, and I realize you know
what you're talking about (much more than I do), but I'd just like to
push back a bit against that entire concept.
Number one, I think many people have been bringing in real life uses
cases. Number two, I disagree with the idea that looking at individual
use cases and ignoring logical argumentation is the way to go. The
problem with it is that a lot of the thorny issues arise in
unanticipated interactions between constructs that were designed to
handle separate use cases.
I also do not think it's appropriate to say "if it turns out there's a
weird interaction between two features, then just don't use those two
things together". One of the great things about Python's design is that
it doesn't just make it easy for us to write good code, but in many ways
makes it difficult for us to write bad code. It is absolutely a good
idea to think of the broad range of wacky things that COULD be done with
a feature, not just the small range of things in the focal area of its
intended use. We may indeed decide that some of the wacky cases are so
unlikely that we're willing to accept them, but we can only decide that
after we consider them. You seem to be suggesting that we shouldn't
even bother thinking about such corner cases at all, which I think is a
Taking the approach of "this individual use case justifies this
special cases, unintended consequences, and incoherence between
different corners of the language. There are real cognitive benefits to
having language features make logical and conceptual sense IN ADDITION
TO having practical utility, and fit together into a unified whole.
Personally my feeling on this whole thread is that these changes, if
implemented are likely to decrease the average readability of Python
code, and I don't see the benefits as being worth the added complexity.
"Do not follow where the path may lead. Go, instead, where there is no
path, and leave a trail."
More information about the Python-ideas