Backwards Compatibility: Long Live Python 2.xx!

Posted on November 5, 2009

chrism makes a good point: backwards compatibility is what will keep people developing on and updating the 2.xx series of Python interpreters.

It’s the key feature that is preventing most developers from adopting 3.x. Python 2.0 was released in October 2000 which makes it nearly a decade old. Lots of software was written on it since. There were a few bumps along the way, but that was to be expected. 2.6 is a very stable release and will only get stronger. Migrating all that code or re-writing it entirely generally isn’t an option for working programmers. We’d rather find the most painless way to keep our software running and maybe get a few performance or platform patches in along the way.

I still haven’t done any serious Python 3 development. I really don’t see the point. The only really cool language feature can just be imported from __future__. I haven’t really been compelled to try and port any libraries or systems I use as I don’t really see the benefit yet. All my Python 2 code works just fine as is and why fix what isn’t broken?

It’s not necessarily a case of “worse is better,” but one of cost and benefit. There isn’t a good enough benefit to go through the pain of porting large systems and libraries over to Python 3 yet. Maybe we’ll see it when they get to 3.6 or 3.7… in about 10 years or so. Until then I’m not really worried. Python 2.x will continue to be developed and improved in that time as well. Who knows? Maybe Python 3 will be the obsolete version.