A narrative on the future of web browsers and web browsing

Thoughts on XULRunner, Part One: Why XULRunner?

August 8, 2008 – 10:13 pm

The “Firefox Plus Summit” last week was a wonderful event, bringing together 400 odd members of the Mozilla community, from core Mozilla developers to localizers from around the globe. For me, the key lesson of the summit was the continued high level of interest in Mozilla as a platform. This is a subject that is near and dear to my heart, particularly after the ultimately disappointing rise and fall of Mozpad last year. After numerous conversations at the summit with various concerned parties, I feel I have a much better understanding of why Mozpad failed and why there is still a need to push the platform forward.

It is an undeniable fact that there is considerable frustration in the community over XULRunner. For one thing, developers of XULRunner apps complain a lot about the difficulty they experience getting their patches checked back into the Mozilla repository. This means that they have to continue to maintain a library of patches as they bitrot over time, and it makes them feel like second-class citizens. (Not that this should be construed as a criticism of Mozilla Corporation. Getting a patch into Mozilla is difficult by design, even for those working on Firefox.)

The other source of frustration is that XULRunner is seen as something of an underachiever: a platform with the potential to have a far bigger impact than it has. If Mozilla were to announce that it was stopping all development and support of XULRunner, this would raise a big hullabaloo, but at least their position would be crystal clear. As it stands, XULRunner is 90% of what it needs to be to be a competitive software development platform with many advantages over existing contendors. The missing 10%, along with the seemingly ambivalent attitude of Mozilla Corporation (despite a valiant attempt last year by then CEO Mitchell Baker to clarify the situation), is what causes tempers to flare.

Mozilla’s ambivalence is understandable. The platform has a lot going for it. The vast majority of the code it uses is shared with Firefox anyway, so most of the development effort is highly leveraged.  A number of exciting projects, both commercial (Songbird, TomTom, etc.) and otherwise (Miro, ChatZilla, MobiDVD, etc.), enhance public perception of Mozilla. The Corporation itself is also increasingly using the platform for projects other than Firefox, such as Prism and Fennec. And there are a number of MoCo employees who are strong proponents of platform use by third parties.

On the other hand, Mozilla has a huge hit on its hands with Firefox. Products with such a tremendously large and positive impact on the web don’t come along every day. There is a real risk of the organization trying to take on too much and endangering its strong position in the web browser market, and with it the potential to do much good in the future. When you’re working frantically to release a major new browser version, as was the case with Firefox 3, the last thing you need is to spend cycles on unrelated platform work. Rave reviews for Firefox 3 support the argument that Mozilla should keep its sharp focus on the browser.

There are, nonetheless, at least four good reasons to revisit Mozilla’s decision not “to invest in a pre-packaged or stand-alone XULRunner at this time.” The first is the potential for a strong independent XULRunner to strengthen the Mozilla platform (and thus, indirectly, Firefox). Firefox 3 has ushered in major platform improvements such as enhancement of JavaScript performance, a cleaner threading API and consolidation of functionality into a single “libxul” library. The more individuals, companies and other organizations who are using XULRunner for serious projects, the more momentum can be built up behind future improvements that will benefit Firefox. Some appealing changes, such as moving from result codes to exceptions in C++ and porting portions of the platform to JavaScript 2, would require large engineering investments. The more these changes can be leveraged, the more resources will be available to implement, test and maintain them. This consideration could be decisive in whether such ambitious efforts are even taken on.

Secondly, a more widely used XULRunner will broaden the base of developers with Mozilla development skills. This will, in turn, increase the pool of developers capable of creating quality extensions for Firefox. Considering that the extension ecosystem is arguably Firefox’s biggest asset, this could be of considerable importance to the browser’s ongoing success and market share growth.

Thirdly, a strong platform commitment will provide Mozilla with some measure of future-proofing. The annals of business history are littered with companies who foundered because they were hesitant to endanger existing product lines. (IBM’s relunctance to jeopardize its mainframe and typewriter businesses with a strong move into the microcomputer market is a classic example.) Firefox is king right now, but who knows what the future will bring? Already we are seeing new browser directions like Prism and Fennec that rely on Mozilla-as-a-platform (and are experiencing some pain when the platform functionality is not as generic as it could be). By commiting to a strong independent XULRunner, Mozilla will be better prepared to take appropriate action as the browser landscape evolves.

Finally, there is a clear market need for an open development framework for multiplatform internet-enabled applications. Microsoft is pursuing this market with .NET and Silverlight, but the company is hardly known for its openness, and it will always favor Windows even if some support is provided for other operating systems. Adobe’s offering is also proprietary and crucial components are not open source. As this space heats up, many of the applications that would traditionally be deployed in the web browser will be implemented instead as so-called Rich Internet Applications that run directly on the desktop. Turning XULRunner into a truly competitive offering would be of great benefit to the web at large, in the same way that Firefox has brought more vigor and openness to the browser space. It would also be a great way to promote the principles outlined in the Mozilla Manifesto.

It is worth nothing that, by all accounts, Firefox was not embraced immediately by much of the Mozilla community when it was first released. While practically everyone recognized an increased focus on user experience as a Good Thing, many objected to the sacrifices that this entailed (such as discontinuing support of the Suite, with its integrated mail/news client, HTML editor, chat client, etc.). If too conservative a stance had been taken, Firefox might never have been released and its subsequent success would have never materialized. This isn’t to say that all change is good or all risks worthwhile, but any long-term success is predicated on taking at least some big scary (but calculated) bets.

In part two, I’ll discuss what steps are needed to help XULRunner achieve its full potential as a competitive RIA platform.

  1. 12 Responses to “Thoughts on XULRunner, Part One: Why XULRunner?”

  2. Who is “Mozilla”? I think if the Summit made anything clear, it was that “Mozilla” is much, much, much more than just the Mozilla Corporation.

    The Mozilla Project is large, and includes many products, perhaps one or two sets of technologies that can be considered platforms, and most of all, a structure by which people can contribute, lead and evolve the project.

    Your post constantly refers to “Mozilla” as this external entity which you cannot move. I dispute that view. You are Mozilla, so long as you choose to get involved and do the work, instead of just telling others what to do. If you’re passionate about this project, Matt, then start building a community around it and figuring out how we can all move forward, without making this an “us or them” sort of decision. It’s all “us”.

    By Mike Beltzner on Aug 8, 2008

  3. Mike,

    I totally agree. I’ve already taken one stab at this, and I’m inclined to give it another go. I do think it’s worth laying out some of the reasons why a productized XULRunner is of strategic importance to MoCo and the larger community, which was my goal with this post. In the second part I’ll try to present some ideas for moving things forward.

    By Matthew Gertner on Aug 8, 2008

  4. I completely agree with Beltzner’s comments. The Mozilla community is whoever shows up to work on Mozilla. It’s not a matter of making a convincing argument about XULRunner to try to sway someone’s opinion, but rather it’s an issue of getting people together who have a shared interest in XULRunner and getting them working together and contributing. I know that was the goal with mozpad and I was sad to see that effort run out of steam. As you mention though, there’s still a lot of interest in this area and there’s still a lot of potential to make something happen.

    By David Boswell on Aug 9, 2008

  5. David,

    Absolutely. But I still think it’s worth pointing put why XULRunner is of strategic importance to the Corporation. Any effort to turn it into a world-class development is going to require some level of buy-buyer from all concerned parties, after all.

    By Matthew Gertner on Aug 9, 2008

  6. Heh, your last “Are Web Apps an Endangered Species?” made me rant that I want ALL my native apps to be “Firefox apps”: small non-EXE downloads that reuse the XULRunner we already have.

    To me the biggest leap towards that promised land is obvious: MoCo’s marquee apps Firefox and Thunderbird should be delivered as XULRunner applications that run off a shared XULRunner.exe. As you say, it would be good for the ecosystem, great for the platform, and fantastic for other “powered by Mozilla” apps (”Got Firefox? Then you already have XULRunner, just download this small 3MB file to run a media player that works as well as Firefox.”).

    ‘To move “Mozilla”‘ I’ll file FF and TB bugs to make this so and assign them to Mr. Beltzner :-)

    By skierpage on Aug 9, 2008

  7. @skierpage: Several Linux distros are already shipping Firefox as a XULRunner-based application using a system XULRunner. Granted, Firefox is the only app running on the system, but Thunderbird is moving in that direction too.

    Apps like Songbird want to do the same, but here’s the rub - they use a different XULRunner. There will be some work ahead before several different applications can truly share a XULRunner.

    By Mark Finkle on Aug 9, 2008

  8. No thanks. No XULRUnner!

    Firefox is a fantastic browser but why should we build RCP-application on top of XULRunner when Eclipse RCP already exists? Java-technologie is widespread in corporations and there are much more developers working with Java then with Javascript or XUL (not webapplications but business- and enterprise-applications)

    Mozilla Foundation and Eclipse Foundation should team up and create a common RCP-platform.

    It is hard for all of us to learn all those new technologies like Flex, Silverlight, Eclipse RCP and XULRunner.

    The FOSS-communities should come together and create a common platform instead of the usual NIH (”my platform is the best… please use it and not the others”)

    BTW will Mozilla ever change to a managed-code platfrom i.e. NET or Java (or the sucessor of Java?)?

    By Reiner on Aug 9, 2008

  9. I also hate XULRunner! I’m switching RIGHT NOW to the sucessor of Java.

    By Wired Earp on Aug 9, 2008

  10. Although Thunderbird is currently moving towards xulrunner (specifically just libxul in the first instance), having had various discussions at the summit, I think that some folks would be a lot happier taking Thunderbird all the way to xulrunner IF Firefox was actually on to of xulrunner already.

    Personally, I see it as a risk - if Firefox isn’t going to be on xulrunner, then it obviously isn’t committed to it (as a platform or as a base technology). If we do all the work to go to xulrunner (some of which will have a negative impact), is Firefox suddenly going to find something better and go in a different direction or just never use xulrunner itself which would make it kind of pointless to us (and a waste of time, especially when we’re doing so much catch-up already).

    At the summit I was told that Firefox isn’t to far off xulrunner and was aiming to go to xulrunner - but I’ve not seen anything to confirm that. If that is the case, disregard my comments, but can someone actually do something about it to say, yes Firefox version x will be on xulrunner?

    By Standard8 on Aug 9, 2008

  11. Our Application (IEEA) would love to be a XULRunner (or something similar) app but that’s just not possible yet so it remains an embedded app. To the people developing on our platform this means nothing: they deal with javascript, html, SVG, and a little bit of XUL. To me this means a lot.

    I spend a fair chunk of time updating our platform between revs. (I just spent a fair amount of time fixing a shutdown problem that exists in the current Gecko embedding samples) I’d really rather be contributing to a more global solution than individually reinventing the wheel.

    I’d like to discuss this in depth, but a hotel lobby in Denver isn’t the place…

    By jerryc on Aug 10, 2008

  12. Matt: good to hear; I look forward to your next post, then. From my perspective, the best route to success is to figure out how the XULRunner project and the Firefox / Gecko projects can continue in parallel, touching bases at appropriate junctures in order to determine what is required to eventually synchronize efforts.

    By Mike Beltzner on Aug 11, 2008

    Trackback URL for this post


    http://browsing.justdiscourse.com/2008/08/08/thoughts-on-xulrunner-part-one-why-xulrunner/trackback/
  1. 1 Trackback(s)

  2. Aug 12, 2008: Mozpad Post Mortem « davidwboswell

Post a Comment