more KHTML

In a recent post (which he then deleted, cause he says he's working on a more accurate version) David Hyatt elaborated on why they picked KHTML instead of Gecko. (Summary: I was right.) It included these choice quotes:

Here are the two function protoypes that David Baron linked to. I think they pretty much illustrate the point perfectly.

    KHTML:
    virtual void layout();

    Gecko:
    NS_IMETHOD Reflow(nsIPresContext* aPresContext, nsHTMLReflowMetrics& aMetrics, const nsHTMLReflowState& aReflowState, nsReflowStatus& aStatus);

And later, from David Baron:

Why is Mozilla's layout engine so big and complex? Perhaps the simple answer is that there were too many people available to write it, and they wrote as much code as they could. After all, they didn't have any incentives to keep the code small.

That's so true. Though I think "second system syndrome" is an equally important reason for Mozilla's total lack of urgency and closure: too many of the people involved (who liked to describe themselves as "architects", which is always telling) thought of the whole project as "finally, we get to rewrite it, but right this time!" and that attitude basically never results in usable, working code appearing before it's far too late to matter any more.

Tags: , ,

17 Responses:

  1. build says:

    Right, but Safari sucks and Chimera doesn't. Who cares if Gecko code is more difficult to use?

    • jwz says:

      Do you think all this code writes itself?

      • build says:

        Just because something is cheap doesn't mean you should buy it.

        Of course the code doesen't write itself. But there is an excellent open-source Gecko based Cocoa browser out there already. The work was done, all they had to do was add their UI improvements.

        • jwz says:

          Well, apparently their opinions are different than yours on how "excellent" it is. And their arguments were not only about code quality, but also things that users care a lot about, like startup time.

          Which one survives will depend on which one improves fastest, and responds to unanticipated future user requirements best, which is largely a function of which one can attract the better and more motivated programmers. Quality of the existing code is hardly irrelevant to that.

          • pexor says:

            Don't you love it when people make extreme statements of opinion as if they were facts; make extreme, yet unsubstantiated claims as if they were facts; and trivialize things they either don't understand or disagree with without being able to justify their disagreement?

            Unix sucks, Windows is awesome, writing operating systems is easy, it doesn't matter if they're hard to use as long as they get created, you're wrong, and I'm right. Don't *even* disagree with me, because I have the perfect rubber man/glue man retort ready.

        • ex_cortana says:

          Then again, Safari's improving already and the community seems to be embracing it for a few reasons: it's fast, it's pretty, it's (relatively) compatible. Yeah, it's not tabbed, but I could see how it could be done if the community wants it (and they do). There's a lot that Safari is that Chimera is not.

        • chanson says:

          I had been tracking Chimera - the "excellent open-source Gecko based Cocoa browser" - daily builds for a couple of weeks as of this Tuesday morning, eagerly waiting for the day it would be good enough to replace OmniWeb as my default browser.

          I made Safari my default browser on Wednesday morning. And I'm pretty picky when it comes to human interface design in software that I use - I've even filed a bug against iJournal for the wording of the buttons in an alert sheets.

          (What's even cooler about the KHTML-based WebCore framework in Safari is that Omni is likely to use it in OmniWeb 5, since their major issues have historically been speed and standards compliance. It'll let them continue to provide a great pro browser, while not having to worry much about the rendering engine or speed any more.)

    • rzr_grl says:

      Chimera doesn't suck?
      Riiiiiiggghhhht.

      • build says:

        To the Safari's credit, Memeufacture came up specifically on Hyatt's weblog as buggy, and the issues seem to have been addressed. (Proof that if you bitch loud enough, I suppose...)

        Chimera doesn't suck though. The javascript dom support and rendering seem spot-on, plus tabs work great.

  2. hfx_ben says:

    I'm looking at Hyatt's blog on the moz'zine site; at the moment this page covers from 7JAN till 6PM this evening (11JAN). It's good some nice stuff on DOM, CSS, and UA strings, and links to some intererting blogs. But I don't see that text you seem to have quoted. 'Sup?

  3. thesliver says:

    A lot of people seemed to think that

    a) The Bazaar means lots of people writing code on the same market stall with different bits of cloth.
    b) Better Architecture Means More Interfaces (I wish BAMMI meant something crude)
    c) One Size Fits All means baggy at the crotch and don't check the quality of the seams.

    • hfx_ben says:

      *ooh, news of theft from Heathrow ... $11M worth of P4!!*

      If I can't afford to make any payments on that chestfield set right now, will I be able to pay it off in a year from now? Maybe ... okay, maybe. But likely I'll get nailed with 12 months of 29% interest.

      It slays me that people actually buy into, "You may not have time to do it right, but you'll always have time to fix it." That sophistry is just ... sophistry. (Granted, it is sometimes true.)

      "Good enough" often is good enough, as an end result. But since I quite normally fall short of my initial goal, if I set out aiming at good enough I'm going to end up with gack. 'seems to me, anyhow.

  4. jcurious says:

    Apple is going to catch on to the "release early, release often" idea.. hell.. even if it's just for those people who signed on to thier dev network or whatever... I keep reading X,Y,Z have been fixed.. but I can't use/test it till apple releases thier next "beta".. blech

    • marmoset says:

      I was thinking about this earlier. It's already been demonstrated that (thanks to the way frameworks work on OSX) you can compile your own drop-in replacement versions for Webcore and JavaScript core), so presumably just placing the live versions of these on a publicly accessible read-only CVS server would be enough to allow reasonably technically savvy users to keep up with rendering-engine changes. The risk is that someone would do a "ChimeraKnight" with these and make it far too easy for people who really shouldn't be running pre-release software (those unwilling/unable to file meaningful/useful bug reports, journalists) to do so.

  5. hfx_ben says:

    Apple announced Safari, its KHTML-based OS X browser, at Macworld San Francisco this month. Total Votes So Far: 721. Thoughts?