ChristTrekker wrote:Ever get the feeling that the guys at Apple just arbitrarily change the API to annoy 3rd-party devs?
Apple makes money on hardware and loses money on software. Dropping backward compatibility and old APIs makes OS X development cheaper; the costs are shifted off of Apple to third-party developers instead, who have to write more code to support both old and new OS X versions. Faced with this choice, many developers will drop support for old OS X releases, because it's too expensive or time-consuming without Apple's help.
When users can't run third-party software because their own OS X machine is too old, they're encouraged to upgrade, which might mean another hardware sale in Apple's pocket. So that's a second way Apple can make money from this strategy.
New APIs don't make money directly, but they can attract developers to move to (or stick with) OS X development. From what I gather, a lot of the new APIs are developed for use in the built-in apps (Mail, Safari, Finder), so adding them is relatively cheap; plus you can recoup money by dropping any old APIs the new ones replace. Apple has to develop and improve those built-in apps anyway, because people won't buy a computer without a good web browser or email client, and selling computers is the goal.
Microsoft has a completely different business model, which means their approach is different too. They make money selling Windows, and the more copies of a version you sell, the more profitable it is. So, they sold XP as long as enough people bought it to keep the support costs in the black. They make money when people upgrade, and new shiny keeps users from migrating to Mac or Linux, but that's not as strong an incentive as it is for Apple, who makes the entire computer's worth of profit from every upgrade. So new versions of Windows come out less frequently than new versions of OS X.
The Linux ecosystem makes money in a more roundabout fashion, and there's no one company driving all the progress. So, backward compatibility and API churn can come down to whether a volunteer steps up to support something, or by mutual agreement between various distros, or by the personal ethics and philosophy of a project leader.