Why Python 3 Exists
So Python 2 did not have super obvious string handling.  One of the odd things that they seemingly could have fixed pretty easily is to change the default encoding from 'ascii' to 'utf8'.  That would have fixed a bunch of the UnicodeDecodeErrors that were the most obvious problem with strings: http://www.ianbicking.org/illusive-setdefaultencoding.htmlIf they had to make Python 3 anyway, I think the main thing they were missing is that they should have added a JIT.  That makes upgrading to Python 3 a much easier argument.  If the only point of the JIT was to add a selling point to Python 3, that probably would have been worth it.