April 7, 2008

Bridging Desktop And Web Applications, Part 2

Michael Arrington

38 comments »

The following, written by guest writer Matthew Gertner, is a follow up to his post Bridging Desktop And Web Applications - A Look At Mozilla Prism on March 22, 2008.

Matthew was a co-founder and CTO of startup AllPeers before it shut down earlier this year. He’s now working with Mozilla on their Prism project, which was the subject of his first post. His blog can be found here.


Many people were slightly baffled by my post last week about single-site browsers. On the surface, an SSB is nothing more than a normal browser with the URL bar, back/forward buttons, tabs and a whole slew of other useful stuff stripped out. Are we supposed to get excited by what looks to be a big step backwards?

To delve a bit deeper into what is behind the recent surge of interest, I took a closer look at three leading contenders: Bubbles, Fluid and Prism. I also contrast these products (which are very similar in many respects) with Adobe AIR, which has a different and more ambitious take on web/desktop convergence.

Bubbles has a strong claim to being the first true SSB. Developed by 3D3R Software, the first version was released in late 2005, long before the term “single-site browser” had been coined. Their CEO, Ohad Eder-Pressman, explained to me that he got the idea for Bubbles a few years ago when he switched from Outlook to Gmail. Suddenly he needed to activate his browser window, find the correct tab and select it every time he wanted to view his email. What used to be a one-click process now required three or four clicks. Moreover, he had to go through this procedure whenever he wanted to check if he had new mail since there was no visual indicator on his desktop. Sensing that better desktop integration might benefit a whole range of web apps, he put a couple of his programmers on the job.

After downloading the tiny Bubbles installer (just 250Kb), I was presented with the Bubbles Settings window, which includes a menu of pre-configured web apps like Gmail and Flickr.

Pressing Go next to Gmail in the list brings up a “bubble” (a standalone window) containing the application’s login page. An icon is displayed in the system tray for notifications and quick access to the application. I logged in using my standard Gmail account, and a popup notification appeared to let me know that I have three unread messages in my inbox. The unread message count is always visible in the app’s taskbar button and tray icon tooltip. When a new mail arrives, the popup notification is displayed again with the updated message count. Other capabilities include drag-and-drop support (used by the Flickr bubble to upload new files) and site-specific system tray menus.

Naturally Bubbles needs some special configuration to add these capabilities to an application. Curious to know how this worked, I decided to create my very own bubblified web app. The first step is very simple: just enter the address of the site in the URL box at the top of the Bubbles Settings window. I keyed in “www.techcrunch.com” and sure enough TechCrunch opened in its own window, with the site’s icon automatically displayed in the system tray. This isn’t particularly useful, of course, so I tried my hand at adding a site-specific script. For each site, Bubbles creates an XML file called a “Smart Bubble”. Using the Gmail script as a guide, I wrote a JavaScript snippet that refreshes the TechCrunch homepage every ten minutes. If a new post has appeared since the last refresh, a popup notification is displayed. Some trial-and-error was required to get it right, but all told this only took me about 30 minutes. If you’re curious, you can check out my script here.

Bubbles has fallen off the radar lately and a lot of the materials on the website have not been updated since 2006. Ohad explained to me that the product was ahead of its time when it was initially released, and they found it difficult to articulate its purpose in a way that resonated with the larger public. Nonetheless, it has attracted a devoted community (Ohad claims that users number in the tens of thousands). Now that Prism and Fluid have helped to popularize the notion of a single-site browser, 3D3R has picked up the ball and has a team of developers working actively on the next version of Bubbles, which should be out in less than a month. Currently the product works on Windows only and uses Internet Explorer to render web pages. Ohad told me that a Mac version is also planned, although this will require some work to adapt to the WebKit engine used by Apple.

Fluid looks very much like a Mac version of Bubbles (it requires Mac OS X 10.5 Leopard to run). After downloading and unpacking a 3Mb zip file, running Fluid called up a simple dialog box inviting me to “Create Site Specific Browser.”

Unlike Bubbles, no pre-configured apps are provided out of the box. There is a community repository set up on Google Code, however, where users can contribute their scripts (currently Campfire, Gmail and Google Reader are available). Scripting is very similar to Bubbles, with functions available for displaying popup notifications, adding items to the app’s dock menu, badging the dock icon and playing sounds. For those not satisfied with the low resolution website favicon that Fluid uses by default, there is also a Flickr group with over 100 hi-res icons for use with popular sites.

Prism is by far the largest download (nearly 30Mb) since it includes the entire Firefox engine rather than depending on the browser provided by the operating system. On the other hand, Firefox users can download a 500kb extension that lets them create Prism apps directly from inside their existing web browser. Once again, the first step is to fill out a dialog box with the URL and name of the application to be created. The biggest advantage of Prism is its multiplatform support; it runs on Windows, Mac and Linux. On the other hand, it lags slightly in features, with no capabilities yet to customize the dock or system tray menus (this is planned for the next release).

Right now there is not much to distinguish between the these three products. Fluid has more of a complete browser feel, with menus in each web app for managing history, bookmarks and userscripts. Prism is a no-brainer for Firefox fans or anyone who requires multiplatform support. Bubbles has some catching up to do, but it has the most complete API, and with several developers working on it actively we can expect to see significant improvements in the next release. The biggest issue for all three contenders is the dearth of existing userscripts for popular web apps. Critics are correct to note that the appeal of running an unmodified application in its own window is limited (although one click access is certainly a plus). Writing your own script is not rocket science, but it isn’t anything your grandmother is going to tackle either, so a library of custom scripts is a must if these products are to achieve mainstream adoption. One thing holding back progress in this area is that Bubble, Fluid and Prism all have similar but subtly different APIs. Hopefully the vendors will get together to standardize on a common set of functions for script authors so that the effort invested into tailoring a script to a web app can be leveraged across all three products.

One other product that is often mentioned in the same breath as these single-site browsers is Adobe AIR. While it targets the same basic need, bridging the gap between web and desktop applications, it takes a fundamentally different tack. You can’t download AIR and use it to create your own standalone web app by filling out a few fields in a dialog box. Instead, Adobe provides sophisticated developer tools to let programmers create slick AIR applications for existing web apps and web services.

So rather than spinning out a barebones app and souping it up with snippets of userscript, creating an AIR application is more like classic software development. Furthermore, AIR offers two options to developers: use standard HTML and JavaScript or take advantage of Adobe’s powerful proprietary Flash engine and Flex language. Adobe platform evangelist Ryan Stewart wrote to me to explain the distinction between these two approaches:

The decision about when to use Flash and when to use web standards is a pretty easy one in AIR… you use whatever you know. If a developer knows how to build amazing things using HTML/CSS/JavaScript, then I don’t really think there’s a compelling reason for them to use Flash or Flex. We wanted to support both communities in AIR. One of the things that I think is good about AIR is that you’ve got access to both together. There are a lot of things in Flash - things like graphic manipulation that make photo/video editors possible - and you can actually bring some of those into your HTML application without having to embed anything in your HTML application. You can call those Flash APIs directly from JavaScript in AIR and apply them to your HTML elements. It creates some interesting possibilites. On the other side if you’re a Flash developer, in AIR you can use all of those great third-party JavaScript libraries out there and call them directly from Flash. So in some ways I think it’s the best of both worlds and you can really focus on using the best combination of technologies. But if you want to keep your development based on standards, that’s possible and encouraged in AIR.

AIR has the full weight of Adobe behind it, great tool support and a lot of mindshare in the web space. If enough vendors are convinced by its advantages and decide to use it to create desktop-enabled versions of their web apps, it may be hard for the other SSBs to compete. API standardization will be key in determining how things pan out. A common, well-designed API for single-site browsers would even make it realistic for vendors to integrate desktop-oriented code directly into their web apps. If this were to happen then loading an application like Gmail or Flickr into Bubbles, Fluid or Prism would give you all those fancy dock menus, popup notifications and the like with no customization required at all. Considering that users are increasingly leery of downloading and installing standalone apps, this would be a compelling advantage indeed.

  • Sphere It

Trackbacks/Pings (Trackback URL)

  1. Just Browsing » Another TechCrunch Guest Post on Single-Site Browsers
  2. grockwel: Research Notes » Blog Archive » Bubbles, Fluid and Prism: Site Specific Browsers
  3. TechCrunch en français » [fr] Sobees, la passerelle de votre bureau vers l'internet. 25 invitations pour les lecteurs de TCFR
  4. nortypig » Blog Archive » Gertner on Single Site Browsers

Comments

RSS feed for comments on this post.

  1. chris (trade2save.com)

    Is there a chance that Firefox might come in and steal the show by creating an SSB plugin that included these cool features?

  2. browse

    theres a fat WHERE after you try to link to the techcrunch bubble

  3. Dave

    Nice article Michael. I thought it was interesting to see AIR grouped together with the products in the SSB category. As Ryan pointed out, AIR can accomplish the same thing as an SSB, however also provides a great deal of other functionality, primarily in the capabilities of Adobe’s Flash and Flex tools. Also, an AIR application can package up the assets than an application uses (images, XML, html, etc, etc) and store them on the client, where as I assume the SSB approach simply creates a browser shell that calls external URLS? (not 100% sure about that though).

    I can’t help to think of the differences between a Single Site Browser and an AIR application though. While they can be considered the same in that they both essentially can run a Web application inside a controlled non-web browser container, AIR is a lot more than just that.

    What I’ve always thought was great about AIR is that it enables just about any Web developer to create a custom software application and get it installed using Adobe’s installer.. which takes a lot of the hard work of traditional desktop application deployment. Not to mention, using our Open Source Merapi framework, AIR developers will be able to tap into the user’s operating system and connect their application to external devices, etc. That makes AIR more like “software” to users and the concept of an SSB just what it is… a sandboxed version of a Web site… using the same goodies that you would find in a regular browser. I suppose the SSB runtimes could add additional functionality though.

    I can see the necessity for running an SSB, but can’t seem to understand why I’d use anything other than Adobe AIR to solve the problem.

    Cheers,

    Dave

  4. MikTan

    Although limited to one site (Amazon), this SSB has been out since at least 2004, before Bubbles:

    The Mozilla Amazon Browser

    http://www.faser.net/mab/

  5. jro

    @chris: Sure, it’s called Prism.

    There’s one extremely annoying thing/deal-breaker for me about these applications (websites jammed into a dedicated desktop app): If the application includes a link to another website, it opens up — drum roll please — the link in a new browser window.

    Having tried this with multiple websites, it’s amazing how critical links are to websites (surprise.) After you spawn a few new browser windows, the desktop app thing starts to feel like the Department of Redundancy Department.

    Maybe it’s a user pattern thing, but this class of applications still seems like it doesn’t really accomplish all that much.

  6. Bam Azizi

    i use prism for google sites like reader, calenday and gmail. These are the 3 sites i visit very couple of hours, so having an icon to launch them quick was a great decision but still i don’t know if we should have it for all sites,

  7. YDRIVE

    Interesting.

  8. Mark Finkle

    @jro - Prism will open links in a new Prism window *if* the link is in the same domain as the webapp. If the domain is truly external, then opening in a new browser window is exactly what we want to do.

  9. Scott Milener

    Tabless browsing, to tabbed browsing, back to tabless browsing. Don’t get it.

  10. Josh Hyde

    Why can’t Firefox do this out of the box? You should be able to drag a url from the address bar and drop it on your desktop with the favicon becoming the icon. That would be slick.

  11. Todd Ditchendorf

    @Scott Milener I’m not certain about Prism and Bubbles (haven’t checked lately), but Fluid-created SSBs are full-featured tabbed browsers… i think you’ll find nice feature parity with what you expect from a modern browser.

    @Dave no worries, SSBs and Air can peacefully coexist. Currently, i think it’s fair to say that the SSB products described here are ‘end user tools’ whereas Air is a ‘developer platform’. In the future, that might change on either side tho…

  12. EH

    Scott-9: I’m sure there’s a philosophical term for it, but yeah, it just mirrors the “thick client vs. thin,” “Amazon S3 vs. NAS,” “hardware vs. optimization,” and other perpetual soap operas that industries use to perpetuate their own initiatives in sectors that have settled into dichotomous but equally-valid preferences, and it’s been like this for eons. It’s either an absolute innovation or a wise updating of a reliable old favorite. Back and forth, see-saw, etc., rinse and repeat.

  13. Matthew Gertner

    You can find the link to the script referenced in the post here: http://browsing.justdiscourse......cript.html

  14. jro

    @Mark - thanks for the clarification, that makes a little more sense to me.

    Maybe there’s a class of websites that, when used inside these containers, is more inline with my personal user habits. The utility just isn’t that high for me at this point.

  15. caltean

    I believe the first to introduce the concept of “HTML Applications” was Microsoft back in 1999 with IE 5.0. It was an interesting concept, maybe a little too ahead of the market. The beauty of HTAs was that allowed web programmers to have more control over their application and especially security, like cross domain access and so on. Of course the problem was that it was IE on Windows only….

    http://msdn2.microsoft.com/en-.....36496.aspx

    Introduction to HTML Applications (HTAs)
    The power to build HTML Applications (HTAs) brings Microsoft Internet Explorer to the fore as a viable Microsoft Windows development platform. HTAs are full-fledged applications. These applications are trusted and display only the menus, icons, toolbars, and title information that the Web developer creates. In short, HTAs pack all the power of Internet Explorer—its object model, performance, rendering power and protocol support—without enforcing the strict security model and user interface of the browser.

    Why Use HTAs
    Historically, programming languages like C++ and Microsoft Visual Basic have provided the object models and access to system resources that developers demand. With HTAs, Dynamic HTML (DHTML) with script can be added to that list. HTAs not only support everything a Web page does—namely HTML, Cascading Style Sheets (CSS), scripting languages, and behaviors—but also HTA-specific functionality. This added functionality provides control over user interface design and access to the client system. Moreover, run as trusted applications, HTAs are not subject to the same security constraints as Web pages. As with any executable file, the user is asked once, before the HTA is downloaded, whether to save or run the application; if saved to the client machine, it simply runs on demand thereafter. The end result is that an HTA runs like any executable (.exe) written in C++ or Visual Basic.

    HTAs are suited to many uses, whether you are prototyping, making wizards, or building full-scale applications. Everything DHTML and script can deliver—forms, multimedia, Web applications, HTML editors, and browsers—HTAs can too… and then some. In fact, HTAs can make some tasks easier. The simplicity of generating prototypes using HTAs makes it possible for designers to script dialog boxes and alerts while the C++ or Visual Basic developers program the underlying functionality.

  16. Joe Thong

    I think prism, or desktopize(commercial version of bubbles) for that matter will prove to be a strong contender of AIR in the future. You just need to pair them with Google Gears and it can realize a most of the things that AIR could do. Current version of the Gears is only 0.3 and we are already seeing a lot of functionalities such as web requests, file access, database, and image manipulation (planned). I could be wrong, but based on my recent research, I think SSBs+Gears will be a strong alternative camp to AIR.

  17. bubbleboy

    Hope this bubble is here to stay afloat & doesn’t burst soon !!

    all the best!

  18. AndyEd

    An interesting potential for PRISM in particular is sandboxing extensions which break the cross site scripting barrier… right now, you have to fully trust the extension to behave well no-matter where you are. With a site specific browser, you could limit the add-on’s activity to a site.

    So, I could log all of my web visits on the corporate wiki to a internal server for better team awareness, while not having to manage the overhead of turning on and off sharing.

    Not sure it’s the right approach, but it is intriguing. Alas, prism has no support for addons right now AFAIK.

  19. vdz

    using Bubbles since 2006, it’s simple & simply great!

    my gmail is in a bubble and it’s an awesome experience, can’t imagine it working otherwise.

    Would love to see a live community of script writers to creame more cool “smart bubbles” or whatever they are called.

    nice read

  20. nick

    Adobe should bundle AIR in to the Flash download

  21. Matthew Gertner

    @nick, I actually bet Mike Shaver that this would happen before the end of the year (http://browsing.justdiscourse.com/2008/01/29/the-runtime-wars-aka-xulrunners-exaggerated-demise/). I did end up hedging my bet, however, when someone pointed out to me that it’s pretty easy to install AIR already if you have Flash installed in your browser.

  22. John Stokes

    This is great I was impressed when I got the news on http://www.malltropolitan.com.

  23. Ohad Eder Pressman

    Great writeup @Matthew, and great conversations that followed.

    Opening new links is a big issue that I guess we’re all still tinkering with. New browser windows, new Bubbles/Prisms/Fluids and new Tabs within the current SSBs are all options. Its true that none of these feel like a ‘right’ solution, so more investigation for all of us.

    We see SSB API unison as an important step in the path for a true platform and something that will give consumers happiness (@mark, @todd). I’m pretty sure we’ll soon get around to discuss this. We at Bubbles are making semantic steps towards this in renaming our API namespace to ‘SSB’ rather than prefixing methods with ‘BB_’.

    Playing nicely with Gears is also critical in that it will allow us all to wrap up entire Applications. Imagine what it would feel like to use a version of gmail that supports gears, within an easily accessible and supercharged SSB framework, on an airplane for example.

  24. francis dupuis

    Part of the reason (for my new development projects) to use AIR is that we have clients who don’t want a ‘web browser’ on the desktop - they want their staff working in the application. I would say for a lot of commercial (govt, libraries, non profits, etc…) uses, Prism would need to have features that would let us lock it down.

    Right now I’m using Prism with my legacy web app that includes Flex/Java/HTML components - it makes a compelling combination IF it can be secured and locked from users messing it up and tying themselves in knots.

    Many of us have deep/rich existing web apps that we want to extend with technologies like flex and web services - and that seems well suited to a technology like Prism.

  25. rktect

    I think @caltean has some great points. Its important to remember that - sure, tabbed browsing is a good user experience for web pages, however, once web pages become applications there are many technical issues that come up that either limit functionality or become a security risk.

    A tabbed browser shares the same memory space for all open tabs - leaving the possibility for a browser flaw to have your logged-in bank website on one tab exposed to Joe Schmoe’s exploit code on another.

    Also, browser windows/tabs are quite limited functionally by cross-site-scripting and security configurations - for very good reason, but still rule out some otherwise innovative applications. SSB’s have the potential to run protected by themselves and also to allow the user to configure the security settings just for that domain - or otherwise choose the level of trust they want for each SSB application. The SSB just becomes a common container for applications more seemingly integrated with the operating system.

    I for one am curious to see where this leads…

  26. Danny at Mesa

    The problem with SSBs is that most web applications are designed to work inside a web browser (hmm, a “duh” seems reasonable here) — links open in other browsers, back/forward support is assumed, downloading and printing paths are kicked out to the browser. This is where redesigned AIR apps have an edge, as their designers will take a desktop-centric development approach.

    Web-to-desktop bridging makes more sense, IMHO, in self-contained widgets that require no true cross-functionality with the browser. This in fact is the motivation behind our own work on bringing web widgets and social network applications out of the browser and into the desktop. A 3rd part of this series touching on the work we’re doing in Hypercube would be great. ;-)

  27. Jan Erik Paulsen

    First SSB in 2005 ? Yeah sure, for people who smoke weed.

    IBM did something like that back in 99. And what about Microsoft Active Desktop from 97 ? SSB’s, as you call them, are a byproduct of component oriented software.

    Sure, no Flickr integration.. but there was no Flickr. We had modems and pets.com was pure GENIOUS.

  28. MSSUCKS

    Hey 15.Caltean you are right, M$ first knew about the potential of the web and they tried to kill it.

    So now M$ wants to claim paternal rights about their own abortion?

    That’s what I call a lovely father…

  29. Q dub

    SSB is a hack, a workaround to an emerging problem.

    @Caltean: I agree that HTA was the first to be directionally correct. There are many approaches to solving this problem, but I suspect the winner will allow the same code-base to be deployed simultaneous across the the desktop and web and eliminate re-work.

    Air is cool, and the install process is so easy that it really breaks down the “install hurdle” many other apps face, but Adobe must still let Air apps run seamless within the window to boost adoption rates and bring back the use-anywhere advantage of web-based.

    I hope to god (D)HTML isn’t the platform of the future. Using HTML to draw interfaces is itself a hack/workaround–the frigg’n standard was optimized around marking up documents!

  30. Johnny Dejay

    I just downloaded Bubbles, and it’s pretty cool — except for the IE engine. I’ve gotten used to GMail with Greasemonkey scripts and Adblock Plus, so seeing it in rendered with IE makes it look just gaudy. I sure hope Prism utilizes Firefox Extensions, otherwise it’ll be in the trash with Bubbles…

  31. smcnally

    where does Songbird fit in this model? it’s not an SSB, but more a Single Focus Browser: it’s your networked media player. may have brought this up in Matthew’s Part 1; seems Songbird has all this potential as an SFB because the experience works for ‘consumers’ as well as ‘producers’: the former get advanced function specific to finding, listening and viewing, and the latter get more sway over that experience.

    it’s built on Moz, so is certainly not forcing Either / Or (AIR or Prism and Gears extensions?)

    it’s got sqllite persistence. it’s got cool media handling. also, you can look at ‘regular pages.’ no taskbar / dock icons per tab. tho that’s doable.

    as a technical product guy, i’m a bit mystified by what he audience is asking for here.

  32. Frank Church

    Do any of these options allow for full access to USB ports?

  33. Matthew Gertner

    I’m overwhelmed by all the thoughtful comments here. Some excellent points about back/forward button, tabbed browsing, etc. I think that @Ohad is right when he points out that it is still early days for web/desktop convergence and we’re still experimenting with which approaches will work best. It’s great in any case that there is so much innovation taking place.

    Ajax is probably a good leading indicator of where web app technology is heading. An application like Gmail has completely done away with the need for a back button, tabs and the like. As more and more developers design their apps to be SSB-friendly, the lack of the elements may cease to be a consideration. Also, there’s absolutely no reason that SSBs can’t have navigation buttons and tabs (like Fluid) where appropriate.

  34. Dennis Reinhardt

    Another approach not already mentioned is at http://www.htmlapp.com. This program wraps an HTA inside an exe file. Typical size for a simple site browser is under 20 KB. Windows only.

    Yet another approach here is download html and Javascript inside the exe and run it locally on the client computer. This permits writing a totally client side application using html and JavaScript.