Apple, mobile development, and freedom

Though I consider myself a mobile developer (and a good one at that), I haven’t yet written anything for the iPhone. I use T-Mobile and wasn’t going to switch to AT&T just to use one, and I didn’t care enough to jailbreak one when I knew Apple was actively trying to kill those phones. I never got an iPod touch until recently because I was working on a media device of my own.

So while I know I must at some point tackle iPhone development, I’ve been putting it off. Recently, though, I’m wondering whether or not I should even bother.

Yes, iPads are flying off the shelves. Yes, I was watching the live blogs of the iPhone 4 SDK announcement. Some of the stuff sounds pretty boring. Some of the stuff sounds cool. However, given their continued restriction on developers, their arbitrary decisions to reject or remove apps from the Store, and their idea that it’s perfectly acceptable to take 40% off the top of an app’s ad revenue, I’m increasingly unwilling to participate in the expansion of Steve Jobs’ Empire.

Okay, for the record, I am typing these sentences on a Mac. When it finally comes down to replacing this laptop, I’m pretty certain I will replace it with a Mac. While there are other reasons I do this, mostly it’s because I like the OS, I like the hardware, and I don’t like Windows or PC hardware. As a consumer of Apple products, I find much to like and very little to dislike. And just looking at MacOS for the desktop, Steve Jobs currently doesn’t restrict what applications I can use with it, or restrict what languages I can use to write software for it. MacOS on the desktop is still an open system.

MacOS for the iPhone is something completely different. For this system, Apple is increasingly deciding what developers should and shouldn’t write, and deciding what its users should and shouldn’t see. And as more consumers buy them, companies and developers are implicitly forced to write apps for that platform or risk not reaching a major percentage of the possible audience. Participation in the iPhone ecosystem may not be a de jure mobile developer requirement, but it is most definitely a de facto one.

At the same moment, Android is becoming increasingly popular as well. Android devices are on track to surpass the iPhone in mobile web traffic. Android tablets are on their way.

Android is an open system. Anyone can develop applications for it, the content isn’t restricted, and Google doesn’t restrict the language developers can use (they just make it very easy with Java). Google doesn’t use its platform to stifle competition or free speech. Does that mean that Android has a porn store? Yes. But I’m pretty certain there is a lot of porn on the Internet. Open systems are sometimes ugly that way.

What will Windows Phone 7 be like? It sounds like it will be a lot more iPhone-like than Android-like. Microsoft has already said it won’t allow native applications. It’s posted guidelines for Marketplace acceptability; porn is excluded, and time will tell whether they interpret the guidelines for more restriction or more openness.

Is this the way programming is headed? Will developers become in effect feudal serfs, only being allowed the innovation that their overloads accept? Will the kings and dukes of this world be benevolent, or will they be like Steve Jobs?

I’d love to take the high road, forget about iPhone development and whenever anyone asks why I don’t do it, point them at this blog entry. Any mobile projects of mine would be Android or web only. Would this hurt anyone but me? Can a mobile developer abstain from a popular platform whose restrictions he considers objectionable? Or do I accept the inevitable?

I really am unsure what to do.

Empire Apple photo Courtesy of New York Apple Association © New York Apple Association


I like wearing different hats. Follow me on Twitter. Connect with me on Google+