My name is Ram Rachum, and I'm a Python software developer based in Israel.

This is my personal blog. I write about technology, Python, programming and a bunch of other things.

GitHub profile

Personal Website

16th May 2011

Text

Is something blocking you from moving to Python 2.7?

I didn’t move to Python 2.7 yet. That is, I don’t consider it my main Python version. My main version is Python 2.6. I consider Python 2.5 the past, Python 2.6 the present, Python 2.7 the future, and Python 3.x the distant future. When I package GarlicSim for end-user distribution I do it with Python 2.6.

Now, I’m a big fan of using the latest version of Python, in order to both take advantage of new features and bugfixes, and also to help advance the entire Python community to more advanced versions. If we all adopted new versions of Python as soon as possible, and ensured our packages and services support them, it would be much easier for our fellow Python developers to upgrade as well. This is especially true for Python 2.7 which serves as a bridge to the holy grail, Python 3.x.

I try to do my part: GarlicSim supports Python 2.5, 2.6, 2.7, 3.1 and 3.2. But unfortunately it’s sometimes hard to move to new versions because existing technologies don’t support them yet.

For me the blocker is Psyco. Psyco’s JIT compiler speeds up my code by several times. It’s really awesome. But Psyco doesn’t support Python 2.7, and it’s pretty much the reason that I don’t move to Python 2.7. It seems that all development effort is focused on PyPy, and while PyPy is a super-awesome project, you can’t really use it if you use C extensions. (Unless you’re willing to dig into cpyext.) The cool thing about Psyco is that you just import psyco; psyco.full() and your code becomes faster, regardless of which third-party packages you use. So for me upgrading to Python 2.7 means making my program several times slower, which is a price I’m not willing to pay.

So Psyco is what’s blocking me from using Python 2.7. What’s blocking you?

Comments
All content in this website is copyright © 1986-2011 Ram Rachum.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License, with attribution to "Ram Rachum at ram.rachum.com" including link to ram.rachum.com.
To view a copy of this license, visit: http://creativecommons.org/licenses/by-sa/3.0/