Why Is the Migration to Python 3 Taking So Long?
The simple reason is that there was no compelling feature to reward you for upgrading. You&#x27;d spend a tremendous amount of effort for dubious return and (until recently) a smaller ecosystem.<p>1. Unicode support was actually an anti-feature for most existing code. If you&#x27;re writing a simple script you prefer &#x27;garbage-in, garbage-out&#x27; unicode rather than scattering casts everywhere to watch it randomly explode when an invalid byte sneaks in. If you <i>did</i> have a big user-facing application that cared about unicode, then the conversion was incredibly painful for you because you were a real user of the old style.<p>2. Minor nice-to-haves like print-function, float division, and lazy ranges just hide landmines in the conversion while providing minimal benefit.<p>In the latest py3 versions we&#x27;ve finally gotten some sugar to tempt people over: asyncio, f-strings, dataclasses, and type annotations. Still not exactly compelling, but at least something to encourage the average Joe to put in all the effort.