Martijn Faassen: The Call of Python 2.8

Devin Jeanpierre jeanpierreda at gmail.com
Tue Apr 15 20:42:17 EDT 2014


On Tue, Apr 15, 2014 at 4:11 PM, Joshua Landau <joshua at landau.ws> wrote:
> On 15 April 2014 23:18, Ned Batchelder <ned at nedbatchelder.com> wrote:
>> On 4/15/14 5:34 PM, Joshua Landau wrote:
>>> Arch is on 3.4 *default*.
>>>
>>>      $> python
>>>      Python 3.4.0 (default, Mar 17 2014, 23:20:09)
>>>      [...]
>>>
>> Yeah, that's the wrong way to do it, and they shouldn't have done that.
>> "python" needs to mean Python 2.x for a long time.
>
> Why?
>
> The only things that break are things outside of the official repos,

Yes. Software included in Arch, and programs installed via distutils,
will both work correctly under Arch. However, it breaks any 2.x code
that is expected to run without being installed via distutils and
doesn't use the "python2" executable. Which used to be any 2.x
program, since "python2" originally didn't even exist in many OSes. It
also, at the time of introduction, broke all installed software that
wasn't part of Arch itself.

I have a few problems with what they did. I don't like how Arch
created a situation where it was impossible to support Arch and Debian
at the same time with standalone Python 2.x programs (due to a missing
python2 and differing python in Debian). I don't like how the
migration was not communicated sufficiently clearly to users[*], so
that when they saw weird Python errors, they came to the Python
community instead of to Arch, overwhelming #python (if not other
places) with support requests. (We had to temporarily ban Arch
questions to stop people from asking.)  I don't like how their new and
unusual executable naming scheme forced into existence a PEP [1] to
figure out how to bring Python and Debian into line, and I don't like
how Debian was forced to do extra work to make life easier for Python
2.x developers and resolve problems that only existed because of what
Arch did.

They caused a lot of grief, and for what? As far as I can tell, it's
was a marketing gimmick -- Arch gets to look cool by being "bleeding
edge", and everyone else pays the price.

It's worth stating clearly: there is actually no technical benefit to
changing what the python symlink points to. If we want to do such a
thing, it is for cultural reasons, and there is no urgency to it. It
can be done over an extremely long period of time.

[*] One might also ask why they didn't do a phase where python2 was
python 2.x, python3 was python 3.x, and python was 2.x but also gave a
warning to upgrade your stuff because the meaning of the symlink was
changing. There is no good reason. The stated reason was that warnings
are annoying -- so they broke everything instead of giving warnings. [2]

[1] http://legacy.python.org/dev/peps/pep-0394/
[2] https://mail.python.org/pipermail/python-dev/2010-November/105299.html

-- Devin



More information about the Python-list mailing list