The magnitude of the migration to Python 3, illustrated
June 29, 2012
I was just reading Nick Coghlan's Python 3 Q & A. and ran across this:
(It should be noted here that based on the release schedule, Ubuntu 14.04 is currently scheduled for April 2014, with a feature freeze probably happening around six months earlier.)
I'm afraid that my reaction to this involves a certain amount of grim laughter. To explain why, let's talk about the magnitude of the effort involved in making this sort of transition for a Linux distribution; in particular, I am going to look at Ubuntu 12.04 and Fedora 17.
On an Ubuntu 12.04 machine more or less configured as a desktop and with
a decent package selection installed, there are around 240 executables
installed that use Python 2, from around 90 different Ubuntu packages,
with over a hundred programs that are directly run by people (ie are in
On my Fedora 17 workstation (which has quite a number of packages) there
are around 310 executables installed that use Python 2, from over 130
packages; over 200 programs are in
But the bad news is not done yet. On both Ubuntu 12.04 and Fedora 17, there are no non-Python packages that use Python 3. Zero. Zip. None. The only Python programs that use Python 3 come from Python 3 itself. And if you want another bit of bad news, neither Fedora 17 nor Ubuntu 12.04 even install Python 3 by default. New, stock installed systems are Python 2 only. This is not a migration that is in progress; this is a migration that hasn't even started yet.
(By the way, as far as I am concerned this means that Ubuntu 12.04 can't be fairly described as 'shipping Python 3', merely as having it available.)
Sidebar: why not installing Python 3 by default matters
Imagine a new Python user on a Fedora or Ubuntu system. The most
convenient version of Python for them to start using is one that's
already on their system (especially the one that's called '
(Among other things this affects people who are casually curous about how things are in Python 3. Casual curiosity doesn't survive work.)
Or in short: installing Python 3 by default makes it enticing. Not installing Python 3 by default makes it unenticing.
* * *
Atom feeds are available; see the bottom of most pages.