[Python-3000] Announcing PEP 3136 (original) (raw)
Matt Chisholm matt-python at theory.org
Tue Jul 10 03:33:07 CEST 2007
- Previous message: [Python-3000] Announcing PEP 3136
- Next message: [Python-3000] Announcing PEP 3136
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Jul 3 2007, 10:14, Guido van Rossum wrote:
On 6/30/07, Matt Chisholm <matt-python at theory.org> wrote:
I've created and submitted a new PEP proposing support for labels in Python's break and continue statements. Georg Brandl has graciously added it to the PEP list as PEP 3136:
http://www.python.org/dev/peps/pep-3136/ I think this is a good summary of various proposals that have been floated in the past, plus some new ones. As a PEP, it falls short because it doesn't pick a solution but merely offers a large menu of possible options. Also, there is nothing about implementation yet.
I was hoping the community would pick their favorite option. And I planned to address implementation if the PEP was well received.
However, I'm rejecting it on the basis that code so complicated to require this feature is very rare. In most cases there are existing work-arounds that produce clean code, for example using 'return'. While I'm sure there are some (rare) real cases where clarity of the code would suffer from a refactoring that makes it possible to use return, this is offset by two issues:
1. The complexity added to the language, permanently. This affects not only all Python implementations, but also every source analysis tool, plus of course all documentation for the language.
Not knowing anything about the implementation details, I can't argue with that.
2. My expectation that the feature will be abused more than it will be used right, leading to a net decrease in code clarity (measured across all Python code written henceforth). Lazy programmers are everywhere, and before you know it you have an incredible mess on your hands of unintelligible code.
Are break / continue currently abused more than they are used right, or used to make code difficult to understand? I am trying to come up with an example of mis-use of labeled break or continue that is mitigated by the absence of labels, and I can't quite think of one. Maybe I'm being unimaginative. :)
I realize this is a heavy bar to pass, and somewhat subjective. That's okay. There is real value in having a small language. Also, as I said, while there are no past PEPs to document it, this has been brought up and rejected many times before.
So, I don't quite agree, but you're the boss. If this has been rejected before, I don't want to waste everybody's time discussing it again. Should I add your justification to the PEP and change it's status?
-matt
P.S. Thanks to everybody who read the PEP and commented. :)
- Previous message: [Python-3000] Announcing PEP 3136
- Next message: [Python-3000] Announcing PEP 3136
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]