February 7, 2007

Chicken Little 2.0

I guess people have been watching my talk, and they tend to focus on the end, where I mused about the future and Camino 2.0. I mentioned WebKit as a possible rendering engine and I mentioned the idea of crafting new versions for only the latest OS. Some have taken this to heart and are running around like I shot their goat. A few things are certain:

Gecko is a strength. Camino would be nowhere if its rendering engine sucked. Gecko has had the benefit of more than 8 years of development, and as part of that development, testing and exposure. AOL paid for QA to ensure that it correctly rendered over 98% of the net when they wanted to embed it in the AOL client. Anybody who thinks writing an HTML engine is easy is dead wrong. You spend years getting the last few percent, but it's in the last few percent that you make your users feel like they no longer have to worry their browser will be unsupported. To throw that away would be dangerous, it's what keeps us relevant. We say "Mozilla power, Mac style" for a reason, because it's true. I can't use Safari because the sites I care about just don't work. You can't overlook that.

Gecko is a liability. The architecture from day one was light years better than what we had (a grad-student project gone horribly wrong), but by no means was it well-designed. The horrible misapplication of COM, misguided pre-optimization, a singular focus on Windows, and a variety of other serious design flaws made Gecko difficult to understand and in some cases impossible to fix. The learning curve is immense (think Mt Everest), just ask my students every year; the look of terror in their eyes is proof enough. Gecko is as impenetrable and bloated as it is fast and compatible. WebKit, on the other hand, is sleek and svelte. It's approachable. It's really easy to fix bugs. If you ask developers which they'd rather work on, the ones who pick Gecko should get their heads examined.

So in my position, as the lead of a project trying to figure out a long-term vision, I'd be doing my development team a huge disservice to not consider all the alternatives. The easier it is for my development team to work, the better that is for users because things get fixed faster with less chance of mistakes.

What would you do? Oh..really? It's not that easy? Hrm. Who knew?

Posted by pinkerton at February 7, 2007 9:49 PM