The debate about the Flash platform has become very interesting very fast following (first) the announcement of the iPad and (second) its release. It has put a very public spotlight on a shift in media technology that goes back to the introduction of ActionScript 3.0 and the publication of numerous Javascript libraries such as jQuery, MooTools, Scriptaculous. It also highlights the common perception of Flash in relation to (my perception of) Adobe’s goal for Flash.
Flash, for a while, filled a need. For a while it was the only reasonable and reliable way to create animation, handle UI events, mix media, and generate high quality marketing materials for the web. Designers loved it because we could establish complicated layouts, use our own fonts, and stylize all the little details of the user experience. We didn’t need to solve cross browser bugs generated by the multiple flavors of the Document Object Model implementation. We didn’t have to use graphics for text or require many different media plug-ins for audio and video playback. The Flash plug-in made things work consistently on all web browsers.
Of course, there were drawbacks. To their credit, Adobe did try to address these problems. You had to perform manual checks for the Flash plug-in. The rapid advancement of the technology meant that the web was littered with many different plug-in versions. Flash was not searchable. Developers either had to expend effort to create alternate versions of content for Flash-less visitors or simply ignore a small but real percentage of their audience. Flash had performance and error-handling problems; poorly coded Flash-based websites and applications could bring down your browser. And, of course, Flash was useless for mobile browsers.
JavaScript libraries, CSS, and HTML 5 are changing all of that. JavaScript libraries greatly simplify the way in which interactivity can be achieved in web pages, cutting the time required for scripting dramatically and reducing the overhead that cumbersome code or the Flash plug-in can create. CSS has improved to give significantly more control over the appearance and layout of our web pages. A bounty of plug-ins for JavaScript libraries are now available to create all sorts of HTML page layouts, user interfaces, and visual effects.
For example, I recently reviewed the JavaScript code that enables the Panic Software home page. This page has been around for a while, but it’s simply brilliant and I don’t see a need for Panic to change it. The JavaScript for this page is a nightmare of conditional statements to address the various web browser requirements. I can write similar code using jQuery (and I did for my own home page) using less than half as much code.
HTML 5 promises to further ween developers from Flash. Video and audio playback alone could make Flash completely unnecessary on many websites. New drawing and and animation capabilities help developers liberate additional effects from Adobe’s monopoly over online mixed media and web animation.
Frankly, I think Adobe expected all of this to happen. ActionScript 2 was just a stepping stone. It was very similar to JavaScript and, for web developers, and easy adjustment. I had no problem scripting effects in Flash, going so far as to create simple arcade games. ActionScript 3 is a different beast. This is a real programming language, one that separates pretenders like me from real men with serious IDEs. ActionScript 3 signaled a shift in the target for Flash media development: it’s no longer a tool for creating neat-0 web pages. Flash is now a powerful tool for building Internet-enabled applications with high-end user experiences. At least that’s the rumor.
Most of your consumer-level users don’t see that. The look at the iPad and think about how they can’t use it to watch Bones on Hulu.com. Let’s just get this out of the way now: Flash ain’t gonna be used to play video much longer. Like I said before: Flash, for a while, filled a need. That time is coming to and end. It’s a waste of time and effort to be using Flash to play audio and video, but for a while it was the only reliable way. That’s going to end.
I’m less certain about online games. This is one place where Flash has been very useful to companies. Online games, particularly on Facebook, have become huge business. I find them to be buggy and annoying and would not miss them if they disappeared, but lots of people play them. Not being able to do so on your phone is not a big deal. I can’t imaging playing a game like that on a tiny screen, I don’t care what the resolution is. The iPad is a different story. Users do lose out there.
Adobe could care less about whether or not YouTube continues to serve video using some Flash-based player. I’m not even sure their too worried about Facebook games being recoded in HTML5. Maybe I’m wrong, but I don’t see it happening. What gets their goat more than anything is the fact that Flash can’t be used to build apps for Apple products. Because that’s their bread and butter. That’s why they are pissed off. And it has nothing to do with Flash support for the mobile version of Safari. This is a level above that. Their gripe is with the rules that Apple established for allowing applications on the iPhone and the iPad. The rule excludes any applications that were not build using Apple’s approved methods. Those methods to not include Flash.
I understand Apple’s position. The iPhone and the iPad have great user experiences. As with all of their products, Apple creates and insures that superior user experience by controlling the things that become part of the user experience – and on the iPhone and iPad, those things are apps. I’ve never actually seen a Flash app that I thought was any good. Most of them suck, even the Media Player that Adobe ships with CS4.
Apple is also trying to avoid a tremendous resource drain. By constraining the user experience on their mobile devices, they limit the possible ways in which the user experience could be negatively affected. When users have a problem, they ask for help. Apple’s limitations help limit the possible problems, keeping the support requests to what could be considered a small amount. Excluding apps built with Flash prevents potential problems and keeps Apple support from having to deal with them.
Apple now faces a serious challenge from the Android mobile platform. I expect Android’s support for Flash in the web browser to be a liability for Android. My guess its it will cause more problems for users than it will actually solve. However, apps for Android created using Flash could be a big deal. One of Apple’s biggest advantages right now is the richness (overabundance?) of apps available in the App Store. The Android market is a sad little place by comparison. However, since Android will be open to apps built using Flash and the iPhone OS will not, Flash support could help the Android Market close the gap with the App Store. That could be the biggest threat to the iPhone – even bigger than all the new hardware that keeps getting released from Motorola and HTC.