New developments in desktop applications written with web technology

Adobe AIR is a skunkworks type tool that allows developers to write desktop apps using their favorite web technology (HTML/JavaScript, Flash, Flex). There are also lots of tools that go "the other way", that let desktop developers write desktop apps and publish them on the web. Is AIR good? Is it a good direction for software to take? Or is it a short lived distraction? I think its good. I hope that all client code can one day be deployed regardless of target environment. Furthermore, although they've been derided for many years as simply poor replacements for desktop apps, many web applications actually have a lot going for them in terms of architecture.

A related idea I had some time ago is to use the Eclipse Rich Client platform to give users a way to execute their favorite webapps in special windows. Using this hypothetical tool, Gmail would have it's own icon and look like a normal application to the operating system, rather than just another browser window. You wouldn't see or be bothered with all the browser crap you don't need with gmail. You'd have a recognizable icon in your taskbar (rather than a generic browser icon). And you won't worry about mixing tabs around, etc, or accidentally closing the application. In addition you could support a high degree of offline operation. Of course, this could (and should!) be applied to any webapp which is designed and intended to run for a long time on the desktop - think enterprise cms tools, etc.

[Update] Thanks to Eric Case for pointing out the wonderful Mozilla Lab's Prism Project. This project doesn't use the Eclipse RCP, but it's goals are essentially the same as mine. He also pointed out a Mac/Gmail specific desktop integration product called Mailplane. Indeed, Mailplane goes even further than I was thinking, supporting things like drag-n-drop for adding attachments (which is really nice!). Although it doesn't seem to support offline operation, which is kind of odd. That kind of environment could provide a Greasemonkey like facility allowing developers to insert something like the Dojo Offline Toolkit. (You could do something in native code too, but why bother?)

No comments: