[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: MBF for deprecating Python2 usage



On Aug 7, 2017, at 18:28, Ben Finney <bignose@debian.org> wrote:

> The issue is: Invoking ‘python’ today gets an interpereter, Python 2,
> that will work with some code and not others. It should not tomorrow
> invoke an incompatible interpreter without *knowing* that the vast
> majority of scripts in the wild no longer expect Python 2 to come from
> that command.

That’s unknowable.  We have no idea what people do with any package of Debian outside of the archive.  We can’t even quantify what “vast” means.  So under the above definition, you’re right, that day will never come.

> That day might never come, in which case the ‘python’ command will
> forever mean Python 2. That is, I'm saying, better than breaking that
> command in the near or medium future.

I wonder if you’ll say the same thing in 2030 when Python 2.7 is 10 years dead, can literally cannot be built on any then-modern Debian, let alone Linux distro? That’s not hyperbole; one of the current upstream exceptions to the 2.7 branch is to adapt to newer build systems and library versions.  That will stop in 2020, but of course everything else will continue to evolve.

It might even come sooner.  Once Python 2.7 is EOL’d, it won’t even get source releases, and may not even get security releases.  If folks want to keep it alive, it’ll take active downstream resources to maintain.  People may pay for commercial support from RedHat, Canonical, and others, but how much will volunteers want to keep it secure and working?

I can remember when ‘python’ meant Python 1.5.2.  So that name doesn’t have to be tied to a specific major version.

> I'm saying it's a bad idea for ‘python’ tomorrow to get an incompatible
> intepreter that won't run the same Python code. That interpreter is
> named ‘python3’ and should never be installed as ‘python’, because
> ‘python’ is a command that many scripts expect to invoke Python 2.

Sure, today.  And tomorrow.  And many tomorrows until at least 2020.  Then I think we’ll be having very different conversations about it.  Anybody who will still be running Python 2.7 code will have some difficult choices to make.  1) port to Python 3; 2) run old versions of distros that still have Python 2.7 around and live with the unsupported nature of it; 3) roll their own Python 2.7s; 4) pay some commercial vendors to keep their stuff alive and secure.

IMHO, there will absolutely be a day when it makes no sense to point /usr/bin/python to Python 2.

Cheers,
-Barry

Attachment: signature.asc
Description: Message signed with OpenPGP


Reply to: