The Grim Future of Adobe Flash

I don’t understand why people are still so fond of Flash and why there is the illusion that it can become a leading technology in building rich web applications. Let me give you some advice, don’t bet on the Adobe Flash suite to become widely accepted UI practice.

There is the notion that Flash was a big catalyst in enriching the user experience of today’s web. That notion is wrong. Yes, Flash has given birth to the Web-video transformation that has helped spawn giants like Youtube. Where previous pre-2000 startups have failed miserably with Java applets and high bandwidth costs – porn is now flooding the browsers thanks to Flash. Also, Flash has completely driven out Java as a UI-enricher and will continue to do so. Only an idiot would choose to use Java for their web application frontend. With some notable exceptions like sites like who use Java to capture the screen display.

So why won’t Flash work as a UI solution?

1. Re-inventing the UI wheel

Full flash sites are swimming against the stream of the operating system and browser. Browsers provide proven styles and interactions for countless of widely accepted UI metaphors like scrollbars, input boxes and buttons. Flash is in essence re-inventing the wheel here by duplicating that entire set and wrapping that into their sandbox. Have you ever tried using a full Flash site? Try For example the first thing you’ll notice is that you can’t use your scrollwheel to scroll down the page. In my case I cannot stroke my Macbook’s touchpad with two fingers (you know I want to).

I do think that a lot of UI innovation is needed, especially since we’ve moved to information abundant web. But right now Flash is not providing anything new, they’re just providing another toolkit.

2. SEO

All content is compiled into static non-human or machine readable .swf files. You need a Flash runtime to make real good sense out of the information. Ichabod is a project that is supposed to provide a workaround for this problem. In the end of the day Flash was never intended to store content, it was yes, the HyperText Markup Language (HTML) files.

Unfortunately, loose integration like Javascript widgets like face the same challenges. However, they can be overcome in clever ways. In Disqus’ case that’s exposing all comments in an aggregation area that can be indexed by the Google Bots.

3. URL’s and REST

One of the first roadblocks for full Flash sites was the fact that the browser navigation controls didn’t work. When a user had clicked on the a link called ‘products’ and wanted to go back, the back button would take him to the previous site instead of the previous path. This was later fixed by putting in a clever little hack. Now every page is marked in the browser history by putting in a HTTP anchor ’#’ statement. As for example this Seesmic URL: Of course, the anchor tag is intended for ‘anchoring’ to a position in page, not requesting the actual resource.

The anchor tag trick also goes against the entire nature of the web: HyperText Transfer Protocol. As defined in REST, resources on the web can be manipulated by using GET, POST, PUT and DELETE statements on certain paths. Full flash sites don’t do any of it.

4. the Flash Community

Macromedia’s Flash was made by a single company, now owned by Adobe. How can a technology like this compete against others that are debated and shaped every day by thousands of developers?

There is some open standards activity, but nothing compared to the W3C. And closed standards like RTMP are a big miss! Also, nothing is open source. Perhaps the Flex IDE? Great..

5. Micro-fication of the Web

Both the web and the world are getting more fragmented. Loosely connected components and organic structures are rising in favour of monolithic solutions and large organizations. When I was writing a little video conferencing prototype – – I wrote the first version using Adobe Flex. Apart from being a very unproductive framework (e.g. Adobe’s implementation of CSS), it was a huge performance hog for my site. I thereafter switched to using Flash solely for video recording and playing which gave tremendous returns in quality. Flash was working together with HTML and Javascript and was using Comet (which uses Flash as a communication enabler) to get real-time Javascript pushes from the server. That is the future of the web, all these organic technologies working together like the web-services itself! CSS, HTML, Javascript, JSON, Comet, Flash all in the mix!

So what will be Flash’ future place?

Flash video is here to stay, although Adobe should really consider opening up their video protocol standards to catalyse innovation. Also, recording of audio and video is something that is solely done by Flash at this point.

Real-time communication is also a big one. The web is switching from it’s asynchronous roots to a more synchronous organism. This means that new push technologies are needed. Two big ones right now in the frontend side of things are Comet and Long-polling. Long polling is a mechanism in Javascript which holds open a socket on the server for a long time. Comet is a more extreme version where a small Flash application serves as a proxy between browser and server. The proxy application holds open a TCP socket so that Javascript can be pushed from the server.

Flash visualization is definitely here to stay, notable examples include Google’s Visualisation API and Google Analytics. But also, more game-like experiences like Digg’s spy tools or neat visualization tools (see illustration above). But don’t kid yourself, Javascript in combination with CSS can be pretty powerful for graphics as CPU power is increasing.

So if you look abstractly at the points just mentioned, it’s all about providing additional hardware access to the browsers. This is the big thing that is missing in Javascript browser support. Some frameworks are already attempting to solve this for Javascript on interesting platforms like the iPhone, but we need much more innovation in this area. Right now Flash is the number one technology when it comes to bringing the browser closer to the hardware and Adobe AIR is in a position to take this to the next level. But positioning Adobe AIR as yet another UI toolkit for applications is fundamentally wrong. All Adobe AIR should be is the extra bit that’s missing in Flash – truly connecting the web frontend to the underlying hardware. Perhaps Google Gears can fill that gap if Adobe fails?