Rich Internet Desktop Applications - Its All About the Caching
I did an interview with Ryan Stewart on San Dimas last week, and he wrote up a nice post on project San Dimas that was published this morning. I want to elaborate on one of the points that I made during the interview and that answers the question: what are "rich internet desktop applications" good for.
I brought up the example of how the eBay category tree, when expressed as XML, is more than 20 MB large. Each eBay site has more than 50,000 categories, and that number grows every month. Lets say you want to build an application that lets users progressively filter (a la iTunes) the list of eBay categories. It would be pretty taxing on the back end to implement such a feature in AJAX. Now with a desktop application, you could download the category structure and cache it locally (something web apps can't do because of the security sandbox), and then in your application it is a fast local data lookup to filter the list instead of expensive remote processing.
This example illustrates that desktop applications are good not just for offline operation. In this example having more capabilities, such as the ability to write data to the hard drive, can allow for better experiences, and better applications. Having the ability to work offline is important -- in fact I'm writing this post right now, offline, in Windows Live Writer, a rich internet desktop application (RIDA?). But I'm more excited about the sorts of new experiences, especially the ones that nobody has thought of, that will be enabled by the new capabilities that platforms like Apollo provide.
You have a point but....
With your hypotherical application that uses the eBay categories, even if you restricted it to one site many users would be put-off by the large 20M+ download, also the category list changes from time to time so the app would need to re-load the list... Then to efficently access the list the app would need to index the data, replicating some database functions, or better still use a database, but installing a database on a users's PC? If I were developing an app for me then probably I'd rather it be a desktop app, but I believe most users would be happier just to access a web app. In general I think and increasing number of users are becoming more reluctant to download applications, being worried about malware.
If you want to support say 20 eBay sites the problem is multiplied by 20.
A web app with or without AXAX transfers all these problems to the solution provider's server rather than the user's PC.
By the way, when I 'preview' this comment IE7 reports it as Suspicious, a possible phishing site!
Posted by: Mike Bushell | December 17, 2006 at 10:48 AM
I hadn't read this until just now but I made some very similar comments on local storage on my site after reading Ryan's post.
I also agree one of the most exciting prospect of Apollo is the ideas that people have not thought of yet.
The eBay app, from what I've seen, shows off some real potential for Apollo and think once apps like that get into the public domain it'll clear up alot of the FUD relating to Apollo.
Posted by: DannyT | December 17, 2006 at 11:03 AM