...and therein lies the difference.
Yeah. But only because they rendered the old websites in various quirks modes[1] that emulated the rendering engines of the old web browsers.
Thankfully, web browser developers did not share the analagous mindset to the people saying 'lets stick with python2-compatible semantics forever', or we'd still be writing sites that had to be backwards-compatible with IE6, instead of having the option to specify a modern doctype and use IE6-incompatible markup (the analogy to using a python3 shebang line and writing python2-incompatible code).
The sites worked. Quirks mode is now being phased out, but it served its purpose. The analogy Im making is obvious:
Python 3 should have run python 2 code and slowly rolled old semantics into depreciation; this whole mess could never have existed.
Its not as simple as 'just port your code and run python3'
There also isn't really anything as drastic as the bytes/strings/Unicodes left to change.
(But these are better answers to worries about Python3 than they are answers to porting 2.x code bases)
If I switch to anything, I'll probably switch to Go.
(I originally typed 2.7, which is nonsense.)
Personally, for me switching to 3 is a massive hindrance and probably I'll never do it. For the kind of things I use Python, the changes are extremely significant and it actually seems to me like a step backwards. It may be an improvement in other respects, though. I don't know.
I think this is what is often happening, given that Go is attracting more Perl/Python/Ruby types than its original target audience of C/C++ developers.
Python 3 compatibility far outnumbers incompatible packages now: http://python3wos.appspot.com
(That doesn't make it hard or anything, but it seems lots of projects that depend on it were waiting)
https://github.com/boto/boto/issues/1127
and also the py3kport branch:
It's not like I can just decide to drop the dependency on boto and twisted from all my work code and migrate to something else.
I understand that these are opensource projects and I should be submitting patches to make the migration faster, but from a business point of view, I have absolutely nothing to gain by doing that instead of just sticking with 2.7.
and Twisted seems to be making good progress:
People won't leave Python 2.7 for Python 3.x, they'll go to other languages. Python has no right to its users.