Python is truly my favorite programming language. I considered myself to be an ANSI C hacker for a long time, I did and do Java, PHP, Bash. But nothing beats Python. Its elegance, its “pythonic”. So it comes that my product NoTouch Desktop had some code in it that inherited from the early beginnings and it was based on Python 2.4. While there is already a Python 3.2 out in the wild, most people and operating system distributions consider 2.6 or 2.7 standard. Ubuntu 12.04 comes with Python 2.7, as does Mac OS X 10.8.
Not a big deal? Ha! Nobody can imagine what has to be done when a Python-2.4-based software stack is to be ported over to 2.6/2.7. Finding out which backported modules have to go, what has to be rewritten is a tedious task. Sometimes its just plain trial-and-error. In the end we were surprised how things worked out well. I remember when a friend told me how much his company had to invest when migrating from Ruby on Rails 1.8 to Ruby on Rails 1.9. So no disadvantage for Python here.
What proved to be difficult was not just the Python per se. It is the dependency stack we had. So for example our software used an older web.py module that worked perfectly fine with Python 2.4. Updating to a newer web.py (please take a second to remember Aaron Swartz) that would work with Python 2.7 however would break other things. Oh well. Eventually we did it and as already mentioned things worked out really well.
Still, there are some things in software development that you just want to see behind you. Goodbye Python 2.4!