'

Three different approaches to browser applications on the desktop

Last week WebRunner, a "site-specific" browser from Mozilla had a version .7 release and the news surfaced that Firefox 3 will work to fit in with the native operating system more from a visual standpoint Alex Faaborg went so far as to say that the goal is to "do a better job of visually integrating with Windows than IE, and a better job of visually integrating with OS X than Safari".

Last week WebRunner, a "site-specific" browser from Mozilla had a version .7 release and the news surfaced that Firefox 3 will work to fit in with the native operating system more from a visual standpoint Alex Faaborg went so far as to say that the goal is to "do a better job of visually integrating with Windows than IE, and a better job of visually integrating with OS X than Safari". Both are part of a trend, namely a move back to the desktop. Obviously Mozilla still believes very much in the web application model but the world has come around to see the desktop as a valuable way to deploy some applications. They want the browser to look and feel like any other native desktop application and with WebRunner they want the "freedom from the browser" to extend to web applications.

Mozilla's WebRunner

WebRunner

WebRunner, which I'm planning an in-depth review of later this week, is a fascinating product. It's essentially a native window for a specific web application. It doesn't do offline functionality or have desktop hooks, it's custom tailored for a specific web app. So you'd have a WebRunner for Twitter, Google Reader, etc. It speaks to the two things. The first is the benefit of being outside the browser from a branding and permanence standpoint. People don't have to browse to your application and they also can't browse away from it meaning you have a permanent place on the operating system. The second benefit comes from being able to customize the browser experience to more efficiently deal with a specific web application. When the browser container will only be hosting one app, you can worry less about general Ajax problems and address/optimize only the code you'll be dealing with. Down the road, it isn't out of the question to imagine a WebRunner with offline functionality using Google Gears. It's all based on FireFox after all.

Adobe AIR

Adobe AIR

Adobe AIR is in generally the same area as WebRunner but with a very different approach (as a result, I don't consider them competitors). AIR gives you APIs that let you code to and perform native OS tasks like talking to the file system, doing system notifications and handling file type registrations. The core technologies are the same (Ajax/Flash) as any other browser application but the deployment mechanism and functionality are more than other options. It's relatively easy to take your browser application to the desktop using AIR if all you want is the native window and the ability to install it. It has the same permanence/branding benefits that WebRunner has.

Microsoft

WPF Messenger

Microsoft's strategy is a unique one. The idea of browser applications on the desktop doesn't really exist right now. I've heard whispers of a Silverlight desktop runtime that would provide that functionality but for right now, Windows Presentation Foundation is a great way to build desktop applications for Windows. One thing that stands out about the other two is the cross platform nature of web applications being ported to the desktop. Silverlight has the biggest head start, and because it uses XAML, Microsoft's declarative graphics language, you can share parts of assets easily between your Silverlight app and your WPF application. You just can't port the code directly.

Web applications are going to continue to be very, very important in the future of software. What I think interesting is the different ways to take those web applications and make them feel more like native desktop applications. Richness is one aspect of it, but it's also about capturing the full desktop experience. It has been very to cool to watch the blending of the good parts of web and desktop. I don't think any of these examples are particularly superior to the other. In the end it's about context and what you want for your application. In truth I think some of these can be applied in parallel to provide your users the experience they want. The web is about freedom and that should extend to the web applications for which we create desktop experiences.