The Internals of Gecko Are Not a Platform

A platform is a set of APIs that can be relied on to build something great/cool/whatever. The characteristics of a platform include stability, documentation, and good APIs (or at least good-enough). I’m very sorry that Daniel Glazman wants the gecko internals to somehow magically morph into a platform of stable APIs, but it doesn’t make sense to allow that to happen yet. The internals of gecko such as the serializer, plaintext editor, and other bits that Daniel wants to hack are just not good enough to make stable and platform-worthy yet, and are hardly documented at all.

I’m insanely proud of what Daniel has been able to do with a customized gecko! I know that we all want to see his gecko changes incorporated back into the codebase and future releases of XULRunner/Firefox; but that involves tracking the changes that happen on the trunk between 1.7 (which branched 4-April-2004) and 1.8 (31-October-2005), filing bugs, and getting changes landed in reviewable and testable chunks, just like any other gecko hacker has to do.

Finally, I’d like to mention that XULRunner was designed specifically with NVU (standalone composer) in mind: sure, XULRunner is still immature in that it doesn’t have all the deployment code written, but that doesn’t mean that it’s not ready now for NVU to ship it as a bootstrap mechanism and easily-built gecko deployment device. As XULRunner lead, I’m happy to help, and document that deployment strategy as necessary.

Atom Feed for Comments 5 Responses to “The Internals of Gecko Are Not a Platform”

  1. Attention Stream » BSBlog » Blog Archive » The Internals of Gecko Are Not a Platform Says:

    [...] BSBlog » Blog Archive » The Internals of Gecko Are Not a Platform [...]

  2. Matthew Gertner Says:

    You mean “internals of Gecko are not *yet* a platform”, right? Maybe I am missing something, but I thought that the goal of XulRunner was to “platformize” Gecko.

  3. Benjamin Smedberg Says:

    Matthew, my title is correct: the internals of gecko are not the platform; the platform is well-defined and well-documented APIs provided by gecko. There are internals such as nsIContent/nsIDocument that are not ever intended to be part of “the platform”.

  4. Matthew Gertner Says:

    So is it your vision that it will someday be possible to build something like Nvu using only well-defined and well-documented APIs built on top of the existing Gecko internals? Or do you think that some of the internal APIs will have to be repackaged (or even rewritten) in order for this type of deep customization to take place without modifying the underlying platform code?

  5. Benjamin Smedberg Says:

    The question isn’t really whether “my vision” allows the APIs needed by NVU to be frozen; the problem is doing the work so that the APIs needed by NVU are good/documented/stable. I’m sure that this could happen in a theoretical future, but somebody has to do the work and it unfortuneately can’t be me.

Leave a Reply