Just to add a comment from someone who's been around Python a long time -- a (very) occasional contributor, never a maintainer.
I have every sympathy for the core maintainers -- Python is a very large and complex project that is relied on by an enormous number of people.
The size and complexity (and age of the code base) make it a real challenge to maintain, and the size of the user community makes the consequences of a regression massive.
> Tests make us a little more certain, but it is still a guess.
Exactly -- I am a big fan of unit testing and TDD. But whenever I teach about unit testing, I always say:
"comprehensive tests are a fantasy"
Think of how hard it can be to even get 100% coverage in your tests. Then think about how the fact that every line of code was run in no way means every function has been run with every possible input. Then think about the fact that cPython is a language implementation -- everything in the interpreter is being driven at another level by arbitrarily complex Python code.
I think it's a near miracle that anything gets updated or fixed without major regressions!
Finally -- cPython has been around a long time, and used an enormous amount -- any existing bugs have been avoided or worked around already by thousands of projects -- almost by definition, ANY regression is worse than any bug that still exists today (Security issues being an exception).
Obligatory XKCD:
Thanks to all contributors and maintainers,
-CHB
PS: All that being said, we, as a community, could do better. For instance, someone like me could do high-level triage on bug reports -- I need to set aside some time to do that.
--
Christopher Barker, PhD (Chris)
Python Language Consulting
- Teaching
- Scientific Software Development
- Desktop GUI and Web Development
- wxPython, numpy, scipy, Cython