Additionally, Flash faces a number of significant obstacles that are its own fault. These also erode Adobe's position and have helped force its hand in opening the Flash specification. Here's a look at the external competitors of Flash, and how Flash has hurt its own chances to establish itself as a web platform in the future.
The Many Enemies of Flash
Microsoft now sees Flash as a competitor to Windows, as it performs the same cross platform, application deployment role Java attempted to deliver a decade ago. If critical web content is all done in Flash, there's increasingly less need to use Windows anymore, as most platforms can run at least some version of Flash. Microsoft is hoping to sideline Flash the same way it crippled Java on the desktop: by building its own proprietary version, Silverlight, and using its monopoly power to rapidly deploy it and simply choke off Adobe's air supply.
While Microsoft seemed rather invincible in the 90s as it more or less terminated Netscape, client side Java, OpenGL graphics, Office alternatives, and other competition, its more recent efforts to crush rivals haven't been as successful. Plans to destroy and replace iTunes and the iPod, Google in search or advertising, smartphones, and video game consoles have all been expensive campaigns that haven't resulted in monopoly expansion. That certainly makes the struggle between Silverlight and Flash more interesting and harder to call.
Sun may be an enemy of Microsoft, but that doesn't make it a friend of Flash. The company has watched Flash take over the role intended for client Java, and is now competing against Flash in rich Internet applications. Sun is fighting back with JavaFX, a new family of Java tools to push back into that market on both the desktop and in mobile devices.
The open source community has little love for Flash because it is a proprietary standard. The Free Software Foundation (FSF) is pushing Gnash as a free alternative player to Adobe's Flash Player (FSF lists it third among its High Priority Free Software Projects), while OpenLaszlo competes against Flash development tools for creating rich Internet applications; it can produce either Java serverlets or binary Flash content that can be played back using the standard Flash Player. Other groups are working to extend SVG and other software in place of Flash entirely.
Apple added support for Flash 4 to QuickTime 5 in 2001, which enabled developers to use Flash for interactivity within QuickTime movies. However, Apple had trouble keeping its support for Flash up to date with the latest release from Macromedia. Additionally, while Flash releases for the Mac were delivered at the same time as Windows, the quality of Macromedia's Mac releases was always a bit behind and problematic.
With Flash 8, released in 2005 just before the Adobe purchase, Macromedia decided to only build support for Flash content playback on the Mac within the web plugin or in the standalone player, and delegate Flash playback from within a PDF to QuickTime. By that time, Apple had given up trying to keep pace with the latest version of Flash, so users trying to view Flash inside a PDF could only play Flash 5 content.
In 2006, Apple turned off Flash support in QuickTime 7.1.3 by default, explaining that "The version of Flash that ships in QuickTime is older than the version available from Adobe and used in Safari, therefore, while we still ship Flash with QuickTime, it is turned off by default." Since then, Apple has removed the option to even turn Flash support back on in QuickTime.
Apple's complete lack of interest in promoting Flash grew even more obvious in 2007 with the release of the iPhone, which not only shipped without Flash support in its web browser, but also introduced an alternative H.264 player for YouTube videos that worked around what has become the most valuable use of Flash on the web: serving as a player applet and container format for web videos.
Between a Rock and a Hard Place and Some Other Obstacle
While Adobe has continued Macromedia's marketing strategy of finding various new uses for Flash and advertising the wide penetration of the Flash Player runtime, it is now up against the three strongest forces shaping the future of computing. Microsoft has already begun leveraging its Windows and Office monopolies to distribute Silverlight as a Flash-killer on both the Windows PC desktop and on the Mac. When Microsoft releases a Mac product, it can only mean one thing: it's working hard to kill a cross platform threat to Windows.
If battling Microsoft on the desktop isn't tough enough, Adobe now has Apple pushing its prominent WiFi mobile platform in the iPhone and iPod Touch as completely Flash Player free. Further, the new Cocoa iPhone/iPod Touch SDK not only offers Adobe insufficient means to develop a Flash plugin, but also clearly forbids the development of runtimes designed to advance competing platforms on top of the native Cocoa environment, whether Flash, Silverlight, or Java.
Apple strategy to leverage the success of its iTunes, iPod, and iPhone to disrupt proprietary control of the web is in full swing. The company is also aligned with Mozilla's FireFox and the Opera browser to advance support for today's SVG and develop the future HTML 5 specification for standards-based rich Internet applications, both of which are direct threats to Flash on the desktop.
On page 2 of 2: A Shot in the Dark with Flash Lite; Weak Cross Platform Flash Software; and Strong Patent Threats.
A Shot in the Dark with Flash Lite
The fact that Adobe has only delivered fair to poor Flash support for any platform outside of Windows is also a significant problem. While the company likes to rattle off the number of devices and operating systems that "support Flash," it hides the fact that few of those actually support the latest Flash 9, with many stuck at support for Flash 5, 6, or 7.
Mobile devices typically run Flash Lite, which targets a minimal subset of Flash interactivity; the existing Flash Lite 2.0 is based upon the 2003 Flash 7 runtime. The recently announced Flash Lite 3.0 will be the first version that can play Flash video, the primary attraction of Flash on the web.
Flash Lite does not run on the iPhone. At Apple's recent shareholder meeting, Steve Jobs noted that the Lite version of Flash "is not capable of being used with the web," meaning it can't play back content developed for the desktop web browsers, while the full desktop runtime "performs too slow to be useful" on the iPhone.
While Adobe has bundled Flash Lite players for devices running Symbian, Sun's Java ME, Qualcom's BREW, and Microsoft's Windows Mobile, it also competes against those platforms for native development attention. It should come as no surprise that once those companies discover this, they will likely react the same way Microsoft did on the Windows desktop. Certainly, once Microsoft can deliver its own mobile version of Silverlight, it will attempt to displace Flash Lite. That's apparently not too far away; the company recently demonstrated a beta of Silverlight 2 running on Nokia's Symbian S60 and Windows Mobile devices.
Weak Cross Platform Flash Software
Outside of smartphones and PDAs, other non-PC devices that supposedly run Flash are often similarly outdated and buggy. The Sony PlayStation 3 (which uses the NetFront browser) and Nintendo Wii (Opera) web browsers offer "Flash support" that only works with content developed for older versions of Flash. The Xbox 360 does not ship with Flash support, and it sure looks as if Microsoft has no interest in providing it at any point in the future.
Adobe provides a Linux Flash Player 9, but it only works on 32-bit x86 machines, which rules out its use on 64-bit PCs, game consoles and desktops using PowerPC processors, or most devices running on ARM chips, although Nokia has adapted Adobe's Flash Player 9 for the Linux and ARM-based Internet Tablet 800.
Adobe's Flash support on the Mac also carries on the tradition of Macromedia's second rate support for platforms outside of Windows. While Macs have fewer problems playing modern Flash content than other platforms outside of Windows, the Flash plugin Adobe supplies for Mac users has significant problems with memory leaks and stability. Apple can't be pleased that Flash distracts from the overall experience of Safari and the Mac desktop.
Strong Patent Threats
Adobe's hit and miss support has created interest in third party implementations of the Flash player. However, Gnash and other open source projects designed to supply Flash player functionality to platforms where it is lacking or outdated have run into two major roadblocks common to most every effort to duplicate proprietary software.
First, they must reverse engineer the moving target of the existing Flash specification while Adobe independently works on new versions. Gnash currently only supports the features of Flash 7, released back in 2003, along with limited support for some elements of Flash 8 and 9.
Second, in a world where every software concept is now being patented, even successful efforts to "clean room" duplicate something like Flash can be hit with submarine patent infringement lawsuits long after the work is done. That threat often prevents commercial third parties from joining or supporting open efforts to clone existing technologies, out of fear that patent trolls will attack once the bridge is crossed. That fear not only applies to independent implementations of Flash but also the Mono and Moonlight open source projects that attempt to provide open compatibility with Microsoft's .Net and Silverlight on both the Mac and Linux.
Rather than flattering Flash with imitation, the open source community could be flattening Flash with innovation. Why copy proprietary software when open standards can provide a better, safer foundation for developing upon? On one hand, that's exactly what Google, Apple, and its W3C partners Mozilla and Opera plan to do: obviate any need for Flash. However, at the same time there are significant market pressures behind Flash that will take some time to deflate, considered in part three: Adobe Fights for AIR with the Open Screen Project.