Nov 27 2008
The word is out that Google is using undocumented functions of the iPhone Application Programming Interface (API). While this is a violation of the license agreement of the iPhone Software Development Kit (SDK), strangely enough, Apple approved that piece of software from Google.
Now of course, you hear all kinds of ridiculous justifications from the Apple fanboys and zealots why Apple rightfully allows mighty Google to have a competitive advantage over some small garage developer whose software would never have seen the light of day when it had used an undocumented iPhone API.
Since most Apple users do not know – or care – much about software development but have too much confidence in Apple and mighty Google instead, you hear mystical arguments like “Google has enough resources to test an undocumented API, a small developer has not”.
Well, it doesn’t matter whether you’re Google in all its shiny glory and might or a John Doe developer in your garage. It never is the job of a developer to test an undocumented function. Only the creator of the framework can properly test undocumented functionality and then properly release it.
There are only two reasons why APIs are undocumented:
1. The specific undocumented API itself has not yet been thoroughly tested enough by its maker, in this case Apple, and therefor the API is deemed unstable and subject to change. Using an undocumented API can render an application useless over night in case that the maker of the framework/API (again: Apple) decides to change the definition and name of the API, its functionality or just drop it from the framework entirely.
2. The second reason is simply evil. You create – and use – undocumented APIs to have a competitive advantage over third party developers. Microsoft has been sued over this again and again. If Apple condones this use of undocumented APIs, then it is plain and simple foul play on their part.
Now, of course, you also hear that many people believe that the iPhone is more accessible to developers than any other smartphone. This belief is mainly founded in the very visible AppStore that Apple designed to be the only option to distribute third party software for the iPhone and iPod Touch. Since everybody is selling their software there, it seems that there is mass of software for the iPhone that other mobile phone platforms don’t have. Because it is all visible in one place.
In case that you are lucky and Apple choses to publish your application on the AppStore, this probably is a good thing for you. Only one distribution channel to worry about, limited advertisement costs, people will find your software. It’s a very streamlined distribution channel.
But in case you are among the software developers whose software gets arbitrary rejected by Apple, or in case you want to sell something that does not fit in Apple’s “Disney-Pixar” morality, let’s say you want to sell a Strip Poker game or maybe just something that will compete with Apple’s own software, like, say, a web browser (hello Opera), or maybe you want to add tethering capabilities to the iPhone (as the company Nullsoft tried to do), your software will never get sold to anybody.
Apple rules the iPhone platform with an iron fist, like a French monarchy.
So saying that the iPhone being more accessible than other smartphones or PDAs is just uninformed, wishful thinking. Or plain bullshit.
Unlike the iPhone, smartphones using Windows Mobile have been open for every programmer on this planet from day one. Openness to third party developers has always been a major cornerstone of Microsoft’s platform strategy. (They just don’t like competing platforms or applications that compete with their core cash cows, like spreadsheets and word processors .)
Now you might hate Microsoft like almost every other Apple customer or open source zealot, but unlike Apple, Microsoft does not create viable platforms for an entire industry by accident. Microsoft creates platforms intentionally and by design, and when Steve Ballmer gave his “developers, developers, developers” rap that wasn’t just a bad show performance, but it really was what Microsoft’s philosophy is all about.
Apple doesn’t care about software developers. They never have and they never will. To Apple, third party developers are a necessary evil at best. But Apple knows that they cannot do everything alone, and they hate it. Providing SDKs to other developers is always an afterthought at Apple, not at the core of their strategy. That’s why the world had to wait that long to get an iPhone SDK in the first place. Along with the AppStore where your only choice is to put up with Apple’s arbitrary decisions when you want to make some money there. Again, the problem with the AppStore is that you just cannot know whether your app will make it there or not.
You. Just. Don’t. Have. That. Shit. With. Microsoft.
Hell, Microsoft even opened the Xbox 360 platform to indie developers. Now ask Sony and the others if they ever intended to do something like that.
So no, the iPhone is not the most accessible platforms for small developers. It is exactly the opposite.
Ultimately, openness has always won over closed systems. And, no, open source folks, openness does not mean ‘give me the code’. It means ‘give me the API specification and let me publish my stuff the way I want’.
Like the Mac, the iPhone will remain a niche product and won’t ever get a dominant market share. They might have a chance to gain market domination if they opened their platforms, meaning the software, the operating systems, to other hardware vendors. If Microsoft DOS had only run on IBM PCs, it would never have become the industry standard. And if Microsoft Windows had only run on Compaq or Dell computers, it wouldn’t have become the current industry standard either.
The policy of tightly bundling their software to only their hardware has always been in the way of Apple’s success. Sure, there obviously is good money to be made in a niche market, but I don’t like this narrow-minded attitude.