I was reading this post regarding Adobe Chief Software Architect Kevin Lynch’s comments at Fortune’s iMeme conference on a “fourth generation” of applications that would return to the desktop and enable offline access but would be built with HTML, JavasScript, Flash, and other standard Web tools. Reflecting on that statement reminded me of something that I’ve thought for some time: namely that too much effort is being spent on new programming models like AIR, Silverlight, etc. and not enough on desktop integration for standard web apps.
What do I mean by desktop integration? Well, a number of little things, really:
- Desktop icons
- Separate processes, comand/control-tab switching, etc.
- Drag-and-drop
- File associations
- Etc.
The applications that really point the way in my opinion are a number of the WebKit-based applications that have been built to access web-based applications like GMail (Mailplane), Campfire (Pyro), Pandora (PandoraBoy), and others. Mailplane is arguably the best example. Though it doesn’t have an off-line mode, it does have extensive desktop integration—including drag-and-drop file attachments, iPhoto integration, Growl notifications, etc. I’m a big fan of PandoraBoy, as well. It’s use of global hot keys for voting, skipping, etc. makes it possible to use in the background in ways that the standard Pandora app cannot be.
As nice as all those fancy desktop integrations are, though, I think what I like most about these applications are that they are separate processes from my browser. It is a small thing, but it makes a big difference. It means that if my browser crashes, they don’t, and vice versa. It means that I can switch directly to one of them with command-tab and back to my browser the same way. They let me get back to browsing in my browser and using applications for more specific tasks.
Of course, AIR does aspire to all this desktop integration. I haven’t followed Silverlight closely enough to comment. It just seems like there should be something simpler, more open, and more standard, though—some browser feature (and associated application descriptor) that would let a standard web app be “desktopized.” For the simplest web apps, it could be something like the Web Clip feature due in Leopard but creating applications rather than widgets.
There is a lot to consider regarding all this RIA and desktop integration stuff. Coté’s Update from RIA-land: AIR & Silverlight, What is an RIA?, Better GUIs, the Killer App is worth checking out. It was his del.iciou.us link that directed me to the post that inspired this. For more WebKit-based apps like Mailplane, as well as other related projects, check out WebKit on Rails.
Glad you wrote this when you did - I had asked eLance if I could build a desktop app around their service, and they asked "what features do you want?". But really what I wanted was a desktop app, not more features. So I referred them to this article.
Some web apps can be improved with some ajax and/or a redesign. Others should just be marketing, signup and data centers and let RIAs provide the interface.
Posted by: Dr Nic | July 13, 2007 at 05:13 PM
Funny post, though I completely disagree...
The reason why "desktop integration" is not interesting is first and foremost since it breaks the first "rule" of RIA...
You can't have that same "desktop integration" on other people's computers...!
I think you missed the main point in RIA, to be portable, movable and flexible. With "Desktop Integration" this just don't compile...
.t
Posted by: Thomas Hansen | July 15, 2007 at 06:48 AM