
Flash Will Survive - HTML5 will too
Across the tech community, it seemed like the news that Apple wasn't going to support Flash on its mobile platforms signaled the end of an era. After years of side-choosing, name-calling, and grandstanding, the conventional wisdom now seems to indicate that HTML5 is the future and Flash is the past. But if HTML5 is the future, which it very well may be for a range of commercial applications, what is the present? While tons of companies are moving to take advantage of the awesome new features that HTML5 opens up, it seems like the collective hysteria that followed the announcement has given way to more measured, thoughtful discussion of the balance between HTML and Flash now and moving forward. It's about time.
Stop the Presses: Technology Changes!
There seem to be a couple of reasons for the attention that Flash's noticeable absence from iOS has generated. First, there's demographics. According to the W3, Safari only accounts for 3.5% - 4% of internet usage, so some smaller fraction of that is people whipping out their iPhone. To put this in context, that's about the same percentage as the number of people using the (understandably) vilified IE6 (3.8% as of January). When you look at their user bases, there's probably a ton of daylight in the overlap on that Venn diagram. But if we compare this with Flash's penetration in the US (around 99.5%), it looks like there aren't a ton of people who are getting locked out of their Cat Fancy video fix. So it must not be the number of people, but who they are. And who's getting shut out of Flash on their iStuff is pretty much the entire tech community. This creates a distorted perception of the overall impact of Apple's decision, though because of Apple's caché and position among the right people, it's a perception that holds a lot of sway on what gets made. With any luck, events such as the recent release of the Skyfire app, which enabled Flash to play on iOs devices and crashed their distribution servers within hours due to overwhelming demand, will help to change views about openness among the content creators and the community at large.
Another reason for the interest is not just who is affected, but more specifically how that applies to Apple's strength in the mobile market. For starters, they basically made the mobile market, which is hands down the fastest growing area of computing today. They have changed the way that people interact with their devices, shifting interactive content from browser-based plugins to self-contained (and sold) applications. As of this post, their app store has 72,437 gajillion apps (oops, there's another one!). And with multi-core mobile processors for tablets and cellphones just around the corner for the masses (think about the just-released Motorola Xoom and the iPad2), the capabilities for those devices could soon rival their much bulkier desktop cousins. This is why Adobe's partnership with Android is so important, so that Flash can finally do to the mobile world what it did for the rest of the web: change the way we expect to interact with it.
Stages of Canvas
The canvas tag, introduced in HTML5 for drawing directly to the pixels of a webpage, gives the web all of the potential capabilities that Flash has for graphics. The video tag, introduced to provide a cross-browser implementation of video on the web without a plug-in, primarily the Flash plug-in, which currently handles most of the video on the web by virtue of lack of competition. Together, these tags are supposed to be the things that will shortly kill Flash, but what they lack are tools and standards.
For the canvas tag, there are some very promising technologies coming out that are going to threaten Flash's dominance in graphics, but they are immature at best. Most notably for our company is the WebGL initiative, which provide web developers with 3D capabilities that surpass what's available to Flash developers today. The problem is that to most users, the canvas tag appears broken, because their browser doesn't support it, and support for it isn't standardized across browsers, which means that simple things like getting mouse coordinates for example have to be broken out into conditional browser tests. Not fun. This is nothing new for web developers used to JavaScript, and doubtless there is plenty of room and precedent for frameworks to emerge and pick up the slack. But still, developing these tools takes time as well, and while they are coming to the front and evolving to meet the developing HTML5 spec, Flash has the potential to gain back some of the ground they've lost through projects such as Molehill, Adobe's API for full graphics-card acceleration intended to launch in mid-2011. Indeed, Molehill will utilize Microsoft's DirectX on Internet Explorer and the open-source OpenGL on other browsers (which WebGL is based on), whereas WebGL at this time has no implementation planned for Internet Explorer. This may be another example where Flash's cross-browser mantra may prove superior.
The video tag is another option that has already generated a huge following, with major players like YouTube and Vimeo using it to serve up videos that are device independent. But again, it isn't browser independent, and instead of being a matter of the tools just needing to mature, this is a matter of economics. The video tag is just a spec, so it's purposefully vague (essentially, "the <video> tag will embed video on a web page"), but the implementation, including the video player and codecs are all relative to the browser being used. And because Apple decided on using a proprietary codec for its encoding standard (H.264), that means browsers, applications, and possibly web pages themselves will have to license the technology independently. This has kept a lot of browsers away, including Firefox and Chrome, which utilize their own, open source codecs. Google has said that in an effort to enable open innovation they are dropping support for H.264 from Chrome and going with the open source WebM (VP8) and Theora formats, further complicating the future of video in HTML.
Ultimately, whoever can provide the most consistent experience across user-bases is going to win the corporate tug-of-war that is always looking to keep costs down. If history is any indicator, then we've seen this movie before, and a plug-in solution will be more consistent, and hopefully in an effort to increase competitiveness, we'll get a more open-source Flash plug-in as a consequence.
Flash is Change
Flash will prosper by continuously providing and refining an open-ended set of tools for developers to work with, giving them the freedom to create experiences without worrying about implementation details across browsers. We will probably see less of an adjustment in Flash capabilities than a tweaking of the way it is used in concert with other technologies. In the search-indexed, socially integrated web landscape of today, a structural language like HTML5 that can provide a skeletal framework for large amounts of data while at the same time streamlining media delivery is going to be desirable. However, Flash is the industry standard for visualizing and exploring specific pieces of data in unique ways, and with HTML5's tools and methods still untested and indeed, in many cases unsettled between browsers, this should continue to be the case for some time. The way to the future, it would seem, is together.
Some would argue that Flash's biggest strength is how quickly its capabilities can be turned into functionalities. This ability to rapidly innovate is nowhere more important than in the field of mobile applications, where the ground is constantly shifting. If you're going to build on quicksand, best to build quickly. Adobe has realized this (finally), and through partnerships with Android and Blackberry, as well as the Open Screen Project, they are quickly moving to upgrade their presence on mobile platforms in general. However, the question then becomes "What will a truly mobile Flash app look like in the future?" With gains in processing power for handheld devices, the answer appears to be "Just like a regular Flash app with extra awesome!" Accelerometer support? Yes please! Multi-touch? Fun! And as these features are included in Flash applications meant for either mobile or standard environments, we could see a burgeoning market evolve which brings mobile-style UI peripherals to the desktop world. Just look at the intrepid company that has made the first major strides toward this hardware: Apple, with their multi-touch mouse. See how everyone wins when we all open up a little?
In the words of Canada: