But don't forget to pay for the 4 or 5 software package upgrades you need because Apple doesn't bother to maintain compatibility of applications as the OS is upgraded.

Actually, Apple goes out of their way to maintain compatibility, Classic and Rosetta being two prime examples.

For instance, apps written in 1985 for a 68000 based Mac 512k could run on a PowerPC G4 some twenty years later (under Classic), which has a totally different processor and totally different operating system.

However, the burden is really that of the developer, not Apple. Apps that stick to public APIs generally work quite well for many years and through many OS revisions.

Apple sometimes declares certain APIs as deprecated, which means they still work but will go away at some point in the future. That's a signal to developers to migrate to newer APIs that replace the older ones. Some developers make the necessary adjustments in their apps, while other developers don't bother and then when Apple really does remove those APIs, the app stops working. The fault is the lazy developer.