Browser Innovation, Gecko and the Mozilla Project
Mitchell Baker
The Big Picture
The goal of the Mozilla project is to promote innovation and enable the creation of standards-compliant client technology to help keep content on the web open. The key to open content is not any particular browser application, but openness, standards compliance and cross-platform technologies. The more people who use browsers based on open, standards-compliant technologies, the better the chances we will all enjoy viable choices in the way we conduct digital transactions.
To meet this goal, mozilla.org hosts the development of key components necessary to develop applications that make use of the web. These include Gecko, our rendering engine, which takes data from the server and displays it for the user; JavaScript, a scripting language standardized as “ECMAScript,” which is ubiquitous in both web pages and server applications; and XUL (pronounced "zool"), an XML-based language for creating cross-platform applications.
Mozilla also hosts and/or supports the development of a number of browser applications. Mozilla 1.0 was released last June to great reviews and has continued to mature since then. (Some of the improvements since the 1.0 release can be found in the 1.1, 1.2.1 and 1.3b release notes.) Mozilla 1.0 includes browsing, mail/news, web-page editing and chat applications, as well as a framework for application development. Other Gecko-based browsers include K-Meleon, a browser for the Windows platform, Galeon, a browser for Linux's GNOME desktop environment, Epiphany, an additional browser for GNOME, and AppMac's set of three Gecko-based browsers for Mac OS X. In early 2002 the Chimera project launched a web browser for the Mac platform, combining Gecko with Apple technology to create the native Apple "look and feel." An experimental project known as Phoenix to create a leaner browser-only application for the Windows and Linux platforms was also initiated at mozilla.org in 2002. Mozilla-based browsers aimed at specific markets and task also exist, including a new XUL application geared specifically to browsing the Amazon website. The Gecko layout engine is also used by a range of companies and projects to bring web-browsing capabilities to other types of applications. Mozilla.org has always supported these efforts and viewed these projects as completely complementary with the goals of our project.
(The name "Chimera" is being retired. Beginning with the 0.7 release the project will be known as the Camino project, and the browser as the Camino browser. The rest of this document will no longer use "Chimera" and will instead refer to the Camino project and browser.)
Innovation in browser design is a cause for celebration. One key goal for the Mozilla project has been to create an open source browser that would serve as a base for innovation, and we accomplished this goal with the Mozilla 1.x application suite. The technology now exists for a flowering of innovation. The key infrastructure, including Gecko, is robust, proven and available to anyone. JavaScript and XUL significantly expand the set of developers able to create browsers and other applications. Mozilla.org welcomes exploration in browsers and the search for new and better ways of coping with the massive amounts of data available on the web. Exploration, innovation and the expansion of creative potential are among the great benefits of the open source development model.
In addition to the Mozilla-based browsers, Apple has recently launched its own browser for Mac OS X, known as Safari. It may be that the majority of Mac end users will end up using Safari because it comes with the OS, just as many people end up using IE because it comes with the Windows distribution. Some see this as traumatic or as a mark of doom. But the Mozilla project understands that almost everyone in the US market (and a substantial percentage of the international market) receives Internet Explorer when they acquire a computer, and our job is to provide an alternative. We would have preferred to have Apple use Gecko or collaborate with us on the development of the Camino browser, but providing an alternative to an OS-sponsored browser is nothing new to us. The key goal of the Mozilla project is to help keep content on the web open and help keep access to that content from being controlled by a single source. Apple's decision to ship a browser based on an open source rendering engine, with a focus on standards compliance, is a good thing for the big picture goal.
Gecko
Gecko is the premier cross-platform, full-featured, mature and well-tested layout engine available, providing robust and high quality support for a massive array of standards. Its ability to render web content correctly is exceptional.
The release of Safari has generated some discussion of Gecko's complexity and performance which bear addressing. Gecko is large and complex. We would like Gecko to be smaller and simpler and we're working on it. Elegance, like speed, is sexy. But simple and elegant must be weighed against the need to cope with web content as it exists today. And web content today is not simple, not elegant and not standards compliant. Today's web requires a rendering engine to do gymnastics to understand the wildly varying ways in which websites operate. Gecko performs these gymnastics with exceptional precision.
Everything we've seen suggests that KHTML has a ways to go to catch up with rendering real web pages. At the same time, Gecko should become smaller and simpler. We've seen significant improvements during the last year, and we anticipate continued refinements. We've achieved an exceptional ability to render the web, now we're looking at maintaining that compatibility while eliminating unnecessary overhead.
The particular performance data released by Apple for the Safari and Camino browsers have limited implications for Gecko performance for several reasons. First, the version that Apple tested, was the 0.6 release, which is built on an old version of Gecko. The Camino project began using a branch of the Gecko source almost a year ago and has not yet updated to a newer version. This means that the 0.6 does not contain a number of the performance improvements made to Gecko in the last year. The Camino team plans to move Camino to the current version of Gecko in the 0.8 timeframe, after which Camino will better demonstrate Gecko's capabilities and potential.
Second, the scope of content a browser knows how to render can also affect its performance. A browser that knows how to render advanced CSS2 style rules, for example, is liable to take more time to display a page using those rules than one that doesn't, since browsers ignore code they don't understand. Gecko's support for standards-based and non-standards-based pages is unparalleled. This ability to render pages correctly--one of Gecko's significant benefits--may come at a small price in performance, but it is a price likely to be paid by other browsers as well as they develop Gecko's level of sophistication.
Third, browsers can be tuned for various, sometimes conflicting goals. Browsers may use techniques to improve perceived performance (how fast the browser feels to the user) at the expense of the actual load performance. For example, Camino displays a portion of a web page before the complete page has finished loading. This technique drastically improves the perceived performance of the page for users, who can browse a portion of it much sooner, even as it reduces load performance. There are no tests for measuring perceived performance or comparing it between browsers, but anecdotal evidence suggests that Camino is at least as fast as Safari at browsing the web.
What is clear is that both Camino and Safari are wicked fast browsers. This is excellent news. In addition, Safari uses code and ideas from Gecko, and high quality ideas from the KHTML/Safari world will make their way back into Gecko. This brings benefits to both layout engines. The big picture question is the performance of open alternatives compared to that of the dominant Internet Explorer browser, and the open source community can share satisfaction as the open alternatives continue to improve.
Gecko and XUL - a potent combination
The Mozilla project believes that cross-platform technology is a critical element in today's environment. Control of the desktop by a single platform is an enormous danger to the ability of citizens and consumers to have free access to the web. In the Mozilla application suite, both the rendering engine and the application itself are built as cross-platform technologies. It is critically important to allow developers to focus on a monopoly platform and simultaneously create applications useful on other platforms.
The combination of Gecko and XUL make this a reality. "XUL" (XML-based User Interface Language, pronounced as "zool") is Mozilla's cross-platform user interface language. The combination of Gecko and XUL provides two great advantages. First, it expands the range of people who can actually create useful applications. It is now possible to use the same technologies that are used for creating web pages, such as CSS and JavaScript, in conjunction with XUL to create an application. This means that a savvy web developer can now create sophisticated applications.
A second great benefit of the Gecko-XUL combination is that it results in cross-platform application running on a cross-platform rendering engine. A XUL application may be written with the Windows audience in mind. But this same application can be run on the many platforms for which a Gecko-based browser exists without the developer rewriting the application. This allows those who use other than the Windows desktop to enjoy the applications written by those who may focus on the Windows monopoly.
In some cases a XUL application has a "look and feel" very similar to that of an application written for a specific platform. For example, Mozilla's Phoenix browser on Win XP looks and feels very much like a native application. A platform that has a set of highly distinctive elements may find XUL applications to have less than a completely native look and feel. But a number of platforms lack adequate market share to expect many platform specific, full-featured applications to be written for that platform, and XUL provides a way to enjoy applications written primarily for other platforms. In addition, Mozilla provides a simple mechanism for customizing the interface with themes. Themes are a collection of CSS and image files packaged for easy installation in the Mozilla application. Users can download and install dozens of themes <http://themes.mozdev.org//> to customize the look and feel of the browser's UI, the toolbars, the buttons, scrollbars and other UI elements. Themes are also cross-platform.
XUL provides an excellent answer for organizations with heterogeneous computing environments. Customized XUL applications with significant business logic can be written once, and used on the range of platforms that may exist within the organization. In addition, if the organization maintains sophisticated, interactive websites, it will already possess a wealth of technical expertise that will be relevant for creating the XUL applications.
In addition to its cross-platform nature, Mozilla's plug-in architecture offers enormous benefits. Through this plug-in architecture one can easily download and install add-on packages [ http://www.mozdev.org/ ] like mouse gestures, pie menus, google bar, etc. etc.
Some Further Thoughts on Camino and Safari
Camino and Safari are different types of efforts, with different development methodologies. Camino is an open source browser developed through an open source project. The source code for the entire application is available, the bug and project management database is open, and the exact status of the code can be determined at any time through our automated build system with its web-based front end known as "tinderbox": http://tinderbox.mozilla.org/showbuilds.cgi?tree=Camino. Code that has been checked in can be determined at any time using "Bonsai," our web-based tool for CVS: http://bonsai.mozilla.org/. Our code can be viewable and searched by interested parties at any time using the tool known as "LXR" http://lxr.mozilla.org/mozilla/. Mozilla.org provides daily pre-compiled binaries for testing so developers/testers/users can participate in the leading edge of our development.
Mozilla.org projects are driven by the people who contribute to them and use them. Participation in the project is open to all those qualified. Even more important, leadership and decision-making authority [ http://www.mozilla.org/hacking/ ] can be earned by those with the requisite technical savvy and level of participation in the project. In other words, Camino is developed by the community, as in the classic open source model. It is not based on the perspective of a single vendor. Camino has received excellent reviews, and has a large and contented user base. Camino users across the world have clearly expressed their belief that Camino is a great browser with features and performance unavailable in any other product. Tabbed browsing and customizable toolbars are just a sample of the features Camino offers that attract devoted users.
Safari is a browser built on top of open source technologies. While Safari uses those technologies--KHTML from the KDE world, parts of the "view manager" from Mozilla, and perhaps others as well--it combines them with other, closed-source technologies to create a closed-source browser application. Some of the features Apple highlights for Safari appear to be developed through a traditional closed development model. In other words, Safari is built using open source technologies, but it is not an "open source browser."
Current information suggests that Apple will work with the KDE project in connection with the KDE technologies Apple uses, while still developing Safari internally and making decisions about its development in line with Apple's business model and view of its situation. The Mozilla project actively supports this model of development, where open source and proprietary software is combined into a single product or project. The Mozilla Public License [ http://www.mozilla.org/MPL/MPL-1.1.html ] includes provisions explicitly allowing this, and the Mozilla project welcomes the participation of projects and companies that choose this model. Many companies and projects do exactly this with Mozilla technology, using that technology as part of a product which may also include other open source, free software, and/or proprietary technology. This represents Mozilla's goal of creating an open source project based on technical merit, peer review, and other open source development principles, as well as coordination with commercial entities that build and ship Mozilla-based products.
So the Safari model of a closed application built on top of open source technologies is in no way a bad thing. It is, however, different from Camino, whose development is not based on the perspective of a single vendor. Some may like the focus that comes from a single decision-maker with a clear view of its business and aesthetics. Others may prefer the world of distributed decision-making and community development found in the Mozilla project. For those who wish to participate in a community-based, open source browser development project, Camino is the place to be.
Web Browsers Matter
The web is becoming increasingly integrated into our lives as more and more critical financial, health and other personal information is managed through web-based transactions. Browsers are the mechanism through which individual human beings access and manage this digital data. We don't yet know what new innovations will be possible in this arena. New innovations should be judged on their own merits, on their ability to benefit human beings, and not solely by their effect on the business plans of one or even a few companies. Mozilla.org remains committed to a world-wide-web based on open standards and developed for the common benefit. We provide world-class software and technology to promote this vision.
Come join us.
Copyright © 1998-2003 The Mozilla Organization.
Last modified March 7, 2003.