Flash-only vs. AJAX sites
Even though web developers like me have discouraged from building Flash-only sites for as long as I remember, they are popping up all over the place. For no reason! We are ready to make the leap to standards. And our weapon with be AJAX.
What kind of sites are built with only Flash?#
Let's start by having a look at a few big Flash sites. Because they exist, and keep popping up all over the place. Here's a couple of movie sites using it: Departed, Underworld Evolution, Matrix; Here's a couple of big brands: Coca-cola, Nike, Electrolux. These sites are more than just animated images, they have their own content and often need to get updated continuously.
What's the purpose of them?#
Before deciding on anything we need to examine what purpose these sites have. It's not OK to change the purpose of the site just because we dislike the technology behind it. I can't possibly know the reasons behind all of the campaigns going on today but I believe there's a core that most sites are after.
- Promote something new - Someone wants to to push some of their products/deals/ideas to the spotlight.
- Specific target audience - Companies are well aware that what kind of people they reach initially will define if the product is successful or not. Many want the hip people.
Updating flash files is hard#
Many years ago it was ok just to throw up static information on a site and have a good site. Don't get me wrong, content is still king, what has changed is that content alone isn't enough. We demand much more from a good website. Coca Cola can't just publish a press release telling us that there is a new taste out. It's the Web 2.0 age and we want to be able to send our own tasting stories in, we want to be able to see live counters of the number of bottles sold, and we want forums to talk amongst ourselves about our experiences. We want tags! You get the point.
How does this affect the choice of flash or not? We need dynamics, ways for both editors and users to add content to the site, and Flash files are hard to update! Just the fact that I need a special program to edit them speaks for itself.
Another fact: As you probably know, it's rare (in the real world) to have the same person both writing code and publishing content. The coders need to cater for that, and make sure it's easy for editors to add new content. Now. Even if you've bought licenses and are able to edit flash files, you can't expect editors to understand all about how flash works. So you need to build a content management system (CMS) of some kind. If you buy one, you still need to integrate it with your current code.
"But", I hear you say, "…you have that same problem with non-Flash sites!". Yes, but the difference is that CMS tools that publish HTML have existed a lot longer. This affects both the quality, usability and ease of integration with current systems. A HTML-based site will therefore be easier to update, making for both more and fresher content that reaches more people. If it's easy enough to update the site, you can even let users do it, Web 2.0 style.
Flash is not hip any longer#
Publishing a site with Flash today is hardly going to get mentioned at all. AJAX has completely taken over the scene and anyone even whispering AJAX gets to the front page of digg.
Aside from the technology buzz we have had some real changes rather recently: Javascript can now deliver what was once only available with Flash. It can fade, move, round corners, drag-drop, auto-save, validate, the list could go on forever… There's several effect libraries available that makes using all those effects easity. All the good ones are even free.
Flash-only vs. AJAX - The showdown#
I've made a small list of things that matters when you build a website today, and evaluated each one of them for both Flash-only and AJAX.
Flash | AJAX | |
---|---|---|
Accessibility | Poor. There's problems with everything from how a flash app gets its initial focus from the browser window, to unusual interaction controls, to lack of text resize. In summary, zero points. | Moderate. AJAX has problems with requiring js for accessing data, but smart developers have started thinking in terms of accessibility and fixed many of AJAX initial flaws. Nyman's ASK is one way. |
Search Engine Optimization (SEO) | Poor. Search engines don't read flash files (even though they probably could). Some people claim that you should duplicate all your content. I say that will be a mess to update. | Moderate. If you just use the javascript effects you are fine, if you fetch data with javascript you need to write a little script that reloads the content and gets it that way instead. It is possible, but not easy enough. Bonus: if you fix accessibility you often get this too. |
Ease of content change | Poor. You need an expensive program to edit the files. ? Only available on PCs running Windows. Few CMS:es available (any?) that makes it easy for editors to update content. | Strong. All the big CMS:es can be used together with an AJAX app, it's just a matter of changing the templates on the front. Systems like Ruby on Rails (while not being a CMS) have built in support for AJAX stuff, but including a framework in older systems is no big deal. |
Hipness | Poor. There used to be a big community of flash developers that got incredible respect in the webdev community with their flash-only sites. Many of these communities have been replaced by CSS Galleries of different kinds. | Strong. While Flash-only developers focused mainly on visuals the AJAX community have focused more on user experience, building applications that feels better to use. Together with the technology buzz behind it AJAX solutions have gotten (and still get) a great response from the start. The potential for marketing campaigns based on user experience in huge. |
Graphic effects | Strong. This wouldn't be a fair comparison if we didn't acknowledge that Flash is far ahead of AJAX when it comes to graphic effects. Most of this is based in the fact that you are working in an application instead of a website, and things like anti-aliasing, drop shadows, transitions, and filters have existed for long. | Moderate. Websites was long lacking pretty interfaces but in the recent years we've seen an explosion of graphic effects even in the standards world, probably starting with the famous CSS Zengarden. |
Integration with existing sites | Moderate. Few code libraries are written to work well together with flash, so often you have to do the integration yourself. In it's latest version Flash has gotten more integration points with the possibility to communicate with javascript, import HTML and so on. Better, but not perfect. | Strong. Most effect libraries are built to be as easy to include as possible. The usual way to make use of one is two lines long: link a javascript file and call the right function. The more advanced libraries that enable asynchronous loading require some more work, but unless you want advanced error handling it's no big deal. |
Next time a customer ask for a Flash-only site, tell them about AJAX and it's advantages.
Comments
By: Rasmus Kaj (#1)
There is no "view source" in flash.
Many major companies still thinks that the user being able to see how something was achieved is somehow a big problem ...
By: Don (#2)
Also, the "hipness" rating of poor is pretty subjective. A lot of the ideas about what is hip just comes from the community you associate with.
Lastly, your "Ease of content change" bit about Flash is definitely worst case. If you build a Flash site that needs dynamic content, you're going to build a CMS as you'd mentioned above, you're not going to make your customers use the Flash IDE(which runs on OSX as well as Windows).
I do agree with the majority of what you said though! There are certainly plenty of sites running around now or in the works that are full Flash just for Flash's sake, and could be implemented with better with AJAX.
By: wooptoo (#3)
By: Ryan Stewart (#4)
By: Greg (#5)
By: Robert Nyman (#6)
When it comes to content updating, to my knowledge, it is always done by importing XML into the Flash move nowadays (at least for professional web sites and/or web sites that pretty much don't need to be updated since they're short-lived campaign sites).
By: Emil Stenström (#7)
@Don: Interactivity is probably one of the major points on why people choose it. I somehow incorporated it into "Graphic effects" in the chart. Whether the other points outweigh the interactivity one is up to the client, I think it does.
The hipness is very subjective, but I'd love to see some popular flash galleries if you have them. Is there a flash movement going on that matches the Web 2.0/AJAX thing that's going on right now? In that case I've missed it.
About the use of a Flash CMS: yes you do need them, and as you say, using the Flash IDE is out of question. The rating of Poor comes from the fact that building a CMS is a lot of work, so what most people do is use an existing one. Problem is that there's very few CMS:es available for Flash...
Thanks for your comment!
@Ryan Stewart: How do you make flash as accessible as a standards based website? Text-zoom? Screen readers? Plugin demand? Skip links? Semantic markup (headers, lists...)? Most sites even require javascript to include the needed files (and to avoid the "click to activate" problem in IE). That's not accessibility to me.
By: Pär Axelsson (#8)
Second, I couldnt disagree more with this post except Accessibility. And yes I've seen sites that shoudnt rely on Flash (content is king).
Usability: Depends on the developer. Rezise etc.
SEO: Dont know about the future but massive promotion via TV/advertisment is enought. Thank god flash isnt SEO friendly.
Ease of content change: Make your CMS deliver XML.
Hipness: Its in the eye of the beholder.
Graphic effects: Flash is light years in front of Javascript. Vector etc.
Integration with existing sites: Spells XML and Javascript.
Updating flash files is hard: NO, for experince web agencys it the same patch/deploy routines as if you would develop sites with Javascript/HTML with backend capabilities.
I think one should compare Flash with a magazine or TV (now, how accessible are they?). The differens is that Flash is Web 2.0 for TV/Video Game/Magazine.
By: Would you like to know more? » Blog Archive » Flash vs. AJAX (#9)
By: Emil Stenström (#10)
@Pär: Usability: Of course it depends on the developer, a developer can always rewrite the system and make it usable, the question is if the default makes it easy or not. HTML makes things easy, flash has an entirely different focus.
SEO: I don't agree.
Hipness: You can't have missed the Web 2.0 boom, and flash is nowhere in it :)
Updating: See comment above, I'm not talking about deployment.
Nice to see someone of a different view commenting.
By: Anders M.J. (#11)
I dislike Flash for the same reasons you've mentioned and because of it's slowness.
Cheers, :)
By: Gary Bishop (#12)
By: Kyle Korleski (#13)
By: Emil Stenström (#14)
By: gleek (#15)
that doesn't necessarily mean that i like it (because i don't) but it's still an option.
also, i ran across this great article at thinkvitamin awhile back that had an example of a flash site that also had the content built into the page as DIVs that were hidden. this made the site easier to optimize for search engines and accessible.
http://www.thinkvitamin.com/features/css/real-world-css-zen-for-your-site
(see the section named "Actual Content Behind Flash or Descriptive Images")
By: Pär Axelsson (#16)
Nike, Coca-Cola and E-L are company sites that should have a solid backbone site using more or less static HTML. Yet use a campain as frontpage.
Departed, Underworld Evolution and Matrix are feature film sites which in my opinion is short lived sites and are dependent on hi-end graphics/animations and sound.
Let IMDB archive any info of value about the movies.
By: Mathias (#17)
I know several ActionScript developers who don't even have Flash (the IDE) installed because they don't need it.
As for content updates I agree with the above comments: if it is hard to update the content of the site it is probably built incorrectly to start with.
Images/text/xml/video/sound can all be pulled in dynamically, not to mention of course, other swf files.
Flash does have another benefit: if you have the plugin it pretty much looks the same regardless of platform/browser etc. If you think this is insignificant try explaining advanced cross-browser and cross-platform debugging to a paying client. ;)
This all makes me sound like I'm a Flash fanatic. I'm not. In my work we just have to use the technologies that are best for the purpose of solving that particular business problem. Sometimes it is Ajax. Sometimes it is Flash.
By: alan (#18)
for rich media, flash is king, there's no comparison.
and another thing, browser hacks are annoying. with flash- you have to deal with plugins but aside from a few linux nerds(and thats changed now), who doesn't have flash installed that is savy enough to buy or look up things on the net? and what it looks like on firefox/safari, it looks like on ie6.
i don't understand the reference to the nike site. i think it's a great site. you can't do a site like that in all ajax.
i wouldn't want yahoo or google to be all in flash. but i am glad yahoo does use flash in some areas (like yahoo movies, tv, etc.). and for brands like nike, mini cooper, etc. i rather see it in flash than complete web standards.
By: Emmanuel Okyere (#19)
By: Richard Leggett (#20)
By: Emile Swain (#21)
Your argument "Flash files are hard to update" because you need a special program is mildly amusing and hardly a reason as to why not to use it. As for it being hard to update, that really depends on how complicated it is to begin with. It can be as hard as coding in COBAL or editing a css file.
As for dynamic update of content, your argument is totally flawed. As a flash developer working with our technology team we haven't had any problems integrating flash into the CMS's of various clients. The flash just loads in a snipet of xml, or we consume a webservice or ultimately have information passed in through the object/embed tags. It isn't rocket science and certainly not a strong argument for using Ajax.
As for Flash not being hip, again very much in the eye of the beholder.
I love Flickr (ajax site) and wouldn't want it made in flash, at the same time i like www.nike.com and of course www.coca-cola.com
By: Shanx (#22)
AJAX, for all its present day de rigeur glory, isn't exactly a rosy thing to maintain either. For a simple 'behavior' I have to import an entire protocol.js, just because I don't know precisely where the functionality is coming from. The page size is big. And everything is useless if JS doesn't work. It's a lot more difficult to break the security glassbox of Flex. It's a cinch to do it with JS in the wrong hands.
By: Shahrier (#23)
By: Emil Stenström (#24)
@Shahrier: What's a RIA?
By: Calophi (#25)
By: Emil Stenström (#26)
By: Jonathan Nicol (#27)
I worked many years as a full time Flash developer, and as has been mentioned, we would have our CMS output XML files, from which Flash would extract most of the site's content. Also worth noting is Flash remoting - the ability to communicate directly with the server via PHP etc.
Most Flash developers these days separate out a lot of their actionscript into external classes - plain text files that can be edited in any text editor. So it's not strictly true that the Flash authoring tool is required to edit a Flash site.
I agree with your observation that full flash sites usually exist to support a product launch. They are commonly about marketing, and have a short life span. I have observed that of all the sites I visit with any regularity, not one of them is a Flash site. And I am a flash developer! One exception to the rule would be image intensive sites - I'm thinking specifically of portfolio sites for photographers and graphic designers, which are commonly built in Flash.
With the accessibility thing: most Flash developers couldn't care less. Seriously, they don't care.
With SEO, I agree Flash is woeful. Flash developers have to bend over backwards to try and expose their site content to search engines using all sorts of cunning tricks. If your content is stored in external XML files, you can parse the XML server-side and present it as HTML to search engines (that's what I do).
By: Pratik (#28)
By: Sumit (#29)
Also visit www.sukip.com
By: Demetrius McClain (#30)
By: Emil Stenström (#31)
By: Seb (#32)
By: matt (#33)
comment #4 by Ryan could sum up this article. It all depends on the developer responsible for the application.
If you break it down, the root goals to any web application should be accessibility to all users. That being said, it brings us back to our dilemma, do you have the right developer for the job at hand. After all we are merely discussing an application, in this case Flash. The application is only as strong as the developer behind it. The same can be said for any other programs or languages.
In conclusion they both have strengths and weaknesses when put to the same test. Bottom line, a flash-only and an AJAX only site wont fair too well on a standard cell phone browser.
By: Sasha (#34)
Accessibility: When was the last time you saw a blind guy editing a photo on Picnik?
SEO: There isn't really any content to search on a RIA.
Ease of content change: This isn't an issue because there is no content. And I'd argue that making changes to an application are easier with Flex (Flash is a bit iffy).
Also, like some have said, Flash is clearly the only effective way to put video, sound, and other rich media on your website. So I believe you can't compare Flash and Ajax, they are two completely different technologies that do two completely different things.
By: Emil Stenström (#35)
By: margot darby (#36)
By: Emil Stenström (#37)
By: margot darby (#38)
By: Therxone (#39)
By: Does HTML5 mean the end is in sight for Silverlight? | Colin Eberhardt's Adventures in WPF (#40)