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.
staying on an end of life unsupported programming language does not spark joy.
open source projects are (often) maintained by unpaid volunteers. unpaid volunteers doing something for the passion of it often don’t want to build with one hand tied behind their back
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
You can make improvements without introducing breakage.
staying on an end of life unsupported programming language does not spark joy.
open source projects are (often) maintained by unpaid volunteers. unpaid volunteers doing something for the passion of it often don’t want to build with one hand tied behind their back
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.