Syndicated feed for this blog

Tuesday, March 24, 2015

I got a new Macbook Air a year ago. In the weeks I spent setting it up as my main work machine I made the deliberate decision not to install Flash. I figured I would hit a case where it became clear I needed Flash. A year later and I still don't have Flash installed.

Flash is no longer an essential plugin on the desktop/laptop Web. It is non-existent on mobile. It is no longer the default way to consume video on the Web.

It didn't use to be that way, and I'm surprised how far Flash has fallen into irrelevance so quickly. For a long time, Flash had better support in browsers than CSS. SVG paled in comparison even in the realm of vector graphics. Flash's control of the web looked impregnable.

How do you take on an immovable behemoth? It starts with a single blog post rant.

Flash's failure on mobile

The rise of mobile in the form of smartphones and tablets came with the declaration that Flash was not a welcome participant. Coinciding with the launch of the Apple iPad, in a rare Steve Jobs blog post Apple announced that Flash would not be allowed on iOS. The fallout from that decision destroyed Flash's incontestable ubiquity.

This was a business decision on the long-term viability of Flash on platforms with performance and battery-life are primary concerns. In a world where Adobe pushed hard to make Flash all things for all people it went too far, every step making it less viable to the fast-approaching lower-spec mobile platforms. In effect, this was a declaration of no confidence in Flash, and in Adobe.

Inside of a year there was no recognisable trace of Flash left in Android either. The days where Flash was a deal-breaker feature was over.

Similar to Java retreating from the browser and emerging as a viable server-side platform, Flash tried recasting itself into the platform of choice for developing native mobile apps. But today Flash is fading into obscurity from even that avenue.

Flash's reversal on the desktop

In the desktop/laptop Web Flash has lost the prominence it once had. The binary Flash plugin is no longer an essential part of the Web browsing experience.

Flash grew as a sandboxed environment inside the browser page to deliver rich content and engaging interactivity and cutting edge user interface. It prided itself as being a platform for building Web applications that couldn't be built with HTML and CSS. Scrollable and zoomable maps, playing video clips, animating vector graphics, playing games, streaming content. Flash enabled all that.

But it was video-on-demand that became Flash's killer feature. The single page app didn't take off (unfortunately loading pages did, much to the disgust of visitor advocates).

Over time, Flash was gaining a bad reputation for security issues and as a performance hog. Apple was critical of Flash and took the step into pushing the Flash runtime into a separate process so as to allow it's Safari browser to continue serving up web pages and continue being responsive. By separating processes it made Flash's performance issues more visible and measurable.

Google Chrome dealt Adobe a blow by developing PepperFlash as an Adobe Flash runtime replacement. It is not as fully-featured as Adobe's flagship product, but on today's Web mostly about video, video-on-demand and live-streaming, Chrome's alternative is perfectly adequate.

Even SVG has better out of the box support than Flash in browsers today. Flash trounced SVG in developer mindshare, and now it is SVG that survives and flourishes in the age of improved user-experience on both the Web and User interfaces. SVG has the last-ability Flash could only dream of, tackling user experience polish that Flash was primarily designed to enable.

Flash losing video-on-demand

Adobe turned Flash into the ubiquitous runtime for supporting cross-platform video-on-demand. The MPAA's (Motion Picture Association of America) insistence on DRM in principle, but no particular implementation created a headache Flash cured. Flash supported the mainstream DRM systems and thus became indispensable for video playback in the browser.

Everyone used Flash to build their video players, because everyone knew Adobe did the thankless task of supporting the various DRM formats in the Flash runtime. (Everyone except Netflix)

With regular security vulnerabilities found, exploited and patched, it became a running joke that every week there was a new Flash upgrade required to fix security vulnerabilities disclosed, exploited, and fixed. In the days before seamless browser upgrades Flash was triggering an update required dialogue too often.

Probably in reaction to Flash's low security reputation, the movie industry decided that they would only allow their content to be streamed using Silverlight. This decision may have been merely rubber-stamping what Netflix were already doing. Amazon Instant Video switched from Flash to Silverlight.

YouTube dealt a second serious blow to Flash by developing, supporting, and eventually defaulting to the HTML5 video player. Flash's leading role in video on the Web was over. Adobe showed no appetite to fight this transition, perhaps they had already surrendered.

Today websites that use their own Flash-backed video player instead of an HTML5 video player or YouTube are losing engagement as they degrade back into grey rectangles of missing plugins.

The movie industry decision to rubber-stamp Silverlight as the preferred technology platform for video-on-demand didn't take long to unravel. Not long after Amazon Instant Video switched to a Silverlight player, Microsoft announced that Silverlight was a deprecated platform. Silverlight had no future.

So Netflix switched to HTML5. And everyone else is following their lead.

Flash Single Page App failure

A mass of Flash developers opted to implement the whole website in Flash. User interface and all. I recall that's the first time I encountered the hover-to-scroll UI idiocy. These sorts of sites you learned from other people, since you couldn't find them directly from Google. These are the forerunners to the Single Page Apps. Un-indexable un-bookmarkable blobs of binary data referenced by an empty embed element.

The reimplementation of common UI elements presumably led Adobe to offer Flex, the language to build single page applications. As well as creating a rift in the Flash community, the Flex folk believed Flex was also the replacement for Java.

But these applications didn't gain a foothold on the Web. Maybe Intranets, and as a CMS editing interface, but nothing substantial. Adobe Air is probably the most prevalent of platforms for Flex based Flash applications.

Flash was used to patch some gaps in HTML, like Flickr's uploader widget. It vastly improved on the default HTML file upload widget. Wordpress followed and adopted Flickr's approach.

Flex had potential, but never came close to fulfilling it. The head conference in 2008 is the only good example of Flex coming close to its potential. It was Twitch for online conferences, allowing streaming of presentation session alongside real-time chat.

The Web outlived Flash

The story of Flash is a fascinating but unsurprising. An unassailable dominant platform toppled by business decisions from Apple, Google and Microsoft (proxied through the Motion Picture Association of America in the form of a platform mandate).

The symptoms were always there, Flash is a closed/proprietary platform. Like Microsoft, they appear to be open, but not open enough to allow a feature complete open-source competitor to flourish. The closed system naturally supports the security through obscurity of DRM, which is essential to appease the movie license holders. Adobe gave us a blackbox solution to playing any video on the Web.

Apple and Google replaced Flash with native apps on mobile. Google, Apple and Microsoft replaced Flash with HTML5 on the desktop. Netflix and Google replaced Flash (and Silverlight) with HTML5 for Web video consumption.

Thankfully Flash isn't replaced by one thing. HTML5 is the big winner, and even though it is largely dictated by Apple and Google as browser vendors, it is still a technology based on the principle of openness.

The progress of HTML5 effectively replaced Flash as a technology stack. SVG (in conjunction with JavaScript) has evolved from a parody of Flash to ubiquitous in browsers and operating system platforms. CSS has taken a leap forward. And JavaScript has grown from an embedded inline language in HTML documents to a stack for building fully-fledged applications.

The struggle now seems to be turning to native apps versus non-native apps on the mobile platform. It is similar to Flash's original battle ground: the argument that the Web technology stack is not suitable for building applications with a polished user-experience.

The other debate is one that aims right at the heart of the Web. Whether it is a connected web of documents, or a collection of walled-garden web applications.

The Flash plugin and the technology platform are dead, but the ideas and ambition of replacing the Web haven't disappeared.

Older Posts:

[ Weblog | Categories and feeds | 2011 | 2010 | 2009 | 2008 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 ]