The open source Python language is at a crossroads with two major versions available to developers. The end of the road for the Python 2.x branch is now a little closer, with the release of Python 2.7 this week.
Python 2.7 is intended to be the last major Python 2.x release as the open source project aims to help developers migrate to the newer Python 3.x release codebase. Python 3.x first hit general availability in December of 2008. Though the Python 2.x branch is now at the end of the line in terms of new releases, Python 2.x still has a lot of life left in it.
With Python 2.7 developers have backported a number of features from Python 3.1, providing a lifeline for users of both versions of Python.
“The intention was to bind 2.x and 3.x as closely as possible to make porting easy,” Benjamin Peterson, the release manager for Python 2.7, told InternetNews.com. “Backporting features also help projects like 3to2, which help people maintain 2.x and 3.x compatible codebases.”
In addition to the backported features from Python 3.1, the Python 2.7 release will be supported for a longer period of time than a typical Python release. Normally Python releases are supported by the project with bug and security fixes for up to two years. But Peterson said the current plan for Python 2.7 is to offer support for up to five years.
The Python 2.7 release isn’t the first time that the Python project has aimed to provide a bridge between the 2.x and 3.x releases either. The Python 2.6 release, which came out in 2008, was also intended to help smooth the transition from Python 2.x to 3.x.
Though the Python 3.x branch has been out for over 18 months at this point, the migration of Python 2.x users is still an ongoing process.
“Most people are still on 2.x, but are probably eyeing 3.x and considering their eventual porting plans,” Peterson said.
As to what the barriers to adoption are for current Python 2.x developers in moving to Python 3.x there are a few factors in play.
“It unfortunately seems to be a chicken and the egg problem,” Peterson said. “Many developers are waiting for their dependencies to be ported. There still isn’t a WSGI (Web Server Gateway Interface) standard for 3.x yet, which is holding back Web framework developers. Otherwise, I think there’s also a lack of motivation to port and maintain where there isn’t much demand yet.”
While Python 2.7 is the last release of Python 2.x, the Python 3.x series is still in active development. The first beta release of Python 3.2 is set for this October.