6 ms·
One of the easiest compared to what? Certainly not a Python point release. A couple of points: 1. Python core dev pretended Python 3 was good and ready by, lik
by lvh 7y ago
One of the easiest compared to what? Certainly not a Python point release. A couple of points:
1. Python core dev pretended Python 3 was good and ready by, like, 3.1. It wasn't.
2. While your problem may have been painless (I'm glad), that doesn't mean that everyone who complained was just complaining.
(I use Python 3 as the default now, but as someone intimately involved with an async IO library at the time it came out, I maintain that a) the transition was botched b) core dev did not listen to any of the problems people pointed out for _years_.)
To give you an idea of what botched means: several people, names withheld to protect the guilty, had to wade in 6 months worth of shit to get a 2.x release that made TLS vaguely OK, in, like, 2014?
- johnmaguire2013 7y ago> Python core dev pretended Python 3 was good and ready by, like, 3.1. It wasn't. I would expect any stable release of software to be "good and ready." Can you explain what was wrong with Python 3.0 and 3.1? > core dev did not listen to any of the problems people pointed out for _years_ What problems were those?
- kortilla 7y agoStrings in python3 were terrible for memory well into mid-3. Raymond Hettinger is a core dev and he recently stated on Twitter that he didn’t feel py3 was a clear upgrade win until this most current release.
- zurtex 7y agoRaymond has been consistent in saying Python 3.6.1 was the release where Python 3 became better than Python 2. That was March 21, 2017, and we're now in Python 3.7.4. I appreciate the general point that that's far more recent than Python 3s initial release but it's also a large exaggeration to say "until this most current release". Also to understand why it took so long is because Python 2 kept improving after Python 3s release. Python 2.7 was a great release and many further features from Python 3 got backported in it's 2.7.x point release.
- mixmastamyk 7y agoThere were very few new features, only breaking changes. With the exception of Unicode defaults which few yet understood.
- ben509 7y agoA major, breaking issue[1] was how Python 3 handled missing LC_* variables. By default, a Python script would simply crash with any non-ASCII input or output. It was fixed[2] in 3.5[3]. [1]: https://bugs.python.org/issue19977 https://bugs.python.org/issue19977 [2]: https://www.python.org/dev/peps/pep-0540/ https://www.python.org/dev/peps/pep-0540/ [3]: https://docs.python.org/release/3.5.0/whatsnew/3.5.html https://docs.python.org/release/3.5.0/whatsnew/3.5.html
- dahart 7y agoPython 3.1 came out 10 years ago. 3.2 was released in 2011. What does that mean about the complaints since, let’s just say 2015 to be fair?
- dna_polymerase 7y agoI heard several people saying that 3.6 was the first Py3 worth transitioning to. Largely for async (I think async/await came to live then). There is this take on performance: https://hackernoon.com/which-is-the-fastest-version-of-python-2ae7c61a6b2b https://hackernoon.com/which-is-the-fastest-version-of-pytho...
- pfranz 7y agoI do think "worth transitioning" is the final group of people who have the most reason to hold off. If new features are what made it worth transitioning, then it probably was 3.6 with async/await. If you relied a lot of unicode and already had a mature codebase, you'd wait too. If it was a new project you'd probably start with 3 much earlier because of unicode.
- erichurkman 7y agoFor me, having run a slew of large Python code bases, 3.3 was the first 'useful' version to upgrade to as it re-enabled u"string" syntax. Without that, making 2/3 compatible code was hard. 3.5 fixed % formatting for bytes, further making 2/3 transitions easier (or harder, depending on your use/abuse of strings vs bytes). 3.6 added the first 'exciting' new feature: f"formatted string {literals}" if you don't have an asynchronous type project that can make good use of async/await.
- sametmax 7y agoOrdered dicts and f-strings are also very sweet!
- GeorgeTirebiter 7y agoAnd optional type specifiers. This was the key for me.
- diminoten 7y agoYou've got to let go of these grudges. Time has past, enough time that you shouldn't be complaining about these things here, because all you're doing is giving the Python 2 "out of my cold dead hands" crew more ammo. Just let it go...
- zerkten 7y ago> 1. Python core dev pretended Python 3 was good and ready by, like, 3.1. It wasn't. IIRC the messaging from Guido and Python core dev circa PyCon 2008 and 2009 was that it was good enough for people to start thinking about how they might migrate. This resulted in experiments with different approaches to migrations, maintenance of versions for Python 2 and 3, etc, but at that time there wasn't a clear end date and no rush to migrate. It seems like a lot of people misinterpreted what was actually said. Similar misinterpretations seem to happen within the wider internet community around the GIL and perf considerations. That cliff is finally here ten years later after a lot of experience with migrations.
- riquito 7y ago> 1. Python core dev pretended Python 3 was good and ready by, like, 3.1. It wasn't. The post you're responding to starts verbatim with `Python 2 to 3 (at least by 3.3 or so)` and your reply is about Python 3.1, released 3 years earlier. The amount of changes was quite big.