This is kind of the trick with Apple's stuff...historically they've definitely been willing to blast forward without making backward-compatibility all that easy. The only problem with the Leopard scenario is that it is the last possible upgrade for PowerPC-only Macs, which is an unusually early end-of-life compared to Macs before it.<p>Somehow I have managed to keep a program working from Mac OS X 10.3.9 onwards (an OS that is PowerPC-only without support for universal binaries). And this accomplishment has required a lot of creativity, to put it mildly. As Alfred's author says, simply choosing the latest OS makes it a lot easier to do cool stuff; I can't easily use Core Animation or other newer technologies. Also, Xcode 4 has finally give up on me completely, so I use Xcode 3.x.<p>If I were a conspiracy theorist I'd almost think it was designed obsolescence, since there are times I swear I could support another entire OS revision if not for just 1 or 2 missing APIs. From this point of view, open-source has a big theoretical advantage because a couple of missing APIs are technically easy to back-port (but Apple has no reason to spend time on this).<p>I am glad we at least have Objective-C now, though. There are pretty powerful ways to check at runtime if almost anything will work before you use it, which allows for rather flexible binaries. There have been various ways to do this for C++ APIs beforehand, but Objective-C is much cleaner in this area.