
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 ScreenToaster.com 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 Seesmic.com. 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 Disqus.com 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: http://seesmic.com/#/video/7q7cStbvjk/watch. 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 – Confabio.com – 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 Last.fm 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?
4 Comments
I don’t like the Flash either. But a few things I think:
* Web browsers compatibilities suck. As a user, I want to see more browsers, but as a developer, I hope everybody uses Firefox.
* Non-profit organization decision sometimes sucks. After many discussions, what did the W3C come up with the video tag in HTML5? Ogg format, which *normal* people never heard of. The approach of “getting everyone involved” is sometimes wrong. That’s the reason I use Mac over Linux.
* A possibility solution may be that a company develops proprietary stuff first, then releasing part the stuff as an open source. Then the company can keep on innovating without getting into “getting everyone involved” and making the product into a) something bloated or b) something nobody uses.
* Lastly, open sourcing is not the magic word. Open sourcing any Flash component should be done in a reachable manner. Microsoft opened an XML for Office (if I’m correct), but too complex enough to use.
@takaaki
You bring up some good points.
Regarding browser compatibility: Yep, Flash offered a nice solution there, but by now that’s become less relevant with the advent of JS abstracted layers (libs like jQuery) and quite amazingly: better browsers coming from Microsoft :] Also, Flash created its own world of ‘Flash compatibility issues’, do we use Shockwave, AS2, AS3, Flex?.
I definitely agree that Non-profit decision making can be very messy and especially when it comes to producing good user experiences things tend to break down. So I think it’s key to find the right synergy between the two, but in the case of Adobe it’s ‘too little too late’ (they have started some OSS initiatives a la Sun Microsystems).
I agree that ‘Open Source’ should not be a magic word. You can open source anything, but if no one understands how to use it or if there is no activity / community behind it, it’s open sourcing doesn’t have any value. But in the case of Javascript we’re seeing clear signs of it taking of hugely. Best practice nowadays (even more so than a year ago) is to build a large part of your web app in JS (look at Facebook).
@ptegelaar
Regarding Flash games: They will most likely be here to stay for a while. Most people that want to build something highly interactive still need people that have those interactive skills, and those will be Flash developers. Just like many companies still use Enterprise Java because there is a huge number of trained people out there.
In the case of Flash games it might be better to ask the question: Is the browser a growing platform for games? Although the iPhone is on the rise, I definitely think so, if you factor in social network games like Farmville. For full-on 3d games however, I haven’t seen many commercial examples yet, those games still hold on to the ‘OpenGL’ and ‘Direct-X’ toolkits. So perhaps ‘WebGL’ is something to look out for?
But I really think I’m out of my depth in this area, you might have a better pulse on what’s happening here.
There is no comment by @ptegelaar . You didn’t seem to publish. Still in a state of “Awaiting Moderation”?
No he replied on Facebook, but backtype doesn’t synchronize that yet
One Trackback
[...] little more than a year ago, I wrote about the grim future of Adobe Flash. I think by now, there are even more signs that Flash is dying in it’s current form. Flash got a [...]