That's the version of Python that most of their users actually use -- with no major plans of mass updating.
That's the version of Python that most of their users actually use -- with no major plans of mass updating.
I know that there are domains that are mostly on Python 2, and of course you'll always have legacy / unmaintained things lying around. But "zeee majoritie is Python 2.7!!1111" does not become true by some people chanting it over and over again. The simple fact that frameworks and libraries are moving away from Python 2 already proves that the majority does, in fact, not use Python 2. Otherwise maintainers would also be in an approximate majority to block/veto such changes.
Maybe check your language a little? "zee majoritie", "chanting it over and over" etc, gets tired and offensive soon.
That aside, there are actual numbers for Pypi supporting that. What do you have to counter these?
>The simple fact that frameworks and libraries are moving away from Python 2 already proves that the majority does, in fact, not use Python 2.
It just proves that after 7+ years, some frameworks and libs managed to justify porting over to 3 too. It doesn't say much about which is used more.
99% of Pypi traffic is composed of mirrors and bots. Python 3 toolchains are more likely to use tools like devpi, wheel, and Docker to cache their packages, while Python 2 toolchains are often going to hit Pypi directly.
We're concerned about which version has the majority of users, not about which has more downloads on Pypi.
Every OpenStack build, for example, pulls in hundreds of packages from PyPi.
In terms of real-world use, all of the Python devs I personally know moved to Python 3.
As seen with Django, they were able to support both. I've been able to support both with the code base to some of my projects as well.
Currently I have one project I'd like to be Python3, but it will involve forking two dependencies (owfs and phidgets) and having them support Py3 (phidgets actually builds and entire python3 tree and installs it and yet you can't import anything from it because it's all python2 syntax -_-)
Python 3 has been out for quite some time. I don't see why everyone is still holding out.
> Ansible 2.2 features a tech preview of Python 3 support.
So they are working on it.
What are the alternatives? Forking the language or switching to another language look to have a higher cost.
(auto-correct)
The JS community deals with breaking changes every 3 months or so.
From Python 3.0 the end of support, you have __15 freaking years__, warnings, tutorials and excellent tooling at your disposal. Oh, on a free software. Half made by some charity workers.
Now you made a choice, and there are very good reasons to have made it. We won't criticize it.
But you lost the right to complain.
asyncio is going to be a slow build, as the ecosystem starts unifying around it. But as that happens, we'll be much better off for it.
Plus, 25% of performance, while nice, is not really something that would matter for most Ruby projects. They are web projects, and their bottleneck is not Ruby. Same for Python. While I'm telling you, good unicode support in most european countries is a HUGE deal.
But that's not all. Often People thinking about Python 3 think unicode, but for me there are 2 other things that made my life much nicer:
- better debugging. Error handling is a hell lot better, with better and messages, greater granularity, more safety nets... E.g: you can't compare some objects anymore, you have several exceptions to handle file opening, imports are absolute by default, division is what you expects, a lot more operations are lazy, the stdlib has been cleaned manu redundancies, encoding parameters everywhere, etc. - less verbosity. Writting is consistently reduced. You get finner file boilerplate, shortcuts for OO, unpacking generalization, yield from, f-strings, etc.
Now those are things that are not easy to sell. You don't see them as a reason to migrate when you hear about it. But once you used to them, going back to Python 2.7 feels so bad.