It’s even much worse than that. Even if you, as a developer, create a completely static executable file, there’s no guarantee that glibc will have backwards compatibility. There was a story a while ago about a game that broke because the devs of glibc insisted on removing some hash function from the ABI. Leave alone differences between distros. Linux truly sucks in that regard.
Windows still can run 32-bit execs from 20+ years ago just fine. I built executable files for a project 10 years ago, and they still use it since Windows 7. No complaints whatsoever.
As a developer myself, I use Linux for software development. It’s great for that purpose. The package managers are great to find whatever dependency you need quickly. It’s great for servers too, to have authenticated software. But for home use, the desktop environments suck, and Linux sucks.
TheQuantumPhysicist
Creates a “completely static” binary. Still links dynamically to glibc instead of using musl or some other libc. Blames Linux.