I first encountered Flash back in 1998. As a new technology I was hugely impressed. It really gave me, as beginner web developer, the ability to design and build rich web applications, games, animations and visualisations. Of course, as it was 1998 I only used it to make utter crap like soundboards and animated splash pages. It was a long time before I saw it’s real potential.

Roll on a few years and Flash was “the future!”. Entire websites were being created using the latest versions giving users the opportunity to complain bitterly that they had to install a new version of the Flash player plugin to see the latest 3D extravaganza. That wasn’t good. Flash also suffered from a lack of support from search engines, so Flash websites were never placed well in Google unless they had an HTML equivalent. That meant the development cost for a website increased dramatically. Clients weren’t happy.

These days though we’ve learnt all those important lessons and Flash is now helping designers and developers give rich interaction to web users in the form of useful widgets within HTML sites. This is what it’s very good at. Those interactions might be games, charts, animations or movies, but the point is that Flash is no longer something to avoid. But, in my opinion, it’s come to the end of it’s useful life.

For Flash to die I think 4 things need to happen;

  1. The emergence of an alternative technology that’s as easy to develop for, as ubiquitous as the Flash player and at the same time more open.
  2. Growth in a demand for something that Flash can’t do.
  3. Movement away from old, proprietary technologies.
  4. Support from Adobe for open web standards.

The first point is obvious. Flash isn’t going to disappear unless there’s something there to replace it. There already is. JavaScript with HTML5′s canvas can do most of what Flash provides, and what it can’t do (hardware accelerated 3D for example) will be provided by webGL, previously known as Canvas3D, technology that’s currently in production.

The second point is covered by a lack of Flash support by Apple on their mobile platforms. People don’t want to use Flash on their iPhones and iPads; people want to use the sort of things Flash provides. Users don’t care about the technology running their game or visualisation. Only the developer cares what the thing is created with. As Apple are steadfastly refusing to support Flash that means developers are going to have to learn another technology in order to provide the service that their clients are paying for.

The next thing that needs to happen, and that thankfully is happening, is a movement away from old web technologies. I don’t think I’ve seen any mention of an ActiveX plugin for well over 3 years, no one wants VRML these days, and I can’t remember the last time I installed a browser plugin. This, along with the gradual drive towards using more up-to-date browsers inside corporate IT networks, means there isn’t a need to use something for historical reasons. Web software can be written to utilise fast JavaScript engines, HTML5 and CSS3. Having to support older browsers such as IE6 was one of Flash’s greatest strengths; Flash was always there when scripting might not have worked. That advantage over other, newer technology is disappearing.

Lastly, and arguably most importantly, there will need to be a push by Adobe to support the open standards of the web such as HTML5 and JavaScript. This is going to be the biggest hurdle. At the moment they’re still focused on Flash and everything they’ve spent the past decade building. I feel that they’ll carry on with their technology for another 3 three years at most though. If you think about it, Adobe have no reason to support the Flash player itself. Flash Player is the part of Flash that holds it back. It brings them very little revenue, it doesn’t work on millions of Apple devices, and it’s a constant source of embarrassment because of it’s farcical security model. Adobe’s priority is the Flash development environment. That’s the part of Flash that they make money from. I believe that Adobe will change Flash Builder so that rather than outputting a .swf file it’ll output .js.

From the point of view of a designer or developer the interface won’t change, the available tools won’t change, and the skills that have been learnt will still be useful. The change will be entirely behind-the-scenes. So don’t panic.

UPDATE: I wasn’t aware of this when I wrote this post, but it appears that Adobe are already doing this. This youtube video taken at a conference last year demonstrates pasting Illustrator vector graphics and Flash animations into Dreamweaver using a canvas tag rather than a Flash player object.