seriously. I think we have to treat it as legacy code now.
Seriously, it’s been 10 years since Python 3 came out, Python 2.x has been supporting legacy code since then.
And let's not understate what a big deal it was to break compatibility like that. Porting a sufficiently complex project is non-trivial.
===
My company has >1 million line of python 2.7. About 1.5 year ago we managed to pass our test harness (about 80% line coverage) in python 3. At the moment we can't do that but we believe if we tried hard for a few weeks we can do it again too. I don't know how we define "legacy code" but I code in this codebase everyday and the code is actually very pretty and understandable. We also have a python 3 project (only a few thousand line of code) and god that code is definitely ugly as shit. Even after python2 goes unmaintained, I will still think our python3 code looks more like legacy.
Can you please give some examples? I've recently picked up Python 3, wondering what well known traps I should avoid.