The bug count.
-
The Mozilla software, as it shipped on free-source day, has many many bugs.
We made the decision to release the source just as we were approaching the
drive towards beta 1 of the 5.0 product, so this set of features has not yet
been through the intense process of making it ready for the general public.
We decided not to wait, that it was important to move over to a net-based
development model as soon as possible.
Our goal was for 5.0 to be a high quality release, and it is a little
disappointing that we didn't get a chance to redeem ourselves after doing
4.0, which we allowed out of the building with more bugs than we should
have (but you never heard that from me.) We lose a chance for personal
redemption, but the net wins, because the 5.0 that the net works on will
be even more stable than we could have made it ourselves.
You may ask yourself, ``how did I get here?''
-
Mozilla 1.0 was a ``clean slate'' project, and a serious attempt was
made to design this piece of software in a way that would avoid many of the
problems experienced in the development and maintenance of Mosaic.
It was also developed from 0 lines of code to shipping product in seven
months. These two items are somewhat in conflict. Since then we have lived
under the philosophy that since the internet universe is changing
daily, the most important thing was to put technology in the hands of users
as quickly as possible, and to worry about refining things later.
In the face of great pressure to ship quickly, to make it work for people,
to add new features that initially seemed impossible to integrate, a strong
pragmatic viewpoint took hold. If you read the code, some of it may
not be pretty, but it does work.
You are doomed.
-
In order to write successful code in the Mozilla code base, you need to:
- Write code which compiles cleanly under many different compilers.
- Write code which runs on machines with 16 bit ints and 64 bit ints.
- Be careful not to write code which opens up a killer security hole.
- Understand the async-I/O-based flow of control and turn your pretty
algorithms inside out so that the rest of the browser still works while
your code runs.
- Know something about several different operating systems.
- Understand code written by several hundred people, with very little
documentation or support.
So you are completely doomed. But we've been doomed inside Netscape
for years and it hasn't stopped us from shipping some very cool software.
Don't let the fact that it is impossible stop you from doing cool stuff.