VB6 versus VB.NET is a worse historic pothole of a version change for arguably the same language.<p>Ultimately the Python 2 -&gt; 3 transition has been as smooth as developers make it. There are certainly a lot of transition efforts put in place, such as the ability to import from __future__ some of the 3 behaviors and abilities and some automated migration tools. At this point, too, most of the major libraries today support 3 and there&#x27;s few reasons not to build for 3 and maybe do a few tweaks to <i>also</i> support 2, if you truly have to. (A lot of good 3 code runs on 2 unmodified and just needing the Python equivalent of polyfill libraries and __future__ imports.)<p>Some of the fracture has been binary ABI compatibility and mini-versions of this struggle can certainly be seen in just about any language with an ecosystem of cross-platform native libraries to support (the brief Node&#x2F;io.js being an interesting fracture more in that it was resolved so amicably so relatively quickly).<p>But ultimately it&#x27;s tough to resolve the psychological and political hurdles: for whatever reason there seem to be &quot;die hard&quot; Python 2 fanatics that hate the direction Python 3 has moved and don&#x27;t seem interested at all in compromise or transition. It certainly doesn&#x27;t seem to be as strong as the hate divide between VB6 and VB.NET (which will likely forever be a weird blood feud until VBA and VB6 programmers die of old age), but still haters are gonna hate.