Eh, it isn't that bad. Apple is such a case, sure, but other platforms are better. Win32 is probably the king of backwards compatibility - software you wrote or bought 25 years ago will work just fine on modern Windows 10 (assuming you didn't do too many mistakes :-P). But Linux in general should have decent backwards compatibility too, at least for stuff not relying on Gtk and Qt (or C++ if you go far back). Some time ago i compiled some examples from a GUI toolkit i was working on on a RedHat from 1998 and they worked on Debian from 2018 just fine.
In source code form you may even surpass Win32 as code written for X11/Xlib and Motif (to some extent since that wasn't 100% compatible between different Unices) will still compile with little to no modifications.
And of course anything you write to run in a web browser has good chances to work in the future (client side only). Well, assuming Google doesn't completely take over and decide that they know better than anyone else if it is a good idea to remove stuff or not.
Also while not exactly OSes, but several platforms exists that provide isolation from the underlying OS madness. E.g. Java/JVM is an example of a platform that almost never breaks stuff. Languages like Smalltalk and Common Lisp also tend to be very stable. Free Pascal and Lazarus developers also try hard to avoid breaking code (there is still breakage but it is very rare and in almost all cases is about bugs in the compiler - personally i had only a couple of cases where i had to fix code over the last 15 years and that took me only a few minutes).
Great point. I made some assumptions without taking a mental inventory. The issue is disproportionately an Apple issue (and even then, an issue with programs that rely on Apple APIs).
For a while Mac OS 10 had support to run Mac OS 9—- via nicely integrated emulation. Then Apple removed it.
I’d just love it if the current OS supported all previous versions, via emulation.