As you have probably heard by now, Steve Jobs recently responded to the escalating Adobe-Apple conflict with a detailed and open letter explaining his thoughts on flash. Since the letter was published, there have been numerous responses (1, 2, 3...) to his letter, many of which try and accuse Apple of hypocrisy. I've been following this issue for a long time, and would like to build my own case for why Apple is correct in stirring up this anti-Flash campaign.
Arguments against Apple:
- The "Arbitrary" App Store Approval Process: Apple claims to be open (while Adobe is closed), yet look at their "Walled Garden": Yes, development of the iPhone operating system is closed. However, I do not see this as a major issue because not all software necessarily needs to be open source. Apple can make a profit by developing this great mobile operating system. I think the main issue people point to when they speak of the "Walled Garden" is the App Store approval process. Apple has rejected apps for arbitrary, and seemingly unfair reasons - rememberPodcaster or the [Google Voice] app? Both of these rejections raised a lot of controversy - Apple claimed that both "duplicated core functionality" or would "confuse users" and many condemned Apple for their actions. Now, let's look at how the situation presently stands. Podcaster (now called RSS Player), is available in the App Store today. Google built a HTML5 version of their Google Voice app which has basically all the same functionality as their rejected native client. Moreover, we now know that Apple obviously isn't going to just block any app that duplicates the phone technology of the iPhone, since they approved the Line2 app, a Google Voice clone, they approved Skype and even now allow it over 3G, and moreover specifically [designed and promoted a VOIP background service] for iPhone OS 4.0 - which essentially makes Skype and other VOIP apps now equivalent in functionality to the native iPhone client. Moreover, the argument that Apple will not approve apps that duplicate core functionality no longer holds water - they recentlyapproved Opera Mobile, which by any definition is a direct competitor to Safari Mobile. Not only that, [it runs faster on the original iPhone over EDGE]! Yes, some apps like emulators will not be approved - but remember these are mobile devices with limited battery, CPU power, and RAM. If you want to run an emulator, use a computer. For all these reasons, arguments that Apple is unfairly limiting developers by only allowing apps through the App Store with a self-interested approval process are dead.
- Apple Doesn't Actually Write Open Source Software: Another argument is that Apple doesn't actually contribute to open standards an open source software. Someone recently argued that Webkit, Apple's open source browsing engine, doesn't meet this qualification. Some claim that Apple just forked the KHTML engine - well anyone who has recently loaded a fairly complex webpage on Konqueror with the KHTML engine verses any of the Webkit-based browsers can clearly see the work Apple has done with Webkit. Moreover, Webkit's adherence to standards has helped promote benchmarks like the Acid 3 test and actually making standards-compliant rendering engines. Finally, the sheer popularity of the Webkit engine debunks any assertions of its insignificance: it is used in almost all mobile browsers and a [large list of popular desktop browsers] including Google Chrome, Safari, Arora, Midori, Epiphany, and yes even Konqueror! This Apple-led project has clearly had a big impact on the web.
- Apple Supporting H.264, Not Theora: Specifically in the Flash argument, many point to Apple's promotion of H.264 as the Flash alternative instead of Theora as self-interest since they belong to the MPEG-LA. This is a good point, as in our struggle for a patent-unencumbered and royalty-free codec Theora seems to be the best bet. However, this all changed today when [Steve Jobs informed us] that a "A patent pool is being assembled to go after Theora and other "open source" codecs now". Since Apple is part of MPEG-LA, they are clearly privy to more information than most people on the Internet and they probably have known this for some time. In light of this information, Apple's use of H.264 makes sense. Unless Google open-sources VP8 and it really is patent and royalty-free, we are stuck with H.264 for now, despite its imperfections.
- I Should Be Able to Run Flash on My iDevice: Some users want to be able to run Flash despite its problems. The issue here, though, is that Adobe still can't produce a decent version of Flash for OS X (or Linux), both full desktop operating systems. It looks like we finally might make some progress on the Mac OS X front with Gala, which uses Apple's new hardware-accelerated hooks for H.264 decoding in 10.6.3. If Adobe can't produce a decent product for the desktop, what does that mean for the mobile environment, where resources are really limited? Apple wants to kick the habit now at the start of this new mobile platform, rather than introduce it now (problematically), and then try to phase it out as everyone transitions to HTML5 in the future. The fact that [Microsoft agrees] with Steve Jobs that HTML5 is the future should be a clear sign of Flash's demise. Moreover, a large amount of the Flash video on the web today uses the H.264 codec - it's just displayed inside of a Flash wrapper - thus H.264 is already deeply integrated with online video. I think Jared Earle said it best regarding Adobe's attempts to put Flash on the iPhone: "Put it like this, if Apple had said ?Yes, we?ll allow Flash on the iPhone? do you honestly think we?d have it yet? Steve?s right to get this out there. Adobe have had plenty of time to earn their place on the iPhone and so far, they?ve not demonstrated a single reason why they deserve it."
- 3.3.1: This has really been an uproar - Apple is no longer allowing 3rd-party cross-compilers to produce iPhone apps. This specifically targets Adobe's new CS5 suite. Apple argues, and I think rightfully so, that cross-compiled apps are substandard in terms of performance. I have to agree. I think it is safe to say that a developer who understands C/C++/Objective C tends to have a better understanding of the hardware/software boundary and efficient memory-management/coding practices. This is not a putdown to other languages, even Flash, but the C family of languages force you to go low level and think about these issues. What does this mean for developing on a mobile platform where resources are limited - more efficient applications. Granted, there will still be developers who will produce garbage code, but that happens anywhere. Cross-compilers are fine in other situations, but not in a mobile environment when battery life and limited resources are such an issue. I think of it this way - look at what the code for a webpage looks like after creating it in Dreamweaver verses writing the code yourself by hand in a text-editor. The WYSIWYG editor will make it easier but ultimately the code will be more ugly and inefficient.
These are just my thoughts on the issues surrounding Apple, Adobe, Flash, HTML5, and the future of the web and mobile content. Thanks for reading.