4 ms·
The py2 to py3 transition seems to have gone very poorly, although most of the pain from that is behind us now.
by viscanti 3y ago
The py2 to py3 transition seems to have gone very poorly, although most of the pain from that is behind us now.
- jefftk 3y agoThat was a seriously bad call, but it was a single one and he's made a ton of other decisions over the years.
- thiht 3y agoHonestly I blame the community. The transition was slow (Python 2 was supported in parallel to 3 for a long period of time so there was more than enough time to migrate), relatively easy to do, and brought huge benefits to the ecosystem. It could have been done and forgotten in 2 years if some community members had not been dicks about it.
- svieira 3y agoIt really seemed that the issue was mostly "Unicode is really hard if you haven't thought _deeply_ about it" because application code, library and framework code, _and_ "system" Python code had to go through several iterations of "here's how to do it right" before something reasonable came out that solved issues for most / all stakeholders. And the Swift / Raku people are still sitting on the sidelines smiling, knowing that there are a lot more "lenses" to view text through that Python doesn't make easy (but neither does Haskell, JS, or Java, so there's good company in good-enough-for-now land).
- imtringued 3y agoMost of the breaking changes did not justify upgrading.
- hajile 3y agoI blame a lack of tools. JS devs have been transpiling for years now and it works. Python should have released a conversion tool that could automatically convert most stuff and identify the stuff it couldn't convert. This kind of directed upgrade would have made the process much easier for developers to actually accomplish.
- LordDragonfang 3y agoI'm confused, because isn't that exactly what they did? What was wrong with 2to3? https://docs.python.org/3/library/2to3.html https://docs.python.org/3/library/2to3.html
- hajile 3y agoIt didn't work well at all in my experience. Given how much code was thrown out rather than ported, I'm guessing that I'm not alone.
- viscanti 3y ago> Honestly I blame the community. Sure. The point is that a community can make things go poorly, with or without a BDFL.
- collinmanderson 3y ago> The transition was slow Here's the timeline the way I think about it: - 2008-2012 Python 3 becoming usable (byte formatting, six library) - 2012-2016 Libraries (Django, etc) becoming compatible - 2016-today Applications (Trac, Ansible, Chrome, etc) becoming compatible. It took a lot of time for the ecosystem to be ready. Yes, there was a lot of stubbornness, but that's reality. There are many things that could have been done to make the transition go smoother.