Blogroll

Forums

python

Poll: Python Version

Edit: Due to popular demand (well a couple of comments) I’ve decided to allow multiple answers to the poll. This should make everyone that uses two versions happy.

With two major versions of Python available to us Python programmers (2.X and 3.X) I thought it would be interesting to see which version the readers of this blog are using and targeting.

Personally I’m still using 2.5 on my Debian box because it’s the default, and 2.6 on my Windows PC. While I have used 3.X and have it installed, I’ve remained on the 2.X branch largely because many of the modules that I play around with are still focused on the 2.X branch so that’s where my focus has remained.

I voted 2.5 since I do that majority of my programing on my Debian box. So now what about you:

17 thoughts on “Poll: Python Version”

Several critical libraries I use still have not been ported to 3.x, so I can’t use it. I switched from 2.5 to 2.6 briefly, then realized if I started using 2.6 features I would have compatibility issues with Jython and IronPython, and it seems a bit of an evolutionary dead end. So, I switched back to 2.5, and don’t feel like I lost much of importance…

For the open source components I provide every version of Python from 2.3 onwards is supported including 3.x. My test harness ensures this. (It also recompiles Python with both two and four byte unicode representation.)

As pretty much everyone else says, for work I stick to 2.6 – the current version on Ubuntu – because so many other packages I need do not support 3.x. The distinction between bytes and unicode would be very useful.

The problem is that even if I fixed the packages for 3.x it wouldn’t help me. The maintainers haven’t put the effort in (and 3.x has been available in usable form for porting for two years). That means it would be a gamble of them accepting my 3.x port. The last thing I want to do is have my own forked copy of a package that I have to maintain. So I am stuck on 2.6. (Note that I also don’t do any of the “advanced” stuff where I could even tell the difference between 2.5 and 2.6).

The way forward is for package maintainers to state what their stance on 3.x is. For example they may say they’ll accept 3.x changes, the project is in maintenance only, or that they are doing the work themselves.

Like others, I’ve wanted to move to 3.x but too many of the packages I depend on aren’t available under 3.x yet. It seems we are caught in this catch-22: people aren’t moving to 3.x because of package dependencies, and the package maintainers aren’t prioritizing 3.x support because not that many of their users have moved to 3.x.

Probably many people is using more than one version. It would be interesting to look at the results allowing to vote for more than one version in order of use. In my case :
2.6 -> 1st (1 point) main
3.1 -> 2nd (2 points) learning, used when libraries are not needed
2.5 -> 3th (3 points) disappearing from my computers. kept just in case
….

Summing all the votes for each version would give a more clear view of the situation

2.6 is my compromise between “getting the awesome new language features” and “being able to use the full range of packages and tools.” I can’t wait for that compromise boundary to move up into 3.x land.

I have a project at the moment where I am trying to use 3.1 and making good progress. Luckily it does not need libraries which have not yet been ported. But for most things it is that latter factor that dictates I am continuing to use 2.6 for most work.