HACKER Q&A
📣 readonthegoapp

Was the decision to name python3 'python3' worth it?


I assume the decision to change the python executable name from 'python' to 'python3' for the new version was because the new version was not backwards compatible.

Looking back on it -- was it the right decision, to break backwards-compatibility?

And once that decision was made, was it right to effectively rename python for the new version the right decision?

I say 'right' in terms of 'the overall health of the language and its ecosystem' -- assuming you wanted it to do well.

I would guess it is a 'no' from most people not directly working on python, but very curious to know.

I only know from afar that it seemed like maybe it was a catastrophe for the ecosystem, at least in terms of anguish and (short-term?) pain it caused.

I was doing some python at the time and rewrite to 3 and it was a disaster, and caused me unicode-oriented problems forever, but I would usually/generally be ok with doing some painful things for the future overall health of the ecosystem.

I'm looking at doing another project now and I'm looking at some 'python3' demos and thinking...there is at least one thing I hate about every language/stack that I'm contemplating using.

I now Guido had a recent article saying something about 'No python4 prob'.

And, why did python decide to break backwards-compatibility, but seemingly not most other mainstream high-level languages?


  👤 PaulHoule Accepted Answer ✓
In retrospect I think the worst thing that happened to Python was that some Linux distros started writing system scripts in it which locked down Python 2 as a dependency for them for a very long time...

... and in turn meant that "python" would always have to be python 2, requiring Python 3 to be named "python3" on many systems...

...that wouldn't be so bad except that it adds and multiplies, you get python3.5, pip3.6, etc...

A transition like the Python 3 transition is dangerous and not all languages survive it. Who programs Perl 6? PHP has aborted language transitions when it was clear they couldn't sell them to users.

Python might not have survived it if there was some other like-R-but-acceptable answer for data analysis to get newcomers coming to Python.


👤 ksaj
A partial result of this is that lots of kids (adults, too) are learning Python to program Arduino and Raspberry Pi and probably don't even know there are incompatible versions, or potentially even what version it is they've learned.

It reminds me of Perl 5 and Perl 6, although they finally sensibly changed the name of the new one since there should be an expectation of common ground if the name is the same. A number change denotes an update, but when it's actually a different dialect or language, the name needs to be changed to head off problems that should already be apparent when the changes were made.


👤 liamwestray
Python3’s executable is just python on my system. Once python2 is fully EOLed and purged from other distro/BSDs it will likely follow the same convention as Arch/Manjaro.

👤 dorkmind
> why did python decide to break backwards-compatibility

I think this is actually because of Mr. van Rossum's employment at Google. Taking money from one customer exclusively just killed Python's future. It would kill any ordinary business, too.

Programming languages are like religions...they survive on donations and free labor. I think Google should have been milked for cash and Python should have been used as a brand showcase for its donors in front of large conference crowds. Showing a bunch of stinking hippies that Corporate America (tm) is scrambling for a chance to throw money at you...it's a pretty picture!