Mozilla Prism and the future of application development

October 26, 2007 ⋅ 2 Comments »

Mozilla Prism reflects the web onto your desktop

The tube-o-sphere is aflutter today with the news of Mozilla Prism. Prism is a rebranding of WebRunner, which I mentioned a few weeks ago. It’s basically a platform that allows you to take web applications like GMail and give them their own separate window and icon on the desktop. Alex Faaborg has a great post explaining why this is a desirable from a user experience point of view:

Personal computing is currently in an awkward phase of transition. Half of the applications we interact with are client side desktop applications, and half are online Web applications. This means that half of the applications, regardless of what they are, are currently trapped inside of a Web browser, like some kind of Shakespearean play within a play. Because of this, Web applications are unable to take advantage of many of the user experience benefits afforded to client side applications.

By being trapped inside the browser, Web applications are unable to fully integrate with a user’s computing environment, and when accessing Web applications, users are constantly forced to think about what underlying technology the application is based on.

This brings up the old question of where application development is heading. In 20 years, will all our applications be web apps? Or will our desktop applications all be web-ified? Will your desktop go to the web, or will the web come to your desktop?

EyeOS is an example of your desktop going to the web. This is the vision of reducing Windows to a poorly-debugged device drivers, as Marc Andreesen famously said Netscape would do.

Prism is on the other side of the coin: it’s the web coming to your desktop. We’re still talking about standard, run-of-the-mill web applications, but Prism let you move them out of your main browser window. They still won’t support drag-and-drop like the native OS, or allow access to the local file system. But if this model takes hold, it might be possible to support these kinds of things in the future. Using microformats and a tool like Operator, you could imagine being able to click on an attachment in GMail and open it directly in your favourite word processor. And Firefox 3 already has offline application features, supposedly.

From my point of view, this is the way to go. It’s an incremental approach that doesn’t require us to throw out our old work habits. EyeOS, on the other hand, is more of a boil-the-ocean thing. And in the end, if people want to use their favourite web apps from within a web desktop, you’ll still need something like Prism, nested inside the web desktop like a russian doll.


  1. e - October 26, 2007:

    According to Alex Faaborg:

    One of the biggest problems facing the user experience of Prism is that we needed some way of magically scaling favicons to the size of desktop icons

    I would have thought a much larger problem would be policing the trusted/untrusted barrier. If the user follow a link in a webapp to a site outside of the app, how does the user know that they've left the trusted world of the webapp, and entered the untrusted world of the Nettertubes? If your answer is to say everything site above the "" domain is trusted, how do you deal with distributed web-apps (like what Drupal wants to be with its single sign-on).

    The idea is nice, and it seems similar to Adobe's AIR. We just need standards to provide rich interfaces to users. As much as I dislike drag-n-drop, I'd love to see a right click for webapps.

  2. Patrick - October 26, 2007:


    Yeah, the trusted/untrusted barrier is obviously a big issue. But actually Prism doesn't give the applications any extra privileges, AFAIK. It just gives the app it's own window and icon.

    Giving the applications extra privileges is a whole new can of worms, and obviously requires the application to be modified. So does working offline. I think that Prism is initially targetting "always online" web apps, but in the future, I could imagine support for accessing local storage, and working offine.