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