Re: Python breaking changes
It's not all about strings and bytes. The work for some C extensions is not non-trivial because they're no good, because they'te non-trivial. At least so I've been told by a Python core developer… ;-)
The switch would have been a real problem if the original Python 3 schedule had been maintained which placed the entire burden of migrating code on the developer: all downside with, at the time, no upside (slower, needs more memory). Fortunately, the PSF sponsored the migration of some popular libraries and frameworks and in the meantime, for the few projects that haven't made the change alternatives have become available: the large number of libraries as open source helping here. One notable example was pillow, the fork of PIL which Fredrik had abandoned.