Unless you've been traveling at lightspeed to another galaxy, you must have heard about the great Apple vs Adobe tweetle beetle battle*. The iDevices (iPhone, iPod Touch, and now the iPad) do not support Flash, and will not support Flash. Ever. So Adobe created a Flash-to-native-iDevice converter. And now Apple have announced iPhone OS 4.0 (in yet another magnificent Stevenote, yes, you must watch it), and the terms of the new developer agreement prevent cross-compiling apps originally written in languages other than Objective C, C, or C++. Wow.
Sure, we can all see why Apple wants to prevent Flash web apps - that would route around their App Store monopoly - but I can't quite see why Apple wants to prevent native iDevice apps originally written in Flash. I wonder if this will have the intended effect...
This is the problem with Apple’s strategy. There will be people who take their existing Flash apps and rewrite them as native apps. That’s what Apple wants. But there will also be people who just switch to AJAX. I can’t see why that helps Apple. Overall the user experience is going to be worse. Wouldn’t the Flash-to-native-converter approach have been better?
A final point. Apple reviews all apps before letting them be published in the App Store. Presumably if an app is super ugly or crappy or buggy or just doesn’t look like it belongs on an iDevice, they won’t approve it. Since they have that level of control, why do they care about the underlying technology? If the app was written in Flash (heck, if it was written in COBOL) and cross-compiled, and it looks and behaves like it belongs, who cares?
* from Fox in Socks