Perish the thought that I should say something controversial but, and there’s no getting away from this, I think that desktop applications (aka rich clients) still have a place in the brave new world of software services. Over the years, there have been many arguments and disagreements, but the most frequent (work based) one has been over the need to run absolutely everything on a web server and perform all day to day computing tasks in a browser. Granted, I am presenting the extreme case, but the argument always seems to revolve around the fact that if e-mail etc can be done over the web, then so can everything else. Now I am as big a believer in the Web 2.0 hype as anybody, but I really don’t see a world where the only application running on my local machine is a copy of Firefox, with all my programs and data hosted elsewhere.
There are many reasons why I don’t subscribe to the view that everything can be performed in a browser, but the one that bothers me the most is that the main argument in favour revolves around ease of software management. This argument is almost always put forward by people with a systems administration / architectural purity focus and never by the people that actually do the work. I don’t agree that ease of support means that users (in our case, scientists) should have to make do with a sub-standard experience. Yes, AJAX has made a difference and yes, Flash / Java / Silverlight make for a reasonable user experience on the web, but the fact remains that desktop applications currently provide the most responsive interactive experience. I’m not arguing against web applications at all, I just think that at the moment there is a place for both. Consider, for example, Google Earth:
Google Earth is a truly great technology. Granted, there are other “World Browsers” around (Nasa WorldWind was the first time I saw this, and obviously there’s the Microsoft alternative), but Google brought the tool to everybodies attention. Google are perhaps the poster child for the Web 2.0, do everything on a browser philosophy, but the fact remains that the most responsive, visually appealing way to access the geographical data provided is the desktop Google Earth client. This is a fantastic piece of software that makes use of PC’s 3D card, the CPU and disk space to provide the richest possible experience. It is my first point of call when I want to fly over landmarks in 3D. I wouldn’t use it on my phone, though (there’s another downloadable client for that), I wouldn’t use it to plan a quick route from A to B (the web site does a better job of that). Clearly, it’s the data that’s key to Google Earth – the means of viewing that data depends on a) where I am and b) what I want to do with it. I like the fact that I am not forced to only use the web interface when I want something else. I also like the fact that if I want to get a quick map printed out I’m not forced to install and use the client. “Horses for Courses” is the phrase that springs to mind.
This discussion reared its head again recently because I was demoing a piece of (desktop) data analysis software I have been writing as a hobby over the last few years (It’s notionally open source and someday I might even release it). This demo was particularly enjoyable, though, because the objections to desktop applications began before I’d even started the software! I don’t want to come over as some sort of luddite by clinging to obsolete technologies, but the reality at the moment is that having a rich client makes sense to a lot of people and we are not quite ready to fully make the move back to the client-server era ;)