I think it would have been more prudent to have implemented an iterative approach:<p>Python 2.8:
- boring easy to fix changes like division, print function, exception handling syntax, removal of iteritems() &#x2F; etc<p>Python 2.9
- library reorganization (urllib2 &amp; urllib, etc)<p>Python 3.0
- unicode stuff<p>Most organizations that have been lingering at 2.7 for 5+yrs would have long since migrated to 2.9, and would thus be half way to 3.x in terms of backwards compatibility.<p>Now instead, everyone has to introduce the better part of a decade&#x27;s worth of backwards compatibility changes at once, or be left in the dust. Hardly a fair choice.