Sad that Microsoft Windows has better BC than Apple Iphone.
Windows goes to utterly insane lengths to maintain backwards compatibility. Windows has historically been unparalleled in two things: running on cheap hardware, and running the same apps as previous versions without any hiccups. And those are the same two things that made Windows so successful.
Just off the top of my head, here are some of the things that Microsoft does to maintain compatibility. If there's a popular app that has a compatibility issue, Microsoft will include special code in Windows just to support that app (which they call a shim). If there's a bug in their API that apps start relying on, they'll keep the bug and fix it in a new API. Since some programs were reaching into Explorer's control panel windows to change system settings, Windows will create invisible windows that look like the old control panel windows so that the apps would still work. When minimizing an app in Windows 95 (which changed the minimizing behavior), Windows would move the window to coordinates 3000, 3000 because some apps had problems when their window was set to hidden.
I think this is something that Apple will have to start caring about if they want to be more successful in the enterprise. A lot of times, it's not even a question of funding when you have an app that needs to be updated. You don't even have the source code, and the person who wrote it is long gone. If there's an app that your company relies on, and an OS update breaks the app, you're not going to be getting the OS update.
Thanks to the developers who answered my questions. It's pretty bad if they're actually changing the behavior of API calls, not even bothering to create a new one and deprecate the old one while keeping the behavior the same. If they did it that way, at least the old code would continue working for a few OS releases.
Looking through the API docs, I see a lot of stuff that seems to be deprecated just for aesthetic reasons, like they wanted to move some code around so they went ahead and deprecated some API calls, without a care in the world for the millions of developers that are writing code for their platform... But that's just my impression from a little bit of skimming. I've got no experience with Apple development.