Nothing lasts forever, and everything is a trade-off.
Paul Graham, in “The Other Road Ahead,” noted a risk of relying on software that other people control:
There is all the more reason for startups to write Web-based software now, because writing desktop software has become a lot less fun. If you want to write desktop software now you do it on Microsoft’s terms, calling their APIs and working around their buggy OS. And if you manage to write something that takes off, you may find that you were merely doing market research for Microsoft.
That was in 2001 - and here in 2010, startups are suddenly in fear of the same thing happening. Although the scare has died down a little, the appearance of a non-Apple app in an Apple patent filing briefly gave developers fits.
I think that Graham’s warning is still apropos: when you build on Apple’s foundation, you risk Apple pulling the rug out from under you. The scare from the patent filing caught hold of developers' imaginations immediately because it was plausible - Apple has arrogated to themselves the right to do that kind of thing without compensating their developers. They’re unlikely to do so - but they can, and that’s what worries iOS developers. Like Microsoft, Apple controls a hugely lucrative platform and its APIs, and if push ever comes to shove, developers shouldn’t doubt for a second that Apple will prioritize its own survival, control, and profitability over theirs.
It’s important to note that the behavior that Microsoft, Google, and Apple reserve the right to exercise isn’t unique to them. They’re all pursuing control, trying to push the useful lifespan of their platforms to its limits. This has some very nice benefits, but as developers and IT folks we have to keep in mind that all of it has a finite lifespan. Eventually, there will be something new. Hostfiles were supplanted by DNS. Yahoo was replaced by Google in search. Apple redefined what a phone should be with the iPhone and pulled the rug out from under RIM, Nokia, and Palm. Even though both of them were strongly shaped by their opposition to the Microsoft of the 80s and 90s, Apple and Google have unavoidably become more Microsoftian as they’ve grown.
They have more to lose now - and when you have something to lose, you tend to turn into Microsoft. I admire Microsoft’s commitment to backward compatibility. Microsoft offers this: if you write your app according to best practices as we define them, it will run for a long time. It took until 2007 for 16-bit support to start vanishing from Windows - that’s nearly a 20-year lifespan, which is pretty ridiculous considering how much Windows and the hardware under it have changed and adapted in that time. But nothing lasts forever, and everything is a trade-off. Retaining backwards compatibility, with the attendant benefits, costs more and more as time goes on - the Android folks are learning this, somewhat painfully, with the differences between various versions of Android.
This is part of what I think is so remarkable about Apple, too - as big as they are, they’re still willing to bet the company on new things. Of course they make canny bets whose risks are lower than they seem[pdf], but they are still willing to assume a flavor of risk that Microsoft isn’t willing to shoulder, and that Google has been shying away from. That too is a tradeoff, though, and when I think about the long term, I’m pretty confident that Apple too will turn into Microsoft.
I’m not worried about the next Apple and the next Google, either - the silver lining of becoming Microsoft is that a lot of the people who helped you get to the top will start their own companies and push the state of the art forward. I’m not a venture capitalist, so the only way I’ll get to bet on one of those companies is by working for them - and that’s a bet that I’m looking forward to placing.