Maybe Netscape's TABLE extensions really are good for something after all ...

... but they sure are slow.

[[ I created this page just a couple of days after the first beta of Netscape Navigator v2 appeared ... the release that first included support for tables. HTML for tables had been designed on a public W3C mailing list, but Netscape couldn't resist throwing in some extensions, in the form of these beveled borders. I was revolted, but then had the idea that -- although beveled borders are abominable for real tables -- they might be useful for interesting visual effects.

I don't remember the details, but when I first loaded this, Netscape locked up completely (not even the throbber was moving) for about 6 minutes, at which point it crashed. Whoa! It was pretty clear that they were using a horrifically inefficent algorithm for auto-sizing nested tables. (It was pretty easy to make some guesses as to what that algorithm was, in fact.) I reported the bug.

And continued to report it, for every beta and production of release of Netscape until I gave up sometime in the 4.x series. It may seem like just an edge case, a bug that doesn't matter. But then portals came along, and other sites that used nested tables for layout. You could see and feel the impact of this bug when loading My Yahoo!, for example. When Internet Explorer came out with table support, it handled the ziggurat just fine. Many real-world web pages loaded a lot faster in IE. Meanwhile, the algorithm in Netscape only got worse -- at one point loading the ziggurat could crash my Solaris workstation!

The ziggurat was featured on sites that explored "hostile" web pages, but that was never my intent. When Netscape opened the source to their browser and started the Mozilla project, I thought, "Now's my chance! I'm gonna go fix that sucker." So I checked out the source, found the offending module ... and blanched. Again, I forget the details, but the module responsible for table formatting was many thousands of lines long, and grotesquely complex. At the same time, programmers from inside and outside Netscape were beginning to have open discussions about the code, and table formatting was a big topic. They knew about the bug, of course ... but the code was so complex everyone had been afraid to mess with it. That module was one of many things that eventually led to the decision to scrap most of the original Netscape codebase and write Mozilla from scratch.

I'm pleased to say that today (early 2004) every current browser I'm aware of loads the ziggurat without a hiccup. ]]