On this page:
- Three scenarios for using web-based technologies
- When is what appropriate?
- What about HTML 5’s potential?
- What about applications deployed to intranets?
- Aside about AJAX vs Flash
- Aside about Flash and search engines
- Aside about Flash, Silverlight, and Accessibility
- Other web application technologies
Three scenarios for using web-based technologies
Generalizing, I see 3 scenarios where web-based technologies (HTML, CSS, JavaScript) are used:
- Web sites
- What most web pages are part of!
- Web applications
- Also referred to as rich Internet applications, these are things like web-based email, web-based administrator dashboards, etc
- Client-server type applications
- These are applications that use shared resources (e.g. databases) amongst many people, typically in a controlled environment such as a corporate office. These may be complicated distributed systems.
When is what appropriate?
Web Sites?
Web technologies are obviously built for this scenario, so
- HTML/HTML 5 is likely most important (search engine visibility is important for most sites).
- AJAX is likely to enhance functionality but probably should be used with care (for accessibility and not impacting search engine visibility, browser navigation, bookmarking, etc.).
(In terms of Flash’s suitability, see note below about Flash and search engines)
Web applications?
In this scenario, a richer user experience may be needed but search engine visibility may not be as important (likely such apps require logging in). So,
- AJAX may be appropriate for simple sites/functionality.
- Flash (or Microsoft’s rival, SilverLight??) may be more appropriate for richer apps where the challenge of creating richer user experiences with the current versions of HTML/CSS/JavaScript proves difficult.
(At the @media07 conference, it was good to hear Jeremy Keith, a JavaScript guy — I think he coined the term DOM Scripting — also mention that as cool as JavaScript and AJAX can be, sometimes it is not appropriate; Flash is mature enough to be used for rich applications in many scenarios.)
There is a chance that HTML 5 and AJAX could pose a threat to Flash in the long term, as noted below in the aside about AJAX vs. Flash.
Applications?
Sometimes web technologies such as HTML/CSS/JavaScript are being used for technical/administrative reasons (e.g. simpler deployment and upgrade story) rather than user productivity and usability reasons (these technologies were never built for rich user interaction).
In the past, such applications were then limited in functionality and user interaction capabilities. These days, such applications are getting richer with things like AJAX but may sacrifice accessibility or introduce additional problems (such as bookmarking challenges, history and navigation problems, excessive page sizes to download, etc). Building these, or standard desktop conventions using web technologies can be time consuming, too.
At the same time, it often feels that either well-established desktop GUI experiences/patterns are being re-discovered/re-invented, or worse, getting ignored!
So,
- Something as widely installed and reasonably established as Flash may be a suitable alternative if deployment concerns are still there.
- But desktop applications feel most appropriate.
Note, even when the application is a complex beast, using shared or distributed backend systems, things like web services and other HTTP(S)-based communication is widely supported, not just limited to browsers. Desktop GUIs can make use of these to provide a rich user interface for specific applications (one simple popular example: Outlook 2003 and later which can use the normal network when connected, or HTTPS when away from the office, but you can still use the rich desktop application).
What about HTML 5’s potential?
So that might be the over-simplified scenario now. What about the future? In an earlier post about the promise of HTML 5, I noted the potential for better productivity and accessibility.
What will HTML 5’s impact be to the above? Here are some thoughts (rather than predictions!)
- HTML 5 will be excellent for both web sites and web applications (better accessibility etc that I mentioned in that previous post)
- HTML 5, depending on final feature set and browser adoption, could challenge a rising popularity of Flash for web applications. Alternatively, HTML 5 could take a while to come about so the investment in Flash-like technology may mean HTML 5 is slower to adopt for web applications
- For desktop-apps-masquerading-as-web-apps applications, HTML 5 is likely still not suitable. It is the wrong purpose, which is fine. HTML 5, as good as it promises to be can’t be used for everything!
What about applications deployed to intranets?
The whole idea of intranets seems to (for now) preclude installing custom desktop apps on each corporate desktop. Web applications seem appropriate. Newer technologies such as Flash (even SilverLight?) seem appropriate here. But some things may work well as normal HTML applications (with rich features) for book marking, internal indexing, etc.)
I am guessing in the future, the delivery and update of desktop applications will be easier than now (I like how most (all?) Linux distributions have package managers of some sort that can help update any software, not just the ones that come from the operating system vendor, such as Microsoft, and, I think, Apple).
Saying that, some desktop apps have their own way of checking for updates on PCs (and other platforms). But this means inconsistency and headaches for IT admins. For now, corporate firewalls and other technicalities may still pose a barrier for corporate-wide intranet deployment in many cases.
Aside about AJAX vs Flash
User experience expert, Jesse James Garrett, coined the term AJAX. However, he rightly notes it is not a silver bullet:
Ajax can interfere with a site, particularly as it puts the burden on the designer to clearly communicate to the user, to help them have appropriate expectations of how the application will behave. Ajax gets in the way of usability when it introduces behaviours people don’t expect, and the overall design doesn’t communicate with them effectively so that they do know what to expect.
A lot of people are interested in learning how it works, but they are choosing features where it is easiest to implement, rather than where it would be most useful or effective.
— Jesse James Garrett, Jesse James Garrett on Ajax, Amazon and Web 2.0, E-Consultancy.com, August 2007
One really interesting point Garrett makes however, in favour of AJAX, is that it can be introduced incrementally, rather than one big bang approach:
One of the big advantages of Ajax is it is something people can implement in an incremental fashion – unlike migrating to Flash. It is something you can implement in little bits and pieces, which is great, but you have to make smart choices about which bits and pieces you give priority to.
— Jesse James Garrett, Jesse James Garrett on Ajax, Amazon and Web 2.0, E-Consultancy.com, August 2007
Assuming HTML 5 includes even better support for AJAX-related capabilities (signs suggest so) this is one reason why I suggested above that HTML 5 (if it ever gets widely supported) could threaten use of Flash for web applications) in the long term.
Aside about Flash and search engines
A conversation between a couple of guys from the Google Search Quality Team and some webmasters included this useful point (which most people have often said, but good to hear it from a search engine’s mouth!):
- Any special guidance for DHTML/AJAX/Flash documents?
It’s important to make sure that content and navigation can be rendered/negotiated using only HTML. So long as the content and navigation are the same for search crawlers and end users, you’re more than welcome to use advanced technologies such as Flash and/or Javascript to improve the user experience using a richer presentation. In “Best uses of Flash,” we wrote in more detail about this, and are working on a post about AJAX technology.
— Greg Grothaus and Shashi Thakur, Search Quality Team, Server location, cross-linking, and Web 2.0 technology thoughts, Google Webmaster Central Blog, August 2, 2007
Aside about Flash, Silverlight, and Accessibility
People are slowly acknowledging the potential of flash for web applications. Mike Davies, a developer at Yahoo, provides a decent commentary of the growing momentum behind accessible Flash.
When consulting for a major high street retailer, Macromedia representatives came to demonstrate Adobe’s Flex technology. We discussed general issues including Flash accessibility, and the representatives commented how accessibility improvements were always being made, and had already been substantially improved over the last few years.
That being said, Davies also provides links to articles describing where accessibility is still lacking or problematic in Flash.
Silverlight appears to be Microsoft’s response to Flash. It too has the potential to offer rich application and user experience across the web, based on its XAML markup. According to Keith Smith, product manager of the user experience platform and tools team at Microsoft, Silverlight has also got some built in accessibility support, and more is being built.
As with Flash, however, Silverlight is likely to be problematic from a search engine indexing perspective, for now, so above considerations about Flash probably generally apply to Silverlight.
Other web application technologies
This post has mostly referred to Flash (or Silverlight) as web application technologies, and occasionally HTML5. Of course there are many other potentials. I think the above points still hold if you consider the following potential web application technologies (some of which are even suitable for desktop applications)
- Adobe’s Flash, Flex and AIR platforms
- Microsoft’s Silverlight
- Mozilla’s XUL
I am sure I have forgotten to mention others (let me know!)
Did HTML 5 materialise? I have always preferred working with HTML.
It is still being worked on and is in draft recommendation stage as I write this comment:
http://www.whatwg.org/specs/web-apps/current-work/
Not why they compare AJAX with Flash, fodder that are not due to compare since both have great differences. Each of them has advantages marked according to the project to realise for that reason I insist on saying that they would not be due to compare.