A New Lizard - Gecko: A Smaller, Faster Lizard - HTML with Style
Gecko: A Smaller, Faster Lizard
A New Lizard
Let me tell you a story. I was sitting at my desk when I decided to download Gecko and have a look at it. I clicked on the link and the download began on my 36.6kbaud modem. While Gecko was being downloaded, I sat down and wrote a short e-mail to my editor explaining why my latest HTML with Style tutorial was late. It was late because I was trying to figure out exactly how Microsoft Internet Explorer 4.0 and Netscape Navigator 4.0 handle the CSS box model, and for every bug in the implementation that I thought I had figured out, ten more jumped up and leered in my face. I was very close to just junking my draft article and posting something along the lines of "Explorer and Navigator do arbitrary, random things with the CSS box model that have only a vague relation to the specification. Try writing whatever looks right and mess around with it until it works." This has always been my tactic up to now anyway, and this is what most people do when they design Web pages. Mess around with them until they work.
By the time I'd completed that short e-mail the download was complete. What?, I thought, this whole thing is only one and a half megabytes? I unzipped the file and ran the executable, and up popped a little window that was reminiscent of Netscape Navigator.
That was accompanied with a little text mode window with the following:
Talkback loaded Ok. Alert: This is a pre-release copy of Mozilla that will expire at . This is ALPHA SOFTWARE. It has not been tested at all. It may delete all your files and smoke your hard drive. YOU HAVE BEEN WARNED. Reading file... Reading file...Done Reading file... Reading file...Done
This is Gecko's console which is used while the program is still in Alpha to display messages about what Gecko is up to at any point. Though it does exaggerate a bit (the odds that Gecko will actually smoke your hard drive are rather small) it points out that this is not a production release, not even a beta release, and is there only for those with the time and interest to test it and report bugs, and also get a taste of things to come.
The first thing you'll probably notice is that most of the user interface features you're used to in Navigator don't actually work; from the button bar, only the Back, Forward, Reload and Home buttons actually work. There are no Bookmarks, no "What's Related" (though some might argue that that is a good thing...), the menus are few and have only a couple of items, and the Communicator bar at the bottom right doesn't work. Gecko has no superfluous capabilities. It just fetches Web pages and displays them. The rest of the stuff in the Gecko window is just there for decoration, and to show what the finished Mozilla browser will look like. But I'm getting ahead of myself; we'll take a look at Mozilla later on.
The spartan functionality is used not because the developers have decided to remove these features. Gecko is not a browser; it is only a layout engine (and part of the XPFE, which I will talk about later on). A layout engine is the core of any browser; it parses and displays Web pages on a piece of screen. Everything else, such as bookmarks, history and so on are just add-ons that make your life easier, and are present in the full Mozilla program. Gecko is just the layout engine. But why? Why has Netscape decided to start up its hype machine with only a fraction of the full program's capabilities?
The answer is that Gecko is not meant to be used only as a stand- alone program, nor is it meant to be just part of the finished browser. Gecko is an embeddable component. It can be used by any application developer to add Web browsing functionality to their application. For those who know what this means, Gecko can be used as an ActiveX control and embedded in any application, even puny Visual Basic ones (go ahead, flame me). In fact, if you're using a browser such as Internet Explorer 3.0 or later, which supports embedding ActiveX controls in Web pages, you can have Gecko in a Web page! But once again, I'm getting carried away.
The second thing you'll notice is that the Web page looks different than it does on Navigator 4.0 (or Internet Explorer 4.0 for that matter). The paragraphs in the main text have different styles for the first letter and the first line, the word "Gecko" in the title is expanding and contracting (a neat Dynamic HTML effect impossible to achieve before now without expending a lot of effort), and the page is reflowed if you resize the window. All in all, pretty neat. Gecko has a lot of new features and capabilities, and these two tiny little gizmos are only the tip of the iceberg. Gecko supports HTML 4.0, CSS1 and a lot of CSS2, XML, RDF, W3C DOM Levels 0, 1 and part of the unpublished Level 2. But hey, I'm getting ahead of myself again! Gecko is incredible, but I should tell you about it one thing at a time. Let's take a look at how Gecko came about in the first place.