There is some debate brewing over whether AJAX will replace desktop applications. The two camps are starting to form. My belief and the argument that I am making in this article is: AJAX is not likely to replace desktop applications; but it will give birth to a new breed of software applications. Most will be productivity tools, collaboration and business applications. Some will no longer be seen on the desktop at all - many applications are not likely to leave the power and comfort of the desktop anytime soon. I think this next evolutionary phase in software will be less of an all-out exodus from the desktop than a moderate realignment, with applications thriving in the environments that best suit their purpose.
AJAX-faced web applications can follow you, like all web apps. Most of us have at least one friend who traveled around the world and kept in touch via email with hotmail or yahoo e-mail accounts. In fact, these browser-based email interfaces helped drive the adoption of email for personal use. These days, using a more traditional html interface for business class e-mail use isn't really practical anymore. Outlook Web Access (OWA) (although it had a great AJAX interface) didn't really catch on for some reason, but Gmail and Zimbra are seeing uptake and Zimbra is aimed at replacing Outlook and Exchange altogether; and delivering all the UI through the browser. To Microsoft's credit, its Live.com initiative is giving birth to a new AAJAX-ified email client that will likely be much nicer to use than Hotmail if it's anything like OWA. If you look at the CRM world it seems that web apps have already taken over, Salesforce.com is an obvious example and MS CRM has been delivered through a web browser for years.
So where will we see AJAX-based web applications take over from the desktop?
AJAX-based web apps are the logical choice in applications where up to date and shared information is absolutely critical such as in logistics, accounting and CRM systems. Routing Excel workbooks around the corporate file system as a method of distributing pricing and customer lists will be relegated to history books. Timely business data is a key component of modern businesses and web applications are data centric in their very nature. AJAX just puts a UI on applications that does not cause tears of boredom as users wait for pages to refresh between mouse clicks.
Applications that rely on web services and disparate data sources such as mapping services that combine multiple enormous data sources to remain relevant and useful. Also, many Service Oriented Architecture (SOA) based enterprise systems are perfect candidates for the distribution and usability benefits of AJAX apps.
Rich clients distributed through the browser will help reduce per seat licensing costs, such as in enterprise reporting apps. Recently the CTO from a major SOA software vendor asked me how per seat licensing could be enforced at the client in AJAX based UIs and the short answer is it can't be in the same way thick clients can. This reality will lead to a more gradual migration to AJAX by some software vendors while they develop new approaches to software licensing but will not slow the demand by consumers for rich-client web-delivery of their favorite software.
Obviously all the benefits of software on demand, software as a service and application service providers still apply, because the application is still delivered over the web and in a web browser. It would be silly to waste time going over the benefits of browser based apps; however, it's important to note that AJAX makes browser based apps a lot nicer to use. These usability benefits can be measured in terms of time savings when interacting with faster user interfaces. Alexei White has explored this topic in some detail in his article Measuring the Benefits of Ajax. For these reasons, AJAX will be a big winner in online apps where users are doing repetitive tasks in large volumes - think call centers and financial institutions. Scenarios where you have large numbers of homogeneous tasks, apps and information workers are ripe for the use of AJAX web apps.
Applications that are constantly changing and evolving over time will benefit too. Users have a zero effort migration path to new apps. Also, AJAX development is incremental for applications that are already based on HTML interfaces or have an SOA architecture. This is very attractive for development teams looking to increase usability over time.
Another place where AJAX will win is in businesses where users have large geographic distributions and supporting much more than a web browser and Internet connection is very costly.
Where will the desktop will remain king?
It's important to look at where the desktop will not be replaced by rich web apps because even the biggest AJAX evangelists will tell you there is only so far we can take this technology. Let's look at some of the things AJAX can't do very well:
- Browser morphing: Adding buttons, toolbars, bookmarks, icons; changing browser behavior.
- Local file access: Reading and writing files on the user's hard drive.
- Sound Playing: music and sound effects.
- Rich graphics: Providing rich graphics, changing dynamically. (This is gradually changing with the introduction of SVG in some browsers, but it's no match for desktop graphics.)
- Keyboard shortcuts: Providing a full range of keyboard shortcuts while avoiding conflicts with the browser's own keyboard shortcuts.
- Hardware access: Input from devices such as microphones, webcams, and gamepads; output to devices like printers and portable gadgets.
- Extended communication: Communication from the client machine to locations beyond just the base server, and in protocols other than plain old HTTP.
- Operating system interaction: Catching events such as shutdown initiation; changing preferences; popping up alerts; reading hardware information. (1)