3 ms·
It's not that python 3 took a long time to release. It's that it consciously broke compatibilities with pyton 2, and library authors took a long time to port th
by dorfsmay 11y ago
It's not that python 3 took a long time to release. It's that it consciously broke compatibilities with pyton 2, and library authors took a long time to port their library to python 3, so a lot of people writing python didn't even bother looking at it.
- akkartik 11y agoAh, I see, so Python 3 only took a couple of years, about the same as any minor release: https://en.wikipedia.org/wiki/History_of_Python#Version_release_dates https://en.wikipedia.org/wiki/History_of_Python#Version_rele...
- jacobolus 11y agoYou can see Guido’s 2006 talk about the project here for some history https://www.youtube.com/watch?v=UIDdgeISLUI https://www.youtube.com/watch?v=UIDdgeISLUI
- lloeki 11y agoA 10 year transition† around that breaking change was the plan all along ever since PEP 3000 (dating, unsurprisingly, from 2006), with: - time for things to settle and eventual mistakes to be fixed (3.0, 3.1, 3.2) while the 2.x line lives - lockstep 2.x versions that include stdlib and language (vai __future__) feature backports from 3.x line (2.6, 2.7) to get maximum portability and minimum tech debt for new code written on 2.x line. - finally, impetus to transition with non-backported new language and stdlib features (3.4, maybe 3.3 already) and of course, letting time for lib authors to port their existing code. Never has it been the plan for people to instantly port existing, non-lib code to python 3.0 (or even 3.1 or 3.2), and never has it been so that python 3.x instantly obsoletes the 2.x line, and in fact, quite the opposite. So people that like the new-n-shiny and blindly jump onto the latest version bandwagon were definitely in for the roughest ride, and gave Python 3 the bad rep we know. I honestly prefer the way this transition has been handled rather than the "hey everything is compatible except it's not and things are subtly breaking all around" attitude from Ruby which I have to deal with now. † the 10 year figure was somewhere in a ML that I can't seem to get a hold on back when I was working with Python and having to plan for this transition. [PEP 3000]: https://www.python.org/dev/peps/pep-3000/ https://www.python.org/dev/peps/pep-3000/