Apple Screws Developers Once Again

Pardon my French, but the iPhone platform is so tight, if you shoved a lump of coal up its ass, in two weeks you would have a diamond. The iPhone is a miraculous piece of technology--one that will be remembered for a long time as having changed the face of mobile computing, and computing in general. But lately I'm thinking it might be time to switch to an Android phone when my AT&T contract is up this fall.

I know of course it isn't exactly breaking news that the platform is so closed, but for a long time I was happy to put up with Apple's draconian policies because the iPhone is just that good. But then things began going bad and my frustrations started to mount.

First it was my battery dying, for which the best solution seemed to be to pay Apple $80 to just get a new phone. Really? Is a replaceable battery really too complicated for the average user?

Then, yesterday, Steve Jobs announced iPhone OS Version 4.0, which will at long last include support for multitasking. Hurrah! Except for the fact that my 3G phone doesn't have the hardware specs to support it. Not being able to run apps like Pandora in the background has continually irked me, and now that this functionality is finally coming I don't even get to share in the fun? My phone isn't that old...

Lastly, and this very well might be the nail in the coffin for me, on the day that the world celebrated something as banal as multitasking on a computing device, Apple went and quietly updated its developer agreement to prohibit apps built using "intermediary translation" tools. From the new developer agreement:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

This prohibition includes tools such as the forthcoming Adobe Packager for iPhone, which would have allowed Flash developers to transcode their work to Objective-C, or alcheMo, a tool that translates Java ME applications to Obj-C. Technologies like these have been instrumental in driving the more than 150,000 apps currently in the App Store.

What could Apple's motivations possibly be here? I know Steve Jobs has a thing against Flash (for good reason) but could this rule just be in place to spite Adobe? Are the apps created using these tools any less stable than apps created in Objective C, C, C++? I don't know, but my gut says it has nothing to do with the language used and everything to do with the developer behind it.

This also got me thinking that Apple's best all around product is not the iPhone, but OS X. Sure, it's not as "open" as other *nix systems, but it's night and day compared with the iPhone. And it was an incredible feat of engineering and business planning to pull the bottom out of the Mac platform, replace it with an entirely new architecture and transition nearly all their existing customers within the span of a few years. Not to mention the fact that they somehow managed to simplify a *nix system to the point that my father, mother, wife and sisters-in-law essentially need zero support from me.

In my frustration today I decided to jailbreak my iPhone. It was easy and I'm really glad I did it. I already got wifi tethering working, so now I have a Mifi in my pocket. I think for people like me who like to tinker, iPhone might just be too much of a (shiny) black box.

Read Adobe Apps: Easier to Pass Through the ‘i’ of a Needle | Gadget Lab | Wired.com.

Reblog this post [with Zemanta]