On Sun, Aug 17, 2014, at 09:02 PM, Guido van Rossum wrote: > On Sun, Aug 17, 2014 at 6:29 AM, Barry Warsaw <ba...@python.org> wrote: >> On Aug 16, 2014, at 07:43 PM, Guido van Rossum wrote: >> >> >(Don't understand this to mean that we should never deprecate things. >> >Deprecations will happen, they are necessary for the evolution of any >> >programming language. But they won't ever hurt in the way that Python 3 >> >hurt.) >> >> It would be useful to explore what causes the most pain in the 2->3 >> transition? IMHO, it's not the deprecations or changes such as print -> >> print(). It's the bytes/str split - a fundamental change to core and common >> data types. The question then is whether you foresee any similar looming >> pervasive change? [*] > > I'm unsure about what's the single biggest pain moving to Python 3. In the > past I would have said that it's for sure the bytes/str split (which both the > biggest pain and the biggest payoff). > > But if I look carefully into the soul of teams that are still on 2.7 (I know > a few... :-), I think the real reason is that Python 3 changes so many > different things, you have to actually understand your code to port it > (unlike with minor version transitions, where the changes usually spike in > one specific area, and you can leave the rest to normal attrition and > periodic maintenance). >
In my experience bytes/str is the single biggest change that causes the most problems. Most of the other changes can be mechanically transformed and/or papered over using helpers like six. The bytes/str change is the main one that requires understanding code and where it requires a serious untangling of things in code bases where str/bytes are freely used intechangingbly. Often times this requires making a decision about what *should* be bytes or str as well which requires having some deep knowledge about the APIs in question too. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com