There are so many things the Linux kernel project does just right. One of them is “never break user space”.
Unfortunately most projects completely fail to get why this is important.
I think one of the worst examples is the enormous setback it caused when Python was “upgraded” from 2 to 3, which meant breakage of huge amounts of libraries, that were never fixed, and was extremely detrimental to Python.
The kernel respects user-space, but actual user front ends do not!?!?!
KDE generally does the same when they upgrade to new versions of QT.
The kernel equivalent of shell extensions would be kernel modules. Out of tree modules break all the time. There’s no stable in-kernel ABI, just like there’s no guarantee that shell internals never change.
There are so many things the Linux kernel project does just right. One of them is “never break user space”.
Unfortunately most projects completely fail to get why this is important.
I think one of the worst examples is the enormous setback it caused when Python was “upgraded” from 2 to 3, which meant breakage of huge amounts of libraries, that were never fixed, and was extremely detrimental to Python.
The kernel respects user-space, but actual user front ends do not!?!?!
KDE generally does the same when they upgrade to new versions of QT.
python 2 to 3 is actually an enormous change
The kernel equivalent of shell extensions would be kernel modules. Out of tree modules break all the time. There’s no stable in-kernel ABI, just like there’s no guarantee that shell internals never change.