Hacker News new | ask | show | jobs
by digdigdag 1261 days ago
The codebase goes back to nearly 40 years. It would be more shocking if it there weren't legacy code hanging around.

Windows is one of the most impressive pieces of software I have ever seen. No other platform boasts the kind of backwards compatibility that is seen in this operating system. There are shim layers on top of shim layers and the developers seem to have gone through great pains to keep the operating system backwards compatible.

Comparatively, the Linux kernel API is stable, though applications relying on newer system calls are forever stuck requiring minimum kernel versions. On the userspace side, application packages are in a near constant state of flux and can break with a single version/dependency change.

3 comments

Windows NT, is almost 30 years old. That is the OS that the other OSes use today as a base. Unless you want to mention Windows 95, but still, "only" 32 years.
Well, the Windows APIs date farther back than NT.
GTK and Gnome are almost 25 years old, and they're nowhere as messy as the Windows

https://gitlab.gnome.org/GNOME/gtk

Not surprising. GTK and GNOME doesn't give a single f about backwards compatibility.
It went through less major updates than Microsoft has went through UI toolkits. GTK2 programs such as GIMP still run perfectly in modern GNOME and integrate awesomely. Even if you count Qt applications for the Linux desktop it still is more consistent and stable than Microsoft's megalomaniac search for the "perfect" UI toolkit.
Doesn't Linux desktop (say Ubuntu) generally have strong backwards compatibility? There are issues occasionally, but no worse than trying to run Windows 9x apps on Win10+.
Win32 Is The Only Stable ABI on Linux: https://blog.hiler.eu/win32-the-only-stable-abi/
That's a glibc problem, not a kernel problem. Linux backwards compatibility is awesome, GNU on the other hand...
back compat is awful on Linux with the exception of the kernel. Unfortunately you need more than a stable kernel ABI to get proper back compatibility and the userland libs don't want to play ball.
The 2 most stable API/ABI on linux are the kernel itself and Wine, which I find kinda funny
LD_LIBRARY_PATH can do magic.
While it may be technically possible to run old applications on Linux, it likely requires significant pain. In Windows land, if you had a random installer from 2000, there is a reasonable chance it would still work today.