IMO the biggest reason to use Python3 is its concurrency support via async + await.<p>Fixing the unicode mess is nice too of course, but you can get most of the benefits in Python2 as well, by simply putting this at the top of all of your source files:<p>from __future__ import unicode_literals<p>Also make sure to <i>decode</i> all data from the outside as early as possible and only <i>encode</i> it again when it goes back to disk or the network etc.