Rich Internet for Everyone (RICHIE) Network: United XAML - XUL Alliance - XUL News - XUL Forum - The Richmond Post - RichCon 2005
The Richmond Post Logo
Chronicle of the Xul Revolution
« Poll: What is Your Scripting Language of Choice for XML UIs/XUL? | Main | XAML4J Tutorial - Let's Swing, Shall We? »
XUL Titan Interview: Nigel McFarlane (of Mozilla XUL book fame) - Part I
posted by Gerald Bauer on July 01, 2004

Welcome back to the XUL Titan Interview series. Today let's welcome Mozilla XUL author extraordinaire Nigel McFarlane.

Q: Can you tell us a little bit about youself?

Nigel McFarlane: I'm a technologist and communicator with a programming and science background. I've worked mostly in highly technical areas like telecommunications and databases and in the structural aspects of application architectures.

Q: How did you stumble onto Mozilla's XUL?

Nigel McFarlane: I've been writing about Web browsers since 1996 or so. Mozilla's XUL has been on my watch list for a long time. It was clear that in Netscape Communicator 4.x that something was going on in the GUI area. At that stage we could only use object analysis tools to peek inside the product's structure. Once the source code was released to the public, the internals slowly became more clear.

Q: How did you get started on writing a book about Mozilla's XUL?

Nigel McFarlane: It helps if you've written a book before - that way you have some idea of the process and the landscape. I'd been through the process at least 3 times already. Basically, I just decided to take it on as a project. I knew it was a very big project, but challenges suit me.

Q: Can you tell us what topics your Rapid Application Development with Mozilla book covers?

Nigel McFarlane: Well, it provides a tutorial, conceptual overview and introductory reference to a large number of Mozilla technologies, chiefly XUL but also running through JavaScript, RDF, XBL, XPCOM and XPInstall, as well as some interesting subparts of XUL like templates.

Of the various XML UI dialects, Mozilla's XUL stands out for its maturity, robustness and deep integration with runtime objects. So the book covers a lot more ground than just a list of tags.

Q: Can you tell us some challenges you faced building the NoteTaker example for your Mozilla RAD book?

Nigel McFarlane: The existing material on XUL and other technologies was either patchy or non-existent when I started. I had already stared at the source code a fair bit, but I found that a lot more staring was required. Once I had that much straight in my head, the NoteTaker example was just a routine piece of implementation work.

Q: Can you tell us some challenges you faced writing about the Net's best kept secret (that is, XUL)?

Nigel McFarlane: For books, there's the little matter of convincing a publisher that you're not crazy. Other than that I'd say that invective from Microsoft evangelists is the only minor negative I've noted so far.

I'd say a challenge with XUL at the moment is the huge ideological split between your writings and the writings of core Mozilla people. The kind of partisan bickering and rhetoric that goes on provides no-one with any real credibility and makes everyone seem smaller. Plenty of opportunities are lost that way, too. I can't see any benefit in it.

Q: Can you tell us what tools you use to build your XUL apps? Can you recommend some tools that help in building XUL apps?

Nigel McFarlane: I'm an advocate for thinking and planning, but that's just my style. The Mozilla DOM Inspector, the Mozilla JavaScript console and a text editor are enough for me. I don't personally like interactive debuggers, but I do like other tools. I'm still looking for a validating XML editor that has a form factor that I can live with.

Q: What's the hook? Why would anyone use XUL over lets say classic toolkits such as Gtk+, Qt or Tk?

Nigel McFarlane: XUL supports fast, iterative development of GUIs, with easy modification after application completion. That's a very important combination for GUIs, because GUIs are very subject to change. You don't want a technology that locks the GUI down so that it can't be budged.

That argument knocks out Gtk+ and Qt in their raw form. The problem Tcl/Tk has always had is that it's a bit isolated and unusual. The Web development paradigm that applies to XUL brings a number of well-understood standards to the party (XML, CSS, ECMAScript, HTTP, etc). It's a more familiar environment for learning in.

Q: Can you tell us how someone interested in XUL can get started? What books, articles or online resources do you recommend?

Nigel McFarlane: Well, I shamelessly recommend my own book. Fortunately, so too do the majority of Mozilla readers that answered a poll on Mozilla books at

CSS and JavaScript are the most important non-XUL technologies to absorb. Basic web development is the easiest path to XUL. Or you could try a little XML plus objects first.

If I need to learn something new and unusual, then lurking on a newgroup, mailing list or forum works for me. Participation, even if only as audience is a fairly painless way to learn anything.

On the technical side, I recommend newcomers just take a look in the chrome directory that is part of any Mozilla install. There's a world to explore in there if you have a simple tool like WinZip or unzip or file-roller handy.

Q: Can you highlight some applications out in the wild using XUL?

Nigel McFarlane: Well, Komodo's ActiveState is the best known, next to the Mozilla Browser, Firefox and the other Mozilla Foundation projects. Also there's the hundreds of Extensions and Add-on for the core Mozilla products. And the in-progress NVu HTML editor.

None of those are "traditional" applications though, whatever that means.

Several people have shared with me their fancy application screenshots, but everyone's a bit coy about keeping their technology lead quiet at this stage. No doubt that will change as soon as the first horse bolts out the gate.

Thanks Nigel McFarlane. Check back next week for the second part of the XUL Titan interview with Nigel discussing the state-of-scripting for Mozilla XUL, how XUL and HTML fit together, if and how mere mortals can deal with RDF, what's Nigel's take on the WHAT-WG initiative, and much much more.

Links and Selected Articles:

SourceForge Logo Please send comments on our web pages to our public xul-talk mailinglist or to a member of our web team. Copyright © 2003, 2004, 2005 Open XUL Alliance