Cool XUL Provides Cross-Platform UI
Eric Krock from Netscape presented a session Tuesday afternoon on the XML User Interface Language, XUL (pronounced "zool"). XUL is part of the Mozilla open-source browser project.
Krock said that the maturation of W3C XML standards and support for them is what has made XUL possible. Reliable conformant implementations of the standards across platforms can finally enable a truly cross-platform UI toolkit to be built on top of them.
XUL itself is not framed as a standard; rather it is a technology invented by Netscape and Mozilla.org. Krock said that, after the Mozilla browser ships, Netscape intends to submit XUL as a potential standard. He was taken up on this sooner than he expected: in the question-and-answer session afterwards, a representative of the W3C Working Group on XForms asked for someone working on XUL to join the group.
So what does XUL do? Essentially it provides a language to describe a user interface, with many more widgets than are provided in HTML itself. Such widgets include tree controls, scrollbars, and splitters. A user interface description ("package") contains various elements that control the interface appearance and behavior:
- Content: the description of the widgets in an interface
- Appearance: CSS styles dictate the appearance of the widgets
- Locale: interface localization information
- Platform specifics information
XUL is implemented from within the Mozilla browser: it is in this framework that XUL applications run.
What applications of XUL currently exist? The primary application of XUL at the moment is in the Mozilla browser, where all the user interface widgets are implemented using it. This means that in Mozilla all the style and chrome (interface "furniture") can be controlled using XML, CSS, and other standards. Consequently, the Mozilla browser has "pluggable chromes": just plug in a different XUL package to change its look and feel. For instance, this is how the shipping of separate Netscape and Mozilla browsers will be affected.
Krock also mentioned the possibility of dynamic server-cached user interfaces. In scenarios where a network connection is guaranteed, an application's user interface can be fetched from a server at startup time.
While XUL certainly gets the "Wow!" factor right, as Mozilla has not yet reached beta, it's still a little early to tell what impact XUL may have on the Web. It has the potential to simplify user interface construction and expand the number and variety of web applications, but ultimately it will live or die based on the adoption of the Mozilla browser.
More information on XUL: