Opera and Firefox – an explanation of “tactical open-sourcing”

This question has been asked before: should Opera, the Internet client from Norway that you’ve probably used on the Nintendo Wii’s Internet channel, go open source like its closest cross-platform competitor, Mozilla Firefox?

It’s become a common complain with Firefox junkies, that Opera isn’t a viable option for web browsing because of the proprietary ownership of its company (Opera Software ASA).

However, IMO, Opera has an advantage in its proprietary approach to software, in that its developers can construct and deconstruct their own layout and scripting engines from behind closed doors without having to make sure that it works well with a slew of development APIs. To date, Opera has used at least 3 different layout engines, including the current Presto engine.

Meanwhile, Mozilla possesses a long history with third-party developers. Until recently, Firefox was simply the icing on top of the “Mozilla platform”, a stack that included the following sub-browser features:

  • Gecko
  • Necko
    • Necko provides an extensible API for several layers of networking from transport to presentation layers.
  • XUL
    • XUL is the basis of user interface. It is an application of XML that defines various user interfaces elements, mostly widgets, control elements, template, etc. It is similar in many ways to HTML.
  • XBL
    • XBL allows one to define his/her own widget for use in XUL.
  • XPCOM
    • XPCOM is an object interface that allows interfacing between any programming language for which a binding has been developed
  • XPConnect
  • XPInstall
    • XPInstall is a technology for installing small packages like extensions and themes into Mozilla applications in form of installation archives known as XPI.
  • Web services

This allowed for third-party developers to plug into the processes which made applications like Firefox and Thunderbird work and look like they do.

This also resulted in “feature creep” and “code bloat”, two controversial terms which no developer wants to hear or talk about. Besides becoming a poster boy for the emergent FOSS ideology, Firefox – in fact, almost all applications which have been built upon the Mozilla platform – also became quite infamous for the attitude of its developers to the growing anger over the application’s regular consumption of memory.

However, no matter how angry the users have become with Firefox’s outstanding issues, the Mozilla developers have consistently expressed their desire for incremental improvement, rather than total abandonment of such oldened processes like Gecko and XPCOM, due to the reliance of third-party developers upon these technologies.

This leaves the Opera browser with a technical advantage over Mozilla. There is much less of an audience of third-party developers who depend upon the underlying platform of the browser, which is only licensed to software companies such as Adobe for usage in their Dreamweaver product.

What about the future of either browser?

I think that Opera Software is, at present, planning to phase the browser further into the background as their widgets platform, which is mostly based on web-standard technologies like CSS, SVG and eventually Theora, becomes bigger and more prominent.

However, the Mozilla corporation, with its recent moves (such as ditching Thunderbird, leading to accusations that Mozilla Corp. has become the “Firefox Corporation”), may also head in a similar direction as well. Mozilla has expressed an interest in the advancement of web services and web applications which will make use of Firefox-specific, rather than Mozilla-specific technologies; it sounds similar to the widget

Does this mean that Opera and Firefox are on their way to competing as browser-based application platforms?

So when should Opera go open source?

In my opinion, Opera should only go open source once their business and development initiative is no longer focused exclusively upon the browser, but rather on the applications which depend upon the browser and the technologies which stand upon it, rather than its runtime, for function purposes.

When that time comes, they will no longer be focused upon incremental improvement of the already-established underlying runtime technologies which allow for the widgets to function, and would need help from outside.

Furthermore, open-sourcing the browser and its technologies will allow for other browsers and widget platforms to stand upon the shoulder of a formidable giant, one which is designed for designers rather than developers. This will lead to greater adoption of these standards in consumer markets. Open-sourcing Opera, in the long run, will benefit the WWW more than it may benefit Opera.

However, that is a long ways off from right now, when Opera and Safari are far in front of the other, larger browser vendors and their technologies.

Firefox, as long as it rides on the coattails of the Mozilla platform rather than realize its own, will remain in lockstep with the platform’s failures and shortcomings.

3 thoughts on “Opera and Firefox – an explanation of “tactical open-sourcing”

  1. You always have the best things to say about all these subjects. To be honest, I’m more informed of some things because I read your journal. 😛

    I have a question, though. Firefox, despite its memory inefficiency, is still a popular browser for *nix users– an operating systems priding themselves on their efficient use of memory (so many are live-bootable and run 4 times better than the most memory intensive OSes like Vista). So why do they continue to use it? Is it just because its open source– as with *nix operating systems– so the individual user still has power to completely personalize, or is it preferable due to being in use for so long that long-time users refuse to give it up for more efficient programs because of familiarity?

    I use firefox, myself, more out of familiarity than anything else. I would move to Opera for memory use (since I’m normally an efficiency freak) but its just different enough that I wouldn’t want to put forth any effort right now to learn it along with some Linux operating systems that I’ve gained interest in (Ubuntu and its versions as well as some other live-bootable systems) where the default browsers are already different from firefox. So, in your opinion, which would be better to use for all-around purposes?

    1. Depends. I suspect that the majority on Desktop Linux distros use Firefox because of either or both of these reasons:

      1) They’ve recently moved from Windows to a GNOME desktop, and Firefox (the default browser on GNOME) is the only application that they’re barely familiar with.

      2) They’re already Firefox power users – extensions, themes, Greasemonkey userscripts and all. They’re in *way* too deep with it.

      Otherwise, it’s probably not a big draw to those who are FOSS developers; if they’re on KDE, they’re probably more drawn to the likes of Konqueror and its underpinning technologies, since KHTML (the native HTML engine for KDe) is used in other KDE-native applications.

      Epiphany, GNOME’s in-house browser, is a GTK+ wraparound for Mozilla’s Gecko layout engine, which, just like the Camino browser on Mac OS X, only takes advantage of desktop-native features and not those of the entire Mozilla platform (no XUL for Epiphany). In terms of usage, it has languished behind Firefox on GNOME for the last few years because, well…..it just doesn’t have the extensions.

      Last thing I heard, Epiphany’s developers have contemplated a move from Gecko to Apple’s WebKit platform, which is forked from some of KDE’s technologies, including KHTML. KDE also plans to merge WebKit into KDE4, which is planned for release by next month.

      WebKit, which is used in Safari for Mac and Windows, is supposed to be leaner in code size than Gecko, while being more robust and standards-compliant than KHTML.

      So, TBH, there are a few choices for web browsers on Linux. There’s Konqueror (thoroughly KDE-native, file manager), Firefox (cross-platform, Swiss Army knife browser), Opera (standards-compliant, widgets), and Epiphany (GNOME-native, doesn’t do much).

      And then there’s Lynx. 😛

Leave a reply to kapu Cancel reply