The Runtime Wars (Aka XULRunner's Exaggerated Demise)

29 January 2008 by Matthew Gertner - Category: Rants and Ruminations

“I keep telling people that Firefox is just a measly stub built on XULRunner, but they don’t believe me. They claim that Mozilla stopped supporting XULRunner and I’m telling lies.”

This comment was made to me by Benjamin Smedberg, who is the driving force behind XULRunner, Mozilla’s platform for building portable, web-enabled applications. Obviously the remark is largely tongue-in-cheek (and in fact “measly stub” was my own joking characterization), but there is a kernel of truth to what he says. To understand why, some background is in order.

The original architects of Firefox were impressively visionary in building their browser on top of a general-purpose framework that has helped them to manage the complexity of deploying a sophisticated product on dozens of different operating systems. This platform is so powerful that other companies have decided to build their own applications on top of it. Prominent examples are Songbird, Joost and Miro. Benjamin has done a great deal of work to take what used to be the pile of stuff that makes Firefox tick and turn it into a product in its own right: XULRunner.

The current confusion has stems from a blog post written by then CEO Mitchell Baker last May. In her defense, Mitchell devotes the vast bulk of the piece to explaining that Mozilla is planning to continue supporting XULRunner in a variety of ways, particularly as the foundation for Firefox and as a platform that other software developers can use for their own apps. But many seem to have latched onto the last section, where she says that “the Mozilla Foundation does not plan to invest in a pre-packaged or stand-alone XULRunner at this time.” In the game of telephone that is the technology press, this was apparently communicated as “we’re discontinuing XULRunner”.

In reality, nothing could be further from the truth. Benjamin is referring to what is doubtless the least understood but most significant of many exciting innovations in Firefox 3. Previous versions of Firefox used the XULRunner source code but couldn’t share it with other apps at runtime. The upcoming version ships with a complete XULRunner runtime, and actually lets you turn Firefox into XULRunner with a simple command line switch.

This is important because the browser wars are evolving into runtime wars. Players like Adobe and Microsoft are trying to convince software developers to build on top of their RIA platforms (AIR and .NET/Silverlight, respectively). Programmers are understandably wary of doing so if users will have to download a hulking runtime just to use their applications. This is one of the key factors that has prevented Java and previous incarnations of .NET from gaining widespread penetration on the desktop.

The only company that’s been really successful thus far in getting its runtime onto users’ desktops is Adobe, whose Flash player has achieved something approaching ubiquity. It’s a safe bet that they are planning to leverage this installed base to push the AIR runtime, and in fact I made precisely this bet with another Mozillian, Mike Shaver, who will be paying me 100 euros if Adobe finds a way before the end of 2008 to sneak AIR onto surfers’ machines when they upgrade to a newer version of Flash. (And if anyone from Adobe is reading this, there’s 50 euros in it for you if you can make this happen.)

The player with the strongest cards, however, is Mozilla. Unlike Adobe and Microsoft, they have a true killer app in the form of Firefox. When its 150 million odd users upgrade to Firefox 3, they’ll be getting XULRunner as a surprise bonus. This will seed the market and make it a whole whack easier for software developers to deploy XULRunner-based applications. Right now people are focused on the “awesome bar“, a slimmer waistline and other cool new additions planned for Firefox 3, but the platform it conceals under the hood may turn out to have the most revolutionary impact.


« - »
COMMENTS
  • http://davidnaylor.org/blog/ David Naylor

    Very interesting! I had completely missed this… So for instance, Songbird and Miro could in theory supply a much lighter download to people visiting their website with Firefox 3, since the apps will then be able to run off xulrunner inside Ff3?

  • http://www.atomeo.com Atomicron

    Thanks for highlighting this subtle but important feature. However, I’m not sure I agree that a shared runtime is all that desirable or killer a feature. It seems to me that most app vendors should focus on web applications that run in the browser sandbox (user doesn’t have to worry about security as much and installation is a snap). I would think that HTML5 and SSBs like Prism will make this even more desirable.

    In my Utopian vision of the future all user space application would be web applications and only the OS vendor would have the keys to the kingdom to install native applications (some exceptions naturally).

  • Matt

    David,

    In theory, yes. In practice, not yet since most XULRunner apps customize the platform to some degree so they wouldn’t be able to run on plain-vanilla XULRunner. However, with the release of FF3 I expect that to change because: (1) the platform is getting better and better so there’s less need to customize it and (2) the benefit of using out-of-the-box XULRunner is that much larger.

  • Matt

    Atomicron,

    I don’t disagree, although it’s still early in the game so it’s nice that developers have all options open to them. Perhaps we’ll see some unexpected advantages to full-blown apps on top of XULRunner.

    Note also the Prism is a XULRunner app, which means that users of FF3 will be able to spin off web apps into Prism without having to download the entire runtime, which is a big win.

  • http://enefekt.com/sansbrowser/ enefekt

    Adobe is already leveraging the Flash Player with AIR in a couple of cool ways.

    One is the seamless install feature. You can automagically install your app and the runtime in one process started by a SWF running in the Flash Player. Pretty slick.
    - http://www.adobe.com/devnet/air/articles/air_badge_install.html

    The other is, by opting your application in, you can communicate from the Flash Player in the browser to an AIR app. You can detect if a particular application is installed, and you can launch it from the browser.
    - http://blogs.adobe.com/simplicity/2007/12/beta_3_and_the_browser_api.html

    “The player with the strongest cards, however, is Mozilla. Unlike Adobe and Microsoft, they have a true killer app in the form of Firefox. When its 150 million odd users…”

    Actually I would say Adobe has the strongest cards. Their killer app is Flash Player, and they are leveraging it as stated above. And the Flash Player’s some 3 billion installations dwarfs the Mozilla install base.

    Also, all their install and distribution stories work across browsers, not on just one.

    Also, the XULRunner in Firefox 3 isn’t really meant to be used, let alone supported:
    “If it seems like we don’t want to promote running XUL-based applications using Firefox 3 as the runtime – good! This is very experimental and there are down-sides. There are no current plans to expand or extend the feature.”
    - http://starkravingfinkle.org/blog/2007/08/firefox-3-xul-application-runtime/

    AIR has full support from Adobe and is actually intended to be used as an application runtime.

    Also, are you saying that Prism will use the XULRunner in Firefox?

  • skierpage

    a) Mention XULRunner and the firefox -app switch in the release notes, they’re not in http://www.mozilla.com/en-US/firefox/3.0b2/releasenotes/#whatsnew

    b) Provide a link to a simple XULRunner app for some of those 150 million to try.

    c) Lots of MDC docs like The_Joy_of_XUL don’t mention FF3′s integration of XULRunner.

    I’d be far more likely to try Songbird, Flock, Komodo, etc. and Prism if they were smaller XUL packages I could run with the Firefox -app trick instead of yet another executable.

    Prism is still a .exe download, not a XULRunner package.

    Macromedia-now-Adobe keep rhapsodizing about great Flash Central/Flex/AIR/whatever apps, but they optimistically overlook Flash’s failings and none has been remotely as compelling as a great Web 2.0 app like Zoho, Google Docs, Google Maps, etc.

  • Matt

    Enefekt,

    You’re probably right to call me out on my assessment of the relative strengths of Adobe and Mozilla in the upcoming runtime wars. Both are very strong contenders (with Google an interesting dark horse, which I’ll be writing about today). I’m sure I’ll be writing loads more about this.

    My impression is that the whole firefox -app was practically a one-man effort by Benjamin (someone please correct me if I’m wrong about this). So I’m sure Mark is right that it isn’t being publicized or supported by Mozilla right now, but they’ll come around when they realize how huge it is. I’m not sure what the “downsides” he mentions are but I’ll ask him.

    And yes, like all apps that run on standard XULRunner, Prism can be run using firefox -app.

  • http://enefekt.com/sansbrowser/ enefekt

    skierpage,

    Check out apps like:

    Buzzword:
    - http://about.buzzword.com/

    Picnik:
    - http://www.picnik.com/

    And the Google Analytics AIR app, which looks like it will be hosted and supported by Google itself, which is huge news I’d say:
    - http://www.riapedia.com/2008/01/16/google_officially_supporting_air_analytics_application

  • Pingback: Just Browsing » Blog Archive » AIR, Flash and Self-Fulfilling Prophesies

  • skierpage

    enefekt,
    Just the login page ALONE for Buzzword.com shows the problems of Flash.

    Compared to Firefox 3 I’ve lost Ctrl-+ to zoom, there’s no spell-check in text fields, link URLs don’t appear in my status bar, right-click on link doesn’t have Open Link in New Tab or the rest of my FF link context menu, middle-click doesn’t pan the window, I can’t search in text with Ctrl-F or Quick Find, etc., etc.

    Maybe the meat of the Flash app makes this reduced functionality and browser inconsistency worthwhile, but I haven’t even got to it and I miss the *real* Web experience in my browser of choice.

  • pd

    It’s not just a runtime war. I am personally looking at AIR instead of whatever Mozilla is supposedly offering (Prism nee WebRunner, Firefox, XULRunnerFox .. what the flip is it?) and it’s much clearer what AIR is offering – NOW – even though I’ve had the chance to talk to Mark Finkle in IRC. FWIW, he actually recommended AIR for my idea/project! So there you go. Prism is a glorified desktop shortcut creator that allows websites to do a subset of what Firefox extensions can do.

    The comment from Mitchell was jumped on not because people mis-read it, as you seems to suggest, and thought it meant Mozilla was abandoning XULRunner. The reaction was equivalent to “you might as well be abandoning it if you are not going to market it properly and develop it as a genuine platform competitor for developers to use on the desktop without the limitations of a quasi-desktop web browser (Prism).

    I personally believe that once performance/memory management problems are solved – and it seems there’s a lot of success with the memory allocator research – “XULrunner” could be a better cross-platform application foundation than GTK+ and certainly the bloatware that is Java.

    It’s as simple this: when the world needs a great cross-platform application development foundation, and MoFoCo has one, why aren’t they “going for it”?

    - Where’s the long-awaited IDE?
    - Where’s the decent doco?
    - Where’s the roadmap and accountability to developers who choose to stake their projects/businesses/lives on XULrunner?

    I’m afraid launching a genuine ‘runtime’ requires a bit more than the occasional obscure blog post.

  • Matt

    Pd,

    Your point about commitment to the platform is well-taken. Nonetheless, I think you undervalue the vision behind Prism. Certainly the project is still very early stage, and it’s reasonable to question whether Mozilla can compete with Adobe given the resources being invested in their respective projects. The IDE issue is also a big one. The initiatives taken by ActiveState with OpenKomodo and SnapDragon are promising but I’m not sure what the current status is.

    I think the questions Mozilla needs to answer are:
    - What is the long-term vision for Prism?
    - How will it compete with AIR as a platform for RIAs?
    - What is the IDE strategy?

    There should be a good answer to the last question since Prism uses open web technologies, but personally I’m not sure what is the best way to design, implement and debug Prism applications.

  • skierpage

    pd,
    I can see you want “commitment to the platform” but there’s no guarantee of it from anyone. How did Microsoft’s “accountability to developers” work out for IE4 animations, Chrome, and other web initiatives they’ve abandoned? or Macromedia’s for Flash Central? The problem with new platforms is there’s lots of influence at stake but little money to be immediately made, so commercial companies’ motivations are very murky.

    The difference with open source is you have the keys to the car and own all the parts. Whether Mozilla continues to share the driving chores with you or even has the same destination is another matter.

  • prize

    Did you get the 100 euro?