Wha? A smokescreen? Must be ninjas about!

So let me summarize Sr. Jobs' latest 'open letter'.

  1. Flash on iPhone sucks.
  2. Flash on iPhone sucks.
  3. Flash on iPhone sucks.
  4. Flash on iPhone sucks.
  5. Flash on iPhone sucks.
  6. Therefore we should not let anyone make the iPhone a compile target for their chosen language.

The real issue that Adobe is worked up about is section 3.3.1. Here is a discussion. In essence, you may not write an iPhone app in a language/framework that isn't a combination of Cocoa and Obj-C. For the non-technical, it's (almost) as if Apple is restricting you to only speaking English when calling someone on an iPhone. Almost.

Points one through five are awfully nitpicky reasons, and technically inaccurate to varying degrees. They're valid enough, though, if that is the position Apple wants to hold. My beef is with people reading along, nodding their heads, "This is well-reasoned" and then missing the curveball that he throws in point 6:

"Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices."

One of these things is not like the other. "Adobe wants developers to adopt Flash to create apps that run on our mobile devices." Re-read it carefully. Adobe wants people to use Flash (a development environment) to build apps that run on iPhones. CS5 had the ability to write a program in actionscript that compiled down to a native iPhone app. Short of running the app through a debugger, you would not know that the app was built in the Flash environment. It's not a matter of running Flash apps compiled to bytecode and running in a Flash environment on an iPhone, it's a matter of running apps which were built in Adobe's development environment, which is expressly prohibited in section 3.3.1 of the developer agreement.

This means Unity, Mono, Haxe, Titanium, which all use the same approach to compile native apps are all forbidden. None of them are especially concerned though, because the general mood at the moment seems to be that Apple is only interested in blocking Adobe.

There are valid reasons for Apple to not want Adobe on their platform. The other environments are relatively niche environments. However, by enabling iPhone targets in CS5, Adobe allows a veritable glut of Flash devs to build multiplatform (including android) apps. It is in Apple's interests to lock in developers and establish platform exclusives, the way Sony and Microsoft do with their gaming consoles. However, to hide it under the guise of not wanting to compromise the performance or quality of their product is disingenuous. After all, we know that Apple delivers only the finest in fart apps.