The (future) problem with Python 2.7

February 25, 2012

To put it one way, the future problem with Python 2.7 is that the Python developers have very emphatically said that there will not be a Python 2.8. That's not a problem by itself, but it becomes a problem when combined with what I noted in Python 3 from a sysadmin's perspective, which is that Python 2 is all but certain to stay in Linux distributions for at least five years or so (and quite possibly longer). And not just stay there as an option; for a significant amount of that time, Python 2 will be the primary version of Python. It will be the version of Python that various system tools are written in, it will be the version of Python with all of the extension modules and packages, and it will very likely be the dominant version for actual user code.

(This follows from what I noted in that entry, which is that Linux distributions are only just now starting to think about moving some of their own tools from Python 2 to Python 3. And this is for fast-moving Linux distributions on the leading edge, not the slower moving Linux distributions with long term support.)

Five years (or more, since Python 2.7.2 is already almost a year old) is a long time for a language and a standard library to go without bugfixes, changes and improvements. It's also quite an opportunity for the gap between Python 2.7 and Python 3.x to widen, since even things from Python 3 that could be brought back to the Python 2.x series no longer will be (a bunch showed up in Python 2.7.2, but they're the last).

From some viewpoints, this is a feature; Python 2 is for legacy code, things that people are not interested in migrating for whatever reason, and anyone who wants new features should be using Python 3. From the other side, this is a naive position; the dominant and in many ways pragmatically better version of Python is still Python 2 (because, among other things, of far wider support in packages and addon modules), so new code will continue to be written in it for years. That is, in a language version that has been declared obsolete and at the end of its life.

I don't have any answers here. I just have the gut feeling that this is going to be a problem, that a significant number of people are going to keep programming in Python 2 and will not like the situation.

(Unless things go horribly wrong with the slow migration to Python 3, I don't think that the situation will go so far that Linux distributions will do their own Python 2.7.2+ or 2.7.3 release. I expect people to be vaguely disgruntled, not in active revolt. Still, a bunch of people being vaguely disgruntled doesn't do your programming language any favours.)

Written on 25 February 2012.
« Blogs and the problem of indexes
How much spam is forged as being from who it's sent to? »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sat Feb 25 02:23:02 2012
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.