
On 24.01.2020 11:08, Serhiy Storchaka wrote:
23.01.20 17:20, Victor Stinner пише:
Incompatible changes which require "if <python3>: (...) else: (...)" or "try: <python3 code> except (...): <python2 code>":
* Removed tostring/fromstring methods in array.array and base64 modules * Removed collections aliases to ABC classes * Removed fractions.gcd() function (which is similar to math.gcd()) * Remove "U" mode of open(): having to use io.open() just for Python 2 makes the code uglier * Removed old plistlib API: 2.7 doesn't have the new API
You had years to fix deprecation warnings in your code. And many projects did this long ago. If revert these removals in 3.9 because they break existing code we will have the same problem with removing them in 3.10, 13.11, etc.
I consider breaking unmaintained code is an additional benefit of removing deprecated features. For example pycrypto was unmaintained and insecure for 6 years, but has 4 million downloads per month. It will not work in 3.9 because of removing time.clock. Other example is nose, unmaintained for 5 years, and superseded by nose2.
AFAICS the justification for this proposition is the fact that the necessary fixes to existing code are much simpler if that code needs to support just 3.x-3.10 vs 2.7+3.x-3.10 . In this light, with the breaking changes, we essentially tell the users: "abandon 2.7 or do extra work". Victor alleges that after a year, the option to abandon 2.7 and not do that extra work will be easier to choose. So the dilemma is essentially how hard we push users to abandon 2.7 -- how much tax we incur on them for keeping its support.
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/DDVY3DG5... Code of Conduct: http://python.org/psf/codeofconduct/
-- Regards, Ivan