• wishthane@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    10 months ago

    Linux, if we’re counting the entire userland and typical components rather than just the kernel and its interface, definitely has worse (binary) compatibility than Windows, and potentially even Mac OS. The only saving grace is things like Flatpak which bundle the entire system tree they need with them and therefore have pretty long-lasting binary compatibility. But it’s quite normal to have to recompile some old software from scratch when some common system libraries get updated, really only core things like glibc have long-lasting binary compatibility, and you can’t even guarantee that compatible system libraries still exist even when compiling from source sometimes, because every project has a different approach to backward compatibility.

    Now, to be honest, things are much better with containerization (like flatpak/snap/docker/etc.), but that doesn’t really help you much for software that’s older than those unless someone bothers to try to figure out all of the dependencies and package them up and it still works. The only reason why it seems to be okay is that Linux distributions recompile all of the deps for you every time something changes and you get everything all at once, so you rarely see any of that all break. But if you have anything compiled from source, and you didn’t statically link the whole thing, you’ll see the problem.