the insurance lizard's nerdy little cousin
in the beginning, the browser consisted of a much-less-complicated, more self-contained mass of code with a single purpose: displaying static pages on a computer screen. by evolving into an ever-more complex multimedia universe, the internet and web forced the browser to evolve, too. that formerly single-purpose software now encapsulates all manner of files, scripts, and other parts working in tandem. but central to all is the rendering engine (also called the layout engine).

this kernel serves as the browser's resident interpretive artist—a robotic one, though, that creates nothing on its own. rather, it follows color-by-numbers instructions it gets every time the browser downloads a web page. the firefox software robot, gecko, takes whatever content it encounters—image files, html, xml, or anything else—formats it as best it can according to the instructions from css, xsl, or other processing specifications, and displays the results on your screen. other browsers have their own rendering engines: microsoft internet explorer uses trident, opera has its proprietary presto, and apple safari uses webcore (khtml).

last year's launch of firefox 2.0 lacked the gecko version 1.9 rendering engine and its cairo graphics engine (a free software graphics library), two components many developers hoped would arrive in 2.0. the firefox community hopes that, ultimately, gecko will make processes such as size calculations for all page elements, whatever they may be (tables, images, or otherwise) significantly faster. the community also expects to see a performance boost when the engine and browser must handle dynamically changing content—an especially important improvement, because the css 2.1 spec allows for rendering of xml documents during download rather than strictly after. dropping support for obsolete platforms, including windows 95, 98, me, and all mac os versions below 10.2, should also quicken processing.

a discussion of the many ways that cairo will improve graphics speed and quality would exceed the scope of this piece, but a simple example should help illustrate. when zooming in on a page in firefox 2.0, the browser merely increases the font size, and that produces less-than-optimal visuals. cairo will actually enlarge the entire page.

making better use of memory has been another major goal for those developing firefox 3.0 and gecko 1.9. both fans and critics of the browser have accused it of being a memory hog. a lot of that piggishness comes from the built-in conveniences that users demand (and often take for granted), such as the caching that lets us quickly return to previous pages. you'll rarely find the causes of memory issues to be cut-and-dried, however. for one, they remain very dependent on the particular configuration of a pc and its browser. and, of course, third-party software can prove troublesome. one of the most innovative aspects of the browser—the ability it gives others to extend its capabilities—has proven especially problematic because of poorly written or compiled third-party extensions. firefox 3.0 developers have been paying more attention to memory, however, profiling exactly how the program uses it and, especially, how the browser interacts with software developed elsewhere. — next: prettying up