Aug 222005

I love debating Flash and got a bit inspired to make some comments after reading the recent post at Just Another Rant and discussion at slashdot about the merits of Flash vs. AJAX.

It always seems to me that there is a lot of emotion involved whenever this subject comes up, and very little rationale.
There is for sure a very strong resistance towards Flash among developers in general, but what are the basis for their resent, or as they many times label it them self, hate?

Most of the top arguments is purely based on presumption, or is in fact criticism of the way people use Flash rather than issues with the technology itself.
Of course that’s quite inappropriate when discussing the merits of a technology. You don’t see people blaming HTML for the massive amounts of appalling HTML pages out there, so why should Flash be blamed for bad use of the technology?

Skimming through the comments in the discussion on slashdot here is some issues that was brought up:

AJAX doesn’t require the user to download a plug-in as long as they are using a modern browser.
That is of course true. But it does require javascript to be enabled, and from the statistics I been seing the amount of people with javascript disabled is probably higher than the amount of users without Flash installed.
For the user I doubt it matters much what reason there is that they cannot access your site.
If they really eager to enter the site and will forgive that it’s not instantly accessible it’s a matter of how easily they can get their browser set up to be able to enter.
The Flash player installation seems to me a lot more straightforward for the average user compared to having to follow instructions on how to enable javascript on you browser.

AJAX is not beholden to a single company who doesn’t release their player in an open source format.
Again this is true, but a bit pointless argument.
The swf file format is open source. It’s possible to develop swf files using only open source software, and isn’t that what really matters?
To have a plethora of players from different developers to choose from would not be good thing from what I can see.
That’s the beauty of Flash really, that because there is only one player it will be consistent, no matter what OS or browser people use.
So IMO it’s the best of both worlds…OS tools for development but only one and therefore consistent way to present the result with.

Flash movies must always run at a fixed size. The fluid nature of HTML is a huge bonus when it comes to creating RIAs–something that takes a long time to compensate for when developing Flash RIAs.
I find it very easy to create liquid layouts in Flash and you have a level of control you cannot get with HTML/CSS, so I would say the opposite but I guess it depends on what tools you are more used to.
And you don’t have to deal with browser inconsistencies which speed up development.

If a page is made entirely in flash then a search engine can’t glean text from it when it comes to crawl it if all your content is compiled into a swf.
Here of course we are talking about a real issue with flash.
Or IMO rather an issue with the search engines, because I would think it’s their job to make sure that they can search the web, not the websites responsibility to make sure it constrains itself to the current limitations of search engines.
I understand though that it’s technically challenging, and that several search engines is working on capability to index swf’s.
But it’s really not that hard to make contents accessible to search engines, since most serious flash sites uses XML or databases for their content.
A simple text version will do to give both search engines and for example people with screen readers access to the content.
And solutions like ripple makes it even less effort.

Text is unselectable (unless it has been set to ‘dynamic’ which it rarely is) so if people want to copy and paste something from your site then tough luck to them.
This argument comes up quite often.
On both static and dynamic text you can decide if you want text to be selectable or not. It’s up to the developer, but I must say that it maybe should default to selectable since there seems to be a lot of lazy or inconsiderate flash developers out there.

Bookmarking, deep linking and back/forward buttons do not work.
It can take a bit of effort to implement, and as a matter of fact I could not find any ready-made system that could handle full state management when making this site, and it did take me uite while to make a system that worked ok.
And there is still work to do since it will not work on all browsers. At least IE and Firefox on windows I managed to get to work, which covers the large majority of users.
I will put up the system here for download to help fellow Flash developers to solve this issue.
So it’s is possible to do, but yes, it’s not immediate or obvious to implement, so I have to admit that it can be a problem.

Ok…I won’t go on with more of the points that I feel need debunking now, because the list is too long.
I will admit though to what I see as actual issues that cannot be resolved at this time

Flash will not integrate with extra browser functions, like mouse gestures and dictionary or web search plugins for Firefox.
There is really no solutions, since it doesn’t make sense to implement them in Flash when you don’t know what plugins the user has and how they are configured.
And I don’t see those issues to be resolved in the forseeable future.
I consider it a small price to pay though for the flexibility and consistency that Flash offers.

Of course nothing is perfect.
But Flash is as close to perfect as you can expect to come IMO :)

It might not be appropiate to use in all instances, but it really comes down to three main factors:

  • If the technology have a feature set that is of advantage to the project.
  • The time and cost involved in development.
  • How accessible the end result will be.
  • Of the available technologies i think there is very little doubt that Flash is the most generous when it comes to features on offer.
    Probably that’s one of the main reasons why it’s so disliked by many as well. I sure also hate when some loud music starts up when I open a page, or some massive animations I have no interest in watching have to load before I can access a page.
    With the power comes responsibility…and unfortunately there is a lot of irresponsible developers, and not to forget, clients that want to abuse the technology.

    For a simple text page flash is time consuming and costly to use, that is certainly true.
    But as soon as more advanced interactivity is required it sure seems to me like AJAX is a lot more time consuming to reach a result that preforms as consistently as Flash across browsers.

    Like mentioned before Flash player penetration figures should be in a similar league as javascript enabled browsers.
    But with it’s consistent performance across different browsers I would say Flash is more accessible than an AJAX solution.
    If anyone have figures contradicting that I would only be happy to hear about them.

    Like I said it should be rationale that is the basis for what technology is considered most suitable for a project, not emotion.
    I love to hear rational arguments against the use of Flash. It encourages developers and Macromedia to resolve the issues.
    I might even turn into an AJAX developer one day….but somehow I just don’t see that coming.
    The more I look at the facts the more obvious it is that the future belongs to Flash.


    Switch to our mobile site