Tale of a Tailed Lizard - Gecko: A Smaller, Faster Lizard - HTML with Style
Gecko: A Smaller, Faster Lizard
Tale of a Tailed Lizard
Gecko's history is an interesting thing to study in itself. I won't bother you with much of the background of its creation, as I've covered the current state of the Web browser industry in Tutorial 4, The Specification is Your Friend as well as the article HTML 4.0 in Netscape and Explorer. If you're interested in a summary and a few of my opinions, give them a quick look.
The release of Gecko to the public is merely a landmark event used to bring attention to how far the program has reached. In actual fact, Gecko has been available for several months now. Gecko is only a small part of the Mozilla project. Mozilla is the name of the Open Source version of Netscape Communicator. If you don't know what Open Source is, I'll give a brief explanation.
Open Source is a model for software development that has been around for many, many years now. In a sense, it is the original model for software development, which was at some point replaced with the model used in most of the industry today.
The computer programs you are used to can generally be categorized by the type of software license that accompanies them. You have commercial programs, such as most products by companies such as Microsoft and Corel, that come in a package with documentation and a binary for a specific platform (for instance Microsoft Office for Windows 3.1, for Windows 95, for the Macintosh etc.) and cost you a considerable amount of money. Then there is Shareware, where you can download a binary, use it under certain conditions (for a specific amount of time or with many features disabled) and then register by paying a registration fee to the author to unlock its complete capabilities. There is also Freeware, where the program is provided to you free of charge (examples include Microsoft Internet Explorer and Netscape Communicator 4.0) and Public Domain software, where the program is provided with no license and no warranty whatsoever.
Note that although most of these license types will not charge you anything specific for the use of the program, they do restrict your rights on the underlying software. In most cases, you cannot redistribute the software freely, even though you got it for free. In most cases you also cannot modify the software. And in all cases, you only get a binary version of the program; the source code remains in the hands of the company or individual who wrote the software.
Open Source software is different in that it provides the source code for the program for anyone to look at and modify. There usually are some restrictions to what you can do with the software, but contrary to other types of license they are used to protect your rights rather than limit them.
The general concept behind Open Source is that no one benefits from keeping source code private. Open Source software can be sold, and often is - there is a lot of money to be made by selling Open Source software, even though anyone can download it off the Net. Selling Open Source software makes sense because when you pay for a program you pay for a lot more than the program itself - you pay for packaging, delivery, the availability in stores, the documentation, customer support and warranties, all of which you don't get when you download something off the Net. So in theory (and in practice - a lot of companies are making it big right now selling nothing but Open Source software) the Open Source concept doesn't starve the software industry. On the other hand, having the source code available for anyone to examine and modify means that you get a staggering amount of people working on a program full- or part-time. This is an incredible boon; bugs get fixed almost immediately since anyone with programming skills who is annoyed by them can just look at the source code and fix them, or find someone willing to fix them if he can't program himself. If you want a feature, you don't have to wait for the author to create it - you just write it in yourself.
This concept has been working succesfully for years. It has created such incredibly succesful computer programs as Linux, the only Operating System other than Windows that is currently gaining market share, and Apache, the Web server used by more than half the Web sites on the Internet. And now it has created the most revolutionary Web browser ever.
Open Source is not the topic of this article, but it's important to learn about it in order to understand why Gecko can do all the things it does. It is small, fast, powerful and full of properly implemented features because many of the people working on it had a vested interest in making it so not because they wanted to market it but because they were going to use it. The same people (yes, that includes me) that have always been complaining about this or that in Navigator now have a chance to put their money where their mouth is, so to speak. If you want to learn more about Open Source and read the views for and against it, visit opensource.org, the home of Open Source on the Web.
Netscape announced the decision to make Communicator an Open Source project on January 23rd, 1998. There was much press and celebration concerning the event, and the usual slew of criticism, a lot of which originated from Microsoft. Netscape set up Mozilla.org, an organization that is in charge of developing Mozilla, the name given to the Open Source version of Communicator. On March 31st, 1998, the source code was released to the masses. It was a historic day. There was even a way cool "Free the Lizard!" T-shirt and Jamie Zawinsky, Netscape's infamous hacker (don't worry, I'm sure he loves being called that), hosted a party in San Fransisco to celebrate the event that had people coming in from all over the world. Netscape employees took upon themselves the task of organizing and directing the work done by thousands of programmers, most not employed by Netscape, on Mozilla.org.
Mozilla was promptly broken up into smaller, more manageable modules (such as the layout engine, the user interface, the mail and news client, the editor and so on) and people started coding, testing, fixing, tweaking, improving, and most importantly releasing their work for everyone to review. One of the biggest splits was that between the main Mozilla browser and the layout engine, which was initially codenamed Raptor, then renamed to NGLayout after the name Raptor ran into some trademarking ambiguity. Initially, it was planned for NGLayout to remain separate from Mozilla until well after the 5.0 release since it was considered to be such a major product. But pressure from a lot of people who supported that a proper layout engine was the most important improvement needed in Navigator as well as indications that NGLayout would be ready for the 5.0 release after all made Netscape decide to include it.
And now we have the first release officially given the nod of approval by Netscape. Gecko is, essentially, NGLayout, as well as part of another Mozilla module, the Cross-Platform Front-End, or XPFE. XPFE is still rather early in its development, and I will talk about it in the section on Mozilla, but the main purpose of Gecko is to showcase the power of NGLayout, and generate some attention by an industry that is used to having landmark releases rather than having to keep up with changes that happen to an Open Source product continuously. And if the purpose of Gecko is to impress, then it has succeeded beyond anyone's expectations. Read on to find out why.