No, I'm getting sick of my code being broken.<p>My C code from 15 years ago works fine, but code in other languages can end up breaking within a year. I've moved much of my development back to C++ just so I can have reasonable confidence my code will work when I come back to it in a couple of years.<p>I don't care if Python 2.7 never gains another feature, as long as my code will still work in Windows 13 and Mac OS X 10.17.
This again? Python 2.7 is never going away, no matter how much people wish it did. Python is the Cobol/Java of dynamic languages. There is way too much volume of code written in it. This means there is a golden consulting opportunity for those willing to take it: support 2.7 code/libraries for money.
Man, the amount of people and support going for Python 2.7 is mind boggling. Coming from another language, I find the slow adoption of Python 3 insane. Don't you want Python as a language to advance?<p>Python should've abandoned and deprecated 2 ages ago. I still see new tutorials teaching 2. What the hell.
331/360 of the most popular repos on pypi supports py3 <a href="http://py3readiness.org/" rel="nofollow">http://py3readiness.org/</a>.<p>Also python 3 support is increasing, while python 2 support is decreasing overall <a href="https://blogs.msdn.microsoft.com/pythonengineering/2016/03/08/python-3-is-winning/" rel="nofollow">https://blogs.msdn.microsoft.com/pythonengineering/2016/03/0...</a>
I just recently started learning Python for the first time, and at some point I switched from playing with 2.7 to 3.x, and my uninformed opinion is that I'm shocked at how many seemingly completely unnecessary breaking changes there are.<p>Did the parameter names to open()d really need to change? Why did I have to change from io.open() to open() for a stream? Did str.lowercase really need to become string.ascii_lowercase? The number of errors in my toy little program upon upgrading really surprised me.
Well I'm sure this is a naive point of view, but I'm going to put it out there anyway. It seems there are many Python devotees out there who are lukewarm about Python 3, and quite a few who really don't like it at all, hence a slow adoption rate. Right now it seems like the community is fractured along that fault line.<p>Is it too late? Can we back out of the current incarnation of Python 3 and go down another path instead? In other words, turn the slow adoption rate into a plus, call a do-over and mold the new Python into something more people are happy with.
Most everything good from Python 3 has been back-ported to 2.7. Except for built in parameterized tests in unittest.<p>Python 3 has the subTest context manager (which looks great)<p><a href="https://docs.python.org/3/library/unittest.html#distinguishing-test-iterations-using-subtests" rel="nofollow">https://docs.python.org/3/library/unittest.html#distinguishi...</a><p>In 2.7 you must use pytest, ddt, nose-paramemterized or dynamically add test methods to a TestCase class at runtime.
People here keep bemoaning the golang designers' decision to not upgrade their language with things like generics, but suddenly their panties get twisted in a bunch when the Python community actually decides to fix problems in their language.<p>Get off your high horse and upgrade your code. So many people did it before you, and so can you.
There are enough large organizations using Python that no doubt at least one will find it to be cheaper and more convenient to continue maintaining a 2.7 interpreter. Dropbox is working on one just to increase performance. PyPy also has due to how it works fundamentally a huge interest in maintaining Python 2.7 support for the forseeable future.<p>You've to be quite naive to believe that Python 2.7 will retire in 2020. It will only fade from popularity slightly faster.