Mozilla's Design Principles
In addition to being a kind of giant "switchboard" for
connecting together the developer community, we feel that
one of the most useful roles mozilla.org can
play is that of advocate. The number of people who want
to work on the Mozilla code can be huge, and so we will try
to use our pulpit here to build consensus on what we see as
the most important issues and thereby arrive at some kind
of coherence in the direction of development. You could
think of these as the documents that describe the "core
values" of the project.
- Unity of Interface
- This essay exhorts you to keep in mind what we
perceive to be Mozilla's greatest strength that it uses
the same interface for the same task, regardless of how
the service is implemented on the other end. We believe
that consistency in the user interface is a big part of
what made Mozilla the success that it is today.
- Internationalization
- This document explains what Internationalization and
Localization (I18N
and L10N) are, and why
they should matter to you: why it's important to write
code that is localizable and works with all languages,
and how the existing infrastructure in the source can
help you do this.
Essays that may be found here in the future include:
- Cross-platform code
- Why it's a good thing; an appeal to not fragment
the user base with gratuitously system-specific
improvements; why "it works for me" is not a long-term
plan for survival. (For technical details, check out
the C++ Portability
Guide.)
- Modularity
- An appeal to add infrastructure before adding features;
suggestions on how one can do both at the same time; how
to write a good API. (For technical details, check out the
Extending Mozilla
document.)
- Backward compatibility
- Why keeping old web pages (and code) working is of
utmost importance; how to create a new API without
breaking the old one, and why you should care; why mom
and pop need your help more than the developers of the
world.
No doubt many of you will see these as obvious and we will
be preaching to the choir; and that's great. The purpose of
these essays is to lay out those tenets we believe to be most
important to the goals of this particular open-source software
project: to produce code that is of the most utility to the
largest number of people.
Contributions of editorials are, of course, welcome. If you
would like to write one, let us know.