By Jonathan Corbet
November 30, 2011
It has been almost exactly three years since the
Python 3.0 release was announced. This
release deliberately broke compatibility with version 2.x of the language,
leaving a lot of old baggage behind with the idea of easing future
development of both Python and programs written in Python. It is fair to
say that Python3 has not yet displaced its predecessor; as can be seen on
the
Python3 wall of shame
site, there is still a lot of Python2-only code out there and more continues to
be written. Before writing off Python3 as a failure, though, it is worth
looking at some of the work being done to push the transition to this
version of the language, much of which is happening in the context of
distributions.
The most ambitious Python3 work, arguably, is happening at Ubuntu under the
guidance of longtime Python hacker Barry Warsaw. The Ubuntu developers are
working to port a number of desktop applications to Python3, with the idea
of pushing the necessary changes upstream. If upstream is not receptive to
the changes, Ubuntu will do the port
regardless:
We want to get upstream package authors and application developers
to support Python 3 as much as possible. I hope there will be no
cases where a distro has to fork a package or application to
support Python 3, although we will do it if there's no other way.
Most likely for Ubuntu though, that would be pushing the changes
into Debian.
The list of specific applications has not been posted anywhere, but the
long-term goal has been made quite clear:
Our goal is for the Ubuntu 14.04 LTS release (in April 2014) to
have no Python 2 on the release images, or in our "main" archive,
so everything you'd get on your desktop in a default install would
be Python 3. For the upcoming 12.04 LTS release, I'd be happy if
we had just a couple of Python 3 applications on the desktop by
default.
The other distribution that has done a lot of Python3-related work is
Fedora, though, as described by Toshio
Kuratomi, the emphasis is a bit different. There is no big push to port
specific applications or to set a deadline for pushing Python2 out of the
default install. The work, instead, is more low-level:
Unlike Barry's work with Ubuntu, though, we're mostly chiselling
around the edges; we're working at the level where there's a module
that someone needs to run something (or run some optional features
of something) that runs on python3.
The results of this work can be seen on the Fedora Python3 page.
The Python3 interpreter itself was added in the Fedora 13 release;
since then, work has gone into increasing the number of modules available
for developers wanting to work on Python3 applications. Quite a bit of the
necessary module support is now in place, but there is also still a long
list of modules that have either not been ported to Python3, or that have
not yet been packaged for Fedora.
In comparison, the Debian Python3
page seems like a desultory effort. There are some reports that Python3 on Gentoo is currently a
bit painful to use; Gentoo seems to be short of developers able to work in
this area. OpenSUSE packages Python3, but there does not appear to be any
public information about an organized push toward a transition there.
These distributions, it seems, are mostly waiting to see what happens
elsewhere.
Distributors can play a major role in the adoption of major new language
versions. Some of us still remember the pain caused by Red Hat's slow
transition to Python2 many years ago. Nobody can accuse anybody of having
acted with undue haste with regard to Python3, but it does seem that some
distributors have decided that it is time to make something happen in that
area. As that push gains momentum, we may be hearing more about Python3 in
the next year or two.
(
Log in to post comments)