February 02nd 2010 | Jens C Brynildsen
Then after Apple presented their new consumer tablet, the history repeats this week as well. Robert Scoble even went so far as to ask Can Flash be saved? And yet again evangelists and others start posting about how the iPad needs Flash and why the lack of Flash will be it's demise. What's wrong with this picture and why all the fuss?
The video tag in the HTML5 draft will make it possible to play video with any browser and YouTube are now testing this. The standard for the video tag is apparently a mess so the testing is limited to Chrome and Safari. It's all a question of what video and audio codecs to use, but Google could solve the situation. They recently acquired the company ON2, the makers of some of the best video codecs available. Google could easily solve the clutter by opening up the ON2 codecs to the HTML5 standard. As one of the two video codecs in the Flash Players is licensed from ON2, this could help Flash moving towards an Open Standard as well. The ON2 deal is not yet finalized but is expected to go through mid February.
These are just a few of the problems related to HTML5 and even when finalized it won't kill Flash in any way. Even if VP8 is contributed by Google to the HTML5 standard, it'll be far from a "killer" as Flash can do so much more than just web apps and video.
Apparently, Apple doesn't see Flash as part of the "Open Web" and Steve Jobs even elaborated on this recently. Even if the spec for creating SWF files is open and anyone can make their own Flash Player as well as authoring tools, Flash is not open. It's a "standard" driven by a single company. Controlling this standard has enabled the innovation that others feed off (ref SilverLight) but I don't think it's this lack of a standard that holds Apple back. Apple has several good reasons for not allowing Flash onto their platform.
Flash breaks a very basic rule on the iPhone, namely the iPhone SDK Agreement point 3.3.2 explicitly prohibits the installation and execution of interpreted code. This prevents not just Flash, but all other similar architectures such as Java and Silverlight as well. The reasons for this are many, but it boils down to user experience. iPhone and iPads will end up with users that don't know anything about computers. Providing support cost a lot of money and since Apple is controlling all the code, they can fix anything that is wrong themselves. Imagine if there was an error in the iPods that required customers to call Apple for help? Apple has sold 250.000.000 of these...
Some claim that allowing Flash will put a nail in the coffin for Apple's App Store since there will be a flood of free Flash based games. I don't believe in this scenario at all and I also think it's a good thing that the iPhone OS does not support Flash.
Flash on devices has never been a success and the reason is simple. To get decent performance on a tiny device, one needs to go to a lower level than Flash has been capable of up until now. If the iPhone got Flash support, everyone would hate Flash since it was so slow on their device. When native applications are so much faster, everyone would understand that this can't be Apple's fault. My iPhone is slow enough without Flash and while sporting a slightly faster processor, it will be the very same case with the iPad. Flash Player 10.1 is the first solid implementation for Flash on Mobile devices but it's no silver bullet. You'll still have to develop specifically for low specification devices, so don't even think about doing advanced things like Papervision and Away3D. The same goes for the CS5 export to iPhone OS. It requires extreme care to get decent performance, so don't think authoring for the iPhone will be just a click on a button.
While iPhone users will get to see a lot of blue LEGO bricks, this can be solved. Well written detection code can display alternate content such as an image with a link to the App Store where you can download the alternative iPad/iPhone version. Popular Flash games such as Farmville is bound to take this route and Flash developers should already be used to provide alternate content. This is of course more expensive, but the market is certainly there. The iPad is not a device for the average programmer, it's a device for their parents that don't care about how hackable something is. They just want something simple to solve their limited needs.
The iPad is the first computing platform that could really go mainstream as I could teach my mother in law how to use it in just 15 minutes. Not only that, but she'd even remember how to use it the week after when her grandchild calls her up to tell her that she should check her email to see pictures from their latest concert. If something crashes on this machine, my mother in law wouldn't know what to do and she'd be afraid that she had broken something. I trust it's true that the Flash Player is involved in many of the crashes on a Mac. After all, my browsers crash every second day as well and Flash is almost always involved. Preventing crashes and hiding the effects from this is an absolute must for a device targeting this audience.
To Flash developers it's of course sad that so many people can't enjoy what they've created, but the Flash Player can't be the solution to everything. It's just a tool that has phenomenal capabilities / reach and as developers we should choose the right tool for the job and not try to bend our tools into solving every task. Learning to program for the iPhone OS also offers Flash developers something Adobe can't give them (yet) - a proven way to monetize their content through the App Store.
Flash is a solid runtime packed with features. Video is just a single feature in a massive API that Flash developers can use. Deploying Flash applications offers full cross platform support (Windows, OSX, Linux, Ubuntu) and with 94% distribution of the latest player, more or less everyone can view what you have created. The Flash Player is found in so many other places than just desktop and portable computers. It's even used for the dashboard in Jaguar and Tesla cars.
Microsoft's Silverlight is the only real competitor to Flash in terms of features. It's not as widely distributed, but it's a very capable runtime that will be adopted by many customers in the years to come. Currently there's very few websites/experiences made with Silverlight, but it's increasingly popular as a way to deploy applications in businesses that have already invested in Microsoft technologies. Flash developers should be glad that Silverlight came along as it both confirmed web applications as important to businesses and it provides much needed competition for Adobe. Competition is good for Flash as it pressures Adobe to keep innovating.
The Flash Player may not be an Open Standard but this has enabled innovation that others can just dream of. Adobe is not sleeping on it's laurels. In 2009 alone, we got such new features as Pixel Bender, Text Layout framework with solid font support, Dynamic sound generation, Audio recording (AIR), Local file upload and download, Peer2peer connections and much more.
Flash Player 10.1 will offer Flash playback on a long list of new devices and while Adobe would love to add Apple to this list, it probably won't happen anytime soon. This is just fine! If the iPhone could play Flash files, everyone would say that Flash sucked. Millions of Flash files that are not optimized for mobile devices would play back terribly slow. It's unlikely that Flash developers all over the world will run to clients they had ten years ago and get acceptance for making iPhone versions of old projects.
Controlling the user experience is the Alpha and Omega for Apple. They have the source code for the entire OS, so they can fix anything that is wrong. On the desktop, the Flash Player has long been the only piece of software that is part of the OS that Apple does not control. If the Flash format became an Open Standard, Apple could make their own Flash Player that tapped deep into the system APIs for greater playback speed. Could this happen?
Flash is already a standard due to its widespread use, but it's controlled by Adobe as opposed to an open committee (though they probably have that within Adobe as well.) This has enabled fast paced innovation for many years, but it has also made it difficult to turn Flash into a real Open Standard. Adobe isn't making money from developing the Flash format or Player. They make their money from the tooling around the runtime and Adobe has no monopoly on this. The SWF file format is open and there are more than 1000 applications that can export to the SWF format. Adobe is already competing against these and you are now free to make your own Flash Player (To use the Flash brand name you need Adobe certification.)
It's not unlikely that Flash may become an Open Standard in the near future but there's at least two obstacles: the Fraunhofer MP3 codec and the ON2 VP6 video codec. These are licensed technologies that you just can't drop as this would break a lot of Flash content. Adobe could maybe pay their way out of the first and Google holds the key to the second as they will soon own ON2. While theoretically possible, it's not very likely that this will happen soon. It's more likely that Adobe will keep innovating and that the others will follow as best they can.
In other words, if you're a Flash developer - the future has never looked brighter! Now can we all please keep calm and stop bashing Apple for not supporting Flash on the iPad and get back to producing great content using a great runtime?
Jens has been working with Flash since version 3 came out. Since then, he's been an active member of the Flash community. He's created more than a hundred Flash games (thus the name of his blog) but he also creates web/standalone applications, does workshops and other consulting. He loves playing with new technology and he is convinced that the moment you stop learning you die (creatively speaking). Jens is also the Editor of this website.