Gerald Henriksen wrote:
Nobody trying to compile a C program expects to have to use gcc9,
they
just expect to type in gcc.
Despite all its flaws, C is pretty good at backwards-compatibility. A
valid C99 program can be expected to work unchanged as C11. (A correct,
standard-compliant C program, that is. Not one that relies on undefined
behavior or similar craziness.) That is not so with Python. A perfectly
valid Python 2 program is not likely to work in a Python 3 interpreter,
unless it was intentionally written to be a polyglot.
Porting a Python 2 program to Python 3 is not like switching to another
version of GCC. It's more like converting a C program into C++ – and
even then, my gut feeling is that the minimal changes necessary to turn
a typical C program into valid C++ would be fewer changes per line than
the changes necessary to turn Python 2 into Python3.
Developers are supposed to compile C programs with gcc and C++ programs
with g++, just like Python 2 programs need to be interpreted with
python2, and Python 3 programs with python3. Changing /usr/bin/python
to point to /usr/bin/python3 is similar to making /usr/bin/gcc a link
to /usr/bin/g++. The Python folks are trying to completely replace one
programming language with another, and it's no wonder that it's going
slowly.
There may be good arguments for why /usr/bin/python should survive the
removal of Python 2, but this comparison to GCC isn't one.
Björn Persson