The jump in distro versions, say, from Fedora 38 to Fedora 39, is not the same as the jump from Windows 10 to Windows 11. It’s more like the jump from version 23H2 to 24H2.

Now, I’m sure even most Windows users among those reading will ask “wtf are 23H2 and 24H2”? The answer is that those version numbers are the Windows analogue to the “23.10” at the end of “Ubuntu 23.10”. But the difference is that this distinction is invisible to Windows users.

Why?

Linux distros present these as “operating system upgrades”, which makes it seem like you’re moving from two different and incompatible operating systems. Windows calls them “feature updates”. They’re presented as a big deal in Linux, whereas on Windows, it’s just an unusually large update.

This has the effect of making it seem like Linux is constantly breaking software and that you need to move to a completely different OS every six to nine months, which is completely false. While that might’ve been true in the past, it is increasingly true today that anything that will run on, say, Ubuntu 22.04 can also run without modification (except maybe for hardcoded version checks/repository names) on Ubuntu 23.10, and will still probably work on Ubuntu 24.04. It’s not guaranteed, but neither is it on Windows, and the odds are very good either way.

I will end on the remark that for many distros, a version upgrade is implemented as nothing more than changing the repositories and then downloading the new versions of all the packages present and running a few scripts. The only relevant changes (from the user’s perspective) is usually the implementation of new features and maybe a few changes to the UI. In other words, “feature update” describes it perfectly.

  • CameronDev
    link
    fedilink
    arrow-up
    15
    arrow-down
    2
    ·
    edit-2
    9 months ago

    I think i disagree. There are definitely breaking changes between distro upgrades, even if they are under the hood changes.

    https://discourse.ubuntu.com/t/mantic-minotaur-release-notes/35534

    For 23.10, glibc changed version, if a user is running a binary that explicitly links against an older version, that binary will not work anymore. I would like to live in a world without these kind of binaries, but they exist, and users do rely on them. edit: not entirely true.

    In a future release, Python 2 is going to be removed. There are thousands of python2 only scripts still floating around, the drop of python2 is going to hurt someone.

    I think we lie to ourselves a bit about the reliability of upgrades, they are often flawless, but definitely not always. Fixing the issues can be easy for seasoned linux users, so we can tend to fix and forget. (This is not a dig at anyone, I am guilty of this as well)

    I see where your coming from, with the desire to avoid overly concerning new users, but I dont think changing the terminology here is the answer.

    I would prefer to keep the existing terminology and instead fix the messaging to make it clear that while there may be a risk, it is a minimal risk.

    • taladar@sh.itjust.works
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      9 months ago

      For 23.10, glibc changed version, if a user is running a binary that explicitly links against an older version, that binary will not work anymore. I would like to live in a world without these kind of binaries, but they exist, and users do rely on them.

      That is not actually true. glibc hasn’t changed ABI versions in a backwards incompatible way in a long time. You can’t use new binaries on the old system usually but you can absolutely use old ones on the new system.

      Many other libraries do change ABI versions more frequently though.

      • CameronDev
        link
        fedilink
        arrow-up
        2
        ·
        9 months ago

        Okay, fair point, thanks for clarifying that. I just know glibc versions have bitten me before :(

        • taladar@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          ·
          9 months ago

          It is frequently a problem when running old systems and binaries are compiled for something newer, especially with distros like RHEL that “support” stuff for much longer than most upstream projects are willing to wait to use new features.