Django strongly pushed users towards using Unicode everywhere internally and only converting tofrom bytestrings at the system boundariesSure . That ' s always been the right way to do text in Py 2 if you ' re really dealing with text . The problem with Py 3 is that it makes it much harder to work at the bytesstring boundaries it really doesn ' t want you to treat bytes as strings , which makes writing the framework itself hard where all the HTTP IO is dealt with . It ' s no coincidence that one of Py 3 ' s longstanding critics , Armin Ronacher , is the author of a web framework . It ' s getting better as the core devs slowly add back some of the bits they ripped out , but you still have the problem of surrogate escapes , which are IMO harder to deal with than errant bytestrings in Py 2 , which is precisely what Py 3 was supposed to solve . At least unicode and str are different classes in Py 2 Py 3 str objects containing surrogate escapes are neither marked in any way nor roundtrippable . asyncioAt this point , asyncio is still an inferior version of Twisted . The bakedin syntax in 3 . 5 is pleasant , but asyncio lacks features , is badly documented even compared to Twisted , the poster child of bad documentation , and so complex that it ' s really hard to get your head a r ounddontunderstandasyncio . all the new shiny is being added to Python 3 So far , there aren ' t really any compelling new features they should have based Py 3 on stackless , imo . That would have made it a much more interesting proposition . By all appearances , for many developers , Py 3 ' s new features don ' t outweigh its propensity to die in flames in situations where Py 2 copes just fine . the fact that Python 2 is in maintenance modeQuite true . But that ' s also a fuck you to Py 2 developers . Py 2 developers have some very real concerns with Py 3 ' s currently halfbaked text handling which the core devs acknowledgepiecesinpython 3 unicode . EOLing Py 2 without addressing them was not the right way to go , imo . At this point Py 3 is 8 years old , it looks like they aren ' t going to be addressed . At least not any time soon . So if , like me , you write the kinds of programs Py 3 is not suited for , and with the core devs showing little interest in making Py 3 more suitable for those kinds of programs while killing off Py 2 , it ' s time to look elsewhere .