Bridging Desktop And Web Applications – A Look At Mozilla Prism

New platforms like Adobe Air and Mozilla Prism are evolving that combine the benefits of Internet flow with the flexibility and power of desktop applications. They are part browser, part desktop app and are extremely efficient for certain types of applications.

Flash, Silverlight and Ajax get most web applications over the hump in terms of usability and are the technologies behind the fast transition of desktop applications to the web. But it’s not clear that they’ll ever kill off all desktop applications entirely. The bridge between them may very well be Air and/or Prism.

Matthew Gertner
, who was a co-founder and CTO of startup AllPeers before it shut down earlier this year, is now working with Mozilla on their Prism project. I asked him to write a guest post discussing Prism and how it fits into the ecosystem v. Air as well as a number of emerging technologies for using web applications offline (Firefox 3, Google Gears).

Read Matthew’s blog, Just Browsing, here.

Thanks to innovations like Ajax and Flash video, web apps are quickly gaining ground on their desktop counterparts. With a few notable exceptions like Firefox and Skype, the big software hits of recent years have been websites such as Flickr, YouTube and Facebook. And yet web-based software cannot yet equal the high-quality user experience of the best native apps. This is the reason why Apple was forced to reverse its original decision to make Safari the official SDK for the iPhone. It also explains why online productivity suites like Google Docs are still struggling to compete with stalwarts like Microsoft Office. Web apps simply don’t provide the responsiveness, performance, whizzy graphics and access to local data that users crave, and they only work when you’re connected to the internet.

Single-site browsers (SSBs) aim to bring the best of the desktop to web applications. Rather than running programs in normal web browsers like Firefox or Safari, wedged in a tab between New York Times articles and TechCrunch posts, each app is given its own dedicated browser, which is customized to include many of the desktop features that users know and love. Some of the advantages are obvious. Apps like Gmail and Facebook get an icon in the dock (on Mac) or the taskbar (on Windows) for easy access, and in the case of Gmail the icon can be “badged” with the number of new emails, a popular feature of traditional mail clients. Superfluous elements like the back/forward buttons, generic browser menus and the URL bar can be hidden away, reducing user interface clutter. Other benefits are more subtle. Since each app is running in its own operating system process, for example, a crash in one program won’t bring down your whole browser.

Mozilla Prism is one of the oldest examples of a site-specific browser. It grew out of the WebRunner prototype created by Mozilla developer Benjamin Smedberg, which he showed off at the XTech conference in 2006 to demonstrate the capabilities of the Mozilla platform. Another Mozillian, Mark Finkle, recognized its potential and continued to extend and improve the prototype. It was rebranded as Prism and launched as an official Mozilla Labs project in October 2007. Rather than creating a new platform for standalone web applications, Prism aims to leverage existing web apps while integrating them more smoothly into the overall desktop experience.

With the release of Prism 0.9 two weeks ago, the project now comes with a Firefox extension that makes creating a single-site browser for a website a one-click process that can be performed directly inside Firefox 3. Surf to Gmail, for instance, choose “Convert to Application” in the Firefox menu, and a shortcut with the Gmail icon appears on your desktop. Clicking the icon launches Gmail in its own window. Extensive customization options are available to add things like dock badges, system tray icons and popup notifications. Web developers can add special hooks to their code so that these bells and whistles are automatically included whenever someone spins the app off onto their desktop. Prism is still very much a work-in-progress, but it has already met with some early success; recent Yahoo acquisition Zimbra, for example, is using it to deliver a desktop version of their popular web-based mail client.

Adobe announced the first alpha version of Apollo in March 2007. A beta version was released in June, rebranded as Adobe Integrated Runtime (AIR). AIR is similar to Prism in many ways, although it is based on the open source WebKit rendering engine (also used by Apple’s Safari browser on the Mac and iPhone). The other big difference when compared to Prism is that AIR, in addition to web standards like HTML, CSS and JavaScript, supports Flash and another proprietary Adobe language called Flex. A glance at their application showcase reveals a heavy emphasis on using Flash and Flex to give applications a slick native look and feel. Early adopters include big names like eBay and AOL.

Another noteworthy site-specific browser is Fluid. It has an impressive list of features considering that it is the work of a single developer, Todd Ditchendorf. The main restriction is that it works only on Mac OS X 10.5 Leopard. Perhaps the most noteworthy feature is “built-in support for Greasemonkey-compatible userscripting.” For those not familiar with Greasemonkey, this means that a web app can be modified with a simple JavaScript file that runs on the client whenever the app is loaded. There is already a huge number of scripts available to do things like send SMSes from Gmail, download videos from YouTube and strip ads from websites. This type of userscripting is particularly useful in the case of a site-specific browser since changes to the application user interface may make it work more effectively on the desktop. For example, certain features might be moved from hyperlinks inside the application to the window’s menu bar. In the long term, web developers will hopefully make modified SSB-friendly versions of their apps available, but in the meantime userscripting can be used to pimp them out directly on the client.

A final contender is Google Gears, which was originally positioned as a way to take web apps offline so that they can be used without a live internet connection. Currently the only Google application to support Gears is Google Reader; users who install the plugin can sync their news feeds to their local disk and read them offline. It has recently become clear that Google has much bigger plans for Gears; a “Desktop Shortcut API,” for instance, lets Gears users add an icon to their desktop to launch an app directly. Gears developer Dion Almaer provides a laundry list of future APIs, including everything from notifications and cryptography to image manipulation.

As such, Gears represents a strong move on the part of Google into the browsing space, almost certainly to include site-specific browsing. Despite persistent rumors, it is now apparent that Google does not intend to create its own “GBrowser”. Instead, it is using Gears as a vehicle to add new features to existing web browsers (it currently works in Firefox, Internet Explorer and Safari), for use both by Google and by third-party apps. Google obviously realizes that its applications won’t be able to compete with the likes of Microsoft Office without significantly beefing up the capabilities of the web browser. At the same time, it would be too stiff a challenge to achieve broad market penetration with a completely new browser brand. Gears is its elegant solution to this problem.

Offline functionality is key piece of the site-specific browser puzzle. Internet connectivity may one day be ubiquitous, but in the meantime web apps need to function offline if they are to compete with their desktop brethren. HTML 5 includes a specification for offline web apps that is already supported by Safari 3.1 and Firefox 3. Gears is in many ways a direct competitor, although one of the HTML 5 editors, Ian Hickson, works for Google, and it is quite plausible that Gears will be adapted to support the specification in the future. Offline functionality is not inherently linked to site-specific browsers, but together the two form a powerful combination.

It’s pretty early to call a winner in the site-specific browser space, especially since heavyweights like Apple and Microsoft are probably poised to enter the game as well. But Prism has one big advantage: a killer app in the form of Firefox. By integrating Prism into a future version of Firefox, Mozilla could quickly get its technology into the hands of its 150 million users. AIR, on the other hand, has the advantage of using Flash and Flex to add sizzle to web app user interfaces, at the price of requiring potentially significant adaption on the part of the web app developer. However the space shakes out, the era of running applications in a tab in a traditional web browser may soon be coming to an end.