(original) (raw)
On Oct 15, 2013, at 4:24 PM, Nick Coghlan <ncoghlan@gmail.com> wrote:
this thread still epitomises everything that sucks about soul destroying, energy draining bikeshed painting that makes me wonder why I ever bother trying to make anything better.
FWIW, here's a little history:
\* Last year, one of my clients suggested this feature
based on code his team had been using in production.
\* I thought it might be a good idea, so I scanned the standard
library and some third-party modules to see how well it worked
with existing examples of try/except/pass.
\* I posted the proposal to the tracker over a year ago (issue 15806)
along with some examples from the standard library. I also posted
an egrep search so that others could evaluate it on their own code.
\* Along the way, I did usability testing on some corporate Python
programmers who were attending my intermediate and advance
Python classes. The feedback was positive (expressive, readable,
and concise).
\* In February, I presented ignore() in the keynote for the U.S. Pycon.
Again, the feedback was positive.
\* After some refinements, the module maintainer (Nick) blessed it
and the code was checked-in to the Python 3.4 codebase in early March.
\* This month, I made a minor name change from ignored() to ignore().
\* The next day, Antoine launched this thread and everything hit the fan.
As Nick said, this thread was just awful. I found it painful to read each day.
Shoot from the hip comments were given greater weight than months
of development. Neither Nick nor I were given an ounce of respect
for the thought we put into this or for our long track record of good design.
The python-dev mailing list is a complex (and sometimes dysfunctional)
environment. I understand that everyone on the soccer field feels a need
to step-in and kick the ball to affect the outcome, but this was too much.
To each participant, it may not seem like bike-shedding, but there
were almost a hundred emails in this thread just to kick around six lines
of code that were checked-in seven months ago:
@contextmanager
def ignored(\*exceptions):
try:
yield
except exceptions:
pass
Raymond
P.S. The name suppress() is not as good as ignore(), but I'm so burnt out
on this thread that I just don't care anymore.