Shedding the Past

I know it seems wrong: I’ll often begin to review a product, design, or specification with a preconceived notion of how the review will turn out. Frequently, the results of my detailed analysis will bear out my original biases. I’m still confident that my initial slant doesn’t change my process, because occasionally, when I resurface from my analysis, I’ll find my original opinion has completely changed. Such was the case when I heard about the imminent release of the Netscape 6.0 browser. "A bunch of new features tacked onto an also-ran browser," was my initial thought. "Too little, too late." I was wrong.

Netscape is late. Maybe even too late. Before I began looking at Netscape 6.0, which is based on Netscape’s Gecko technologies, I’d heard from a number of former Netscape clients who had given up on the company and switched to Internet Explorer 5.0 (IE5). Why Netscape chose to essentially skip its own 5.0 release -- 5.0 never came to market -- at a time when its product had poor support for cascading style sheets (CSS), a deprecated layering system, and a half-hearted stab at the document object model (DOM) is anybody’s guess. Maybe the AOL acquisition caused them to take their eye off the ball.

But Gecko is not just another pile of features in a bloated set of DLLs. Like its namesake lizard is wont to do, Netscape shed the skin of its previous, non-conforming browser in favor of a small, modular browser that supposedly supports most of the key W3C standards and drafts. These standards include HTML 4.0, ECMA-262 v3 (JavaScript 1.5), DOM-1, XML parsing, CSS-1 including XML rendering, and resource description frameworks (RDF). To top it off, Gecko is open-source and available at no charge. I reviewed the milestone 14 build of the Mozilla Gecko build.

While I didn’t personally perform a standard-compliance test, a number of CSS pages that once worked exclusively on IE5 rendered correctly on Netscape 6.0. Netscape provides its own test results that demonstrate that the new browser exceeds W3C compliance of IE5 in dozens of areas. In my own testing of the beta release, I found a problem with right-justified text within input boxes: They switch to left justified whenever the contents are edited.

Regardless of the capabilities of the new browser, one must wonder how Netscape will recover the market share it lost to IE5. Because Gecko technologies are modular, free, and open, and because the license expressly allows the Gecko products to be included within other products, it is likely to find a home within many major vendor product lines. Netscape reportedly has agreements with IBM, Intel, Liberate, NetObjects, Nokia, Red Hat, and Sun Microsystems. Then there’s AOL, Netscape’s owner, which has a few browser users of its own. AOL is committed to using Gecko technologies in all of its products, including CompuServe, Instant Messenger, Winamp, and Spinner.

As a developer, you should care about Gecko because it provides the possibility of creating client-side JavaScript solutions without constantly jumping through cross-platform coding hoops. It is now rare to find a JavaScript book today that doesn’t immediately digress into techniques for supporting the various inconsistencies between Netscape and Internet Explorer. To me, it seems ridiculous that the premier software building technique of the new millennium involves constantly checking the browser ID prior to executing any block of code.

Sure, other techniques are available to decide which blocks of client-side code to execute. We can provide a bulky compatibility layer to homogenize the capabilities of the various browsers, or we can use dynamic server pages to deliver different content depending on the requesting browser type. But it all boils down to Web developers spending big chunks of their time solving the same compatibility problem, page after page. We should instead be focusing on delivering solutions for our customers.

Like a chameleon, Microsoft has often appeared to blend in with Web standards without actually fully supporting them. And although Microsoft has led Netscape in its apparent support for Web standards, it must now shed the illusion in exchange for the real thing. Developers should make it clear to Microsoft that we want a browser, like Gecko, that implements the current W3C standards. Once a standard platform for delivering dynamic client-side content is established, Web developers will finally be free to shed their own skin: from belly-crawling coders that are constantly aware of their target platform, back to the highly evolved solution designers we were prior to the Internet revolution. --Eric Binary Anderson has led projects at a number of enterprise software companies and is currently the senior architect at IBT financial, an Internet-based training company in Bend, Ore. Contact him at