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.

  • @9tr6gyp3
    link
    23
    edit-2
    9 months ago

    A lot of people engineer their computing environment to break with newer branches/versions of an OS, so they need to remain on the previous OS version for a bit until it’s safe for them to upgrade. It’s VERY important to have an upgrade path, and be able to test how apps will work in the new environment.

    For example, compare which PHP packages are on Ubuntu 20.04 vs 22.04 vs 23.10. As a dev, you will have to be sure your PHP app can work with whichever PHP package is provided. Rebuilding your entire app from scratch every time an OS upgrade comes out is not sustainable, so devs will remain on an older version until they have enough time/resources to rewrite it for the newer OS. They might stay on 20.04 until the OS no longer receives updates and becomes End of Life. They might start looking at 24.04 and seeing which PHP version will be available on it, and rewrite accordingly.

    This is just one example for one set of packages. Multiply this by tens of thousands of packages, and you can see how delicate and complex an OS upgrade can be. Not just for the maintainers, but complex for end users as well.

    • @[email protected]
      link
      fedilink
      19 months ago

      Just use distrobox, especially for developing software.
      Not only because of the versioning, but also because it’s more reliable and easier to manage/ contain in a distrobox container.