I don’t want to get into details of why Flash is or isn’t great, and why it is or is not Apple or Adobe’s fault. However, I don’t prefer flash for the main reason that there are open standard alternatives (debatable to some point) that should be used instead. I haven’t had flash in anything I’ve made in years, and I don’t believe I’ve missed it.
However, with respect to the iPhone OS, we need to sort out some confusion about flash. There’s really two issues at hand:
- Flash for website content (eg: Embedded flash objects)
- “Flash” (quotes intentional) native applications using a cross compiler
Number 1) is a no brainer. I’m not unhappy that flash would be blocked in the sense of embedded web objects, other than the fact that it is a slight disturbance as I wait for websites to get with the program and stop using flash. Let’s face it, that’s the trend anyways, so let’s speed it along! Javascript, Ajax, HTML5 have effectively replaced the need for Flash web objects in most cases. I agree with several reasons Steve cited here, Flash web objects are not a good fit for mobile devices. Fair.
Second (2), is a completely different beast. Basically Adobe wrote a compiler that lets users code/design in ‘Flash’ which gets compiled down into a native binary much the same as any obj-c app in the end. In my opinion, there’s every opportunity for ‘Flash’ in this sense to make quality, high performance native applications. So the ‘performance’ of flash for native compiled apps is not a very good argument for Steve to make. He uses the confusion of flash on the iPhone OS in this case to prove a false point.
Now, Steve does mention in his letter:
“We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.”
I don’t think this is a fair argument either, for one simple reason: Let the market decide
- If a cross platform tool doesn’t implement a specific platform’s features and enhancements, that means I will decide not to use it myself if I don’t think I can produce a good enough app with it. So, supply and demand. The makers of these tools will be forced to ‘keep up’ if they want to stay in business.
- If someone does release an app that doesn’t implement specific platform features, that leaves the market wide open for someone else to make an app that does implement these features. Let competition sort it out.
- Finally, we all know Apple is the ultimate gatekeeper to the AppStore. If someone submits an app that performs badly, doesn’t adhere to UI standards, or does not implement iPhone specific features it should, they can reject the app on a case by case basis. In fact they already do this to a large extent.
Steve suggests Apple’s ultimate
“motivation is simple – we want to provide the most advanced and innovative platform to our developers, and we want them to stand directly on the shoulders of this platform and create the best apps the world has ever seen. We want to continually enhance the platform so developers can create even more amazing, powerful, fun and useful applications.”
I can’t speak for Flash on the iPhone here, but I can speak for MonoTouch (which allows developers to write C# code to create native iPhone apps):
- MonoTouch stands on the shoulders of the iPhone OS. It interacts with iPhone Frameworks and API’s, using Apple’s own User Interface elements and libraries.
- MonoTouch levitates above the shoulders of the iPhone OS. For example, it’s had regular expressions and garbage collection (memory management) since it was released for iPhone OS 3.x. Apple’s own framework is only adding regular expressions in 4.0 and still doesn’t have memory management.
To get back on track, this isn’t a rant about why MonoTouch is better than Obj-C (though I love it so). But it goes to show that quality applications that perform well and conform to apples’ standards can be made with more than Steve’s pet language. It’s not the language that makes an app good or bad, it’s how it was made. There are plenty of examples of terrible obj-c apps out there.
Conclusions.
I can’t condemn Apple for not making Flash embedded in web pages work for Mobiel Safari. Their reasons are numerous and not unfounded.
I will condemn Apple for trying to play Mobile God once more by telling the Market what it would decide on its own. There’s no need to actively block Flash, MonoTouch, Unity, etc. Let the market decide with its wallet. Developers won’t use tools that suck, users won’t buy apps that suck, competition will weed out apps that aren’t as good as they could be, and Apple can still deny Apps and hold the ultimate key to the AppStore, regardless of what language they were written in.



Adobe’s Flash has been doing a pretty good job lately of trying to make this developer dream come true. Adobe AIR accomplishes true cross-platform compilation pretty well and even has extensive integration with all the systems it is supported on. They’re taking this one step further with Flash CS5 and apparently targeting several major mobile platforms, including the iPhone and Android, giving developers the ability to create their application once, and have it look, feel, and function the same across platforms. I think it’s extremely important to mention here that Flash for the iPhone is not really Flash. It’s simply a flash app that’s compiled to a native iPhone application. So when people argue that flash is slow, and prone to crashing, that’s not a legitmate concern since it’s not really flash we’re talking about!
In any case, there’s a good chance you’ve downloaded an application made with a tool like MonoTouch already. Ever heard of
Now imagine a bunch of flash developers start using Flash CS5 and all of the sudden they start making apps for the iPhone and Android at the same time, and that their apps look, feel, and function exactly the same on both platforms. Now, do you still really want an iPhone? Many people may still prefer the iPhone for various reasons (they are already comfortable with it, or Apple has already locked them into their ecosystem with iTunes, etc.), but many more people would feel free to move to another device. This is not a new concept for Apple. They’ve been making money by charging premium for their products based on the software and experience associated with their hardware.

