There’s a bunch of problems with this article.
So in order to argue that Python 3 is bad and development should stop and shift back to Python 2, it is a necessary prerequisite to explain why an all-volunteer army should stop volunteering in the way that they want to volunteer and start volunteering in the way that you want them to volunteer.
This frames the argument in stupid and highly misleading terms. The “Python 3 is bad” argument is a cause-and-effect argument: if the Python developers keep Python 2 deprecated while it’s heavily used, then the community will split, and there’s a presumption that splitting the community is bad. Countering this requires either disproving the implication or asserting that splitting the community isn’t bad, and this section fails to even attempt to address either of these.
Of the top 200 3rd party libraries, 80% have Python 3 support at the time of this writing.
If 99% of the libraries I’m using have Python 3 support, I’m stuck with Python 2. Unless I have enough time and expertise to port the libraries I’m missing (and of course I don’t), it really needs to hit that magical 100% for this talking point to go away.
This is equally absurd. For example in March 2014 Python 3 downloads overtook Python 2 downloads by a healthy margin 54% vs 46%.
I have to ask: who downloads Python from Python? I literally never have, either at home or at work. Everybody I know gets it from alternate distribution channels. I think this statistic is misleading; for instance, Debian’s popularity contest puts the ratio of installs of 2 to 3 at about 4:1.
Regardless, if downloads of the old, deprecated version of your software only trail the new version by 15%, something is terribly terribly wrong with your migration plan.
[Rails] by the way, is not backwards compatible either
Python 3 would be much less of a big deal if Python broke compatibility in major ways with every minor version. (Of course, Python as a whole would likely also be much less of a big deal.) Comparing your problems to those of a terribly-run project and claiming victory is hardly a compelling argument.
And, of course, the entire article misses the actual giant elephant in the room: huge volumes (I would guess a significant majority) of all the Python code anywhere in the world is internal code for companies which will never be ported because there’s no business benefit whatsoever but which nevertheless must be maintained.
I mean, I get it; you really like Python 3 and you think the improvements were well worth making. I do too! (Well, I happen to think they did Unicode 100% wrong. But everything else was an improvement.) But in the process, they’ve broken it into two languages, and because of the incompatibility I have to use Python 2 at work. So now I’m forced to either use a deprecated language at home or use different languages at home and work; and Python 3 is the worst combination of not better enough and not different enough from Python 2, so I’m not likely to pick it.
Very good points. I’ll add: I find this whole “If you don’t like it, fork it” attitude very bad- it reeks of passive aggressiveness and responsibility dodging, and the reason so many people are turned off from open source projects (I know I am). We are adult members of a community- don’t ask us to “fork off” any time we say anything that displeases you!
This is not a tiny Sourceforge hello world project. Python is a major commercial tool. It is a key part of many companies infrastructure, so much so that they stand to lose millions if Python breaks. I don’t know about the rest of the world, but here in the UK, Python has become the default language in many engineering firms, replacing everything from TCL to Bash scripts to (shudder) C code. And this didn’t happen by chance. It took many years of work by Python enthusiasts, one company at a time.
I know most people who visit forums like this (& Reddit and HN) come from a web background. I don’t know how hard it is to just migrate your code for a web app. But out here in the engineering world, it’s next to impossible. Like @whbboyd says, there is zero business sense to do so. And this is the second problem: A group of hobbyists / cool kids gang is running the show. “Don’t like what we’re doing? Don’t play with us then.”
The original blog pointed out that this decision was breaking the community apart. And I’m not sure the tone of this blog helps at all. This is not something that’s going away.
But I think I’ve said enough. I’ll go fork myself now.
I read the Python 3 is killing Python article and agreed, apparently in error. This author cites numbers and facts that clearly destroy the opposing thesis, which I should add cited nothing concrete.
Last I checked Flask didn’t support Python 3, now it does. Time to use Python 3!