Updates / Upgrades and breaking the runtime

Comparing platforms when it comes to breaking compatibility and wasting one's life time

Published: Friday, Nov 13, 2020 Last modified: Monday, Dec 9, 2024

I saw a post asking for a SUSE SLES 12 to SLES 15 migration procedure and had that got me thinking about upgrades and updates.

On one corner as long as the ABI and syscall layer is stable, static binaries ftw.

However our industry introduces docker, jars, wars, go modules, npms and other technical debt cruft on top of it, that makes stable migrations extremely painful thanks to the rolling updates.

Think of the relatively new introduction of systemd and how much unneeded effort it has created, that now means converting SLES X’s init stuff to SLES Y’s systemd stuff etc. This is probably the complex element to the aforementioned migration.

Was the pain worth the value you got out on the other side? Might you have been in a better place with a simple standalone init script?

Windows

Windows has an exemplary record of backward compatibility as far as I can tell.

This is probably a key to their platform’s success considering almost everything around it is a dumpster fire. The filesystem sucks. The security sucks. The upgrade procedure sucks.

The main issue with using Windows is basically removing the cruft and spyware that Windows puts in, and the security nightmare that follow suits with a mountain of unabated complexity which is essentially a black box to you since its proprietary software.

MacOS

Lately I critically read a tweet saying sensibly that Linux wastes time over MacOS.

I guess you can say that it’s prescribed Desktop environment “saves time”, in the sense it standardises a platform for both novice and expert users.

Though as a life long Linux user, I can’t help but think, urm, no, it does have some issues:

Earlier I bemoaned the churn with Docker / npm which is pretty painful / broken on MacOS. The missing package manager - Brew is incredibly slow compared to Arch’s pacman.

MacOS escapes the requirement that it actually needs to run any Internet service lets not forget, and worse it appears focused on making you a share cropper.

Back to Linux

Besides systemd, the crazy churn in packages with rolling updates being the defacto hamster wheel way of coping.

Beside the train wreck of the “Linux Desktop” and the fact that you ideally embrace the choices you have. For example I love dwm on X. I’d hate my Desktop environment if I was using Gnome or was forced to use it.

Besides the known cruft on Linux and heart breaking GCC issues creating static binaries, I still think Linux is miles ahead as a productive platform.

It can be made less crufty and stable, though Linux is too busy innovating right now.