4 ms·
When I ran Gentoo Linux, a rolling release, I came to appreciate exactly what's going on in the Linux desktop ecosystem. I enjoyed the new features that came wi
by hathawsh 8y ago
When I ran Gentoo Linux, a rolling release, I came to appreciate exactly what's going on in the Linux desktop ecosystem. I enjoyed the new features that came with new releases of libraries and apps, but it was shocking to see how often library releases had new ABIs. Sometimes I could get away with running apps on old ABIs, but more often than not I would see stability issues, and those stability issues disappeared when I recompiled the apps. I learned that there are simply a lot of improvements happening at every layer of the system, all the time, and there is no one in charge.
The proprietary solution to that instability is to appoint people who ensure ABIs don't change. Microsoft is a great example of that strategy. Many apps made for Windows 3.1 still run today on Windows 10, almost 30 years later.
The typical open source solution to ABI instability is to freeze library ABIs and build all the applications on those temporarily frozen libraries. Applications are built for a particular release. While it would be possible to keep updating the applications during the release cycle, it appears no one has yet figured out how to do that economically.
An interesting exception to the rule is web browsers. Firefox and Chromium get regular feature updates in major Linux distributions. That's probably because browsers have a very large attack surface, yet people use them all day long, so they deserve extra attention from software distributors.