2012-12-26
Does Python 2 need to evolve?
Here's a question, somewhat motivated by my entry about my anger at Python 3 (in a way that I'll have to explain later): does Python 2.7.x particularly need to evolve, either in the language or in its standard library?
(By 'evolve' here I do not mean 'turn into Python 3'; I mean 'keep being developed in a way that maintains Python 2 compatibility'.)
There are certainly a number of things that would be nice to have in Python 2 (especially for compatibility with Python 3), but I consider that different from there being any clear lacks or problem points. My relatively off the cuff reaction as a user of Python 2 is that I don't think the core language actively needs anything; I don't see any particular painful issues (at least none that have clear solutions that are backwards compatible with current Python).
The standard library is a little bit more complex. I'm not sure that Python 2 includes all of the batteries you need to deal with a modern web environment, but I generally haven't felt that the standard library was clearly lacking something. In fact I have no real sense of what the Python developers feel is worthy of being in the standard library and what stays outside it. So to the extent that I have an opinion, I'd say that the Python 2 standard library doesn't clearly need anything. I wouldn't be surprised to be totally wrong about this, though.
(Again, there's any number of modules that would be nice to have in the standard library (depending on who you ask). I'm just not sure that any are clearly necessary.)
So on the whole, my answer to my question is that Python 2.7 doesn't particularly need to evolve. It would be nice if it kept moving, but Python 2.7 doesn't have any particular lacks; as it is, it's a perfectly good base for development for years to come.
(There is a widespread view that software is like sharks, either moving or dead. I reject this view in general and think it's perfectly possible for software to either come to a stopping point or to reach a point where it only changes in response to outside changes, like needing updating for updated Internet protocols or whatever. If you are a 'moving or dead' person, then the answer to my question is that Python 2 absolutely has to keep evolving.)