Cool XUL Provides Cross-Platform UI

Cool XUL Provides Cross-Platform UI

by Edd Dumbill
February 29, 2000

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
  • Behavior: specified either in JavaScript or via native code (C++)
  • Locale: interface localization information
  • Platform specifics information

XUL is implemented from within the Mozilla browser: it is in this framework that XUL applications run.

Krock said that the use of XUL has several benefits: in addition to being cross-platform, it also has the potential to define cross-device interfaces; XUL can be used to build small quickly-downloadable applications, leveraging the power of the browser environment; and finally, it adds to web browsers UI elements that HTML does not provide. He also mentioned that XUL has the potential to "democratize" application interface design, bringing it further into the grasp of a designer accustomed to HTML and JavaScript.

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.

Another XUL-based project currently underway is the creation of a Zope management interface using XUL. This shows the potential of XUL to provide a more expressive, and therefore efficient, interface than is possible with HTML + JavaScript alone.

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:

  • Mozilla XPFE (cross-platform front end) page
  • Eric Krock's XUL FAQ

Close    To Top
  • Prev Article-XML:
  • Next Article-XML:
  • Now: Tutorial for Web and Software Design > XML > Styles > XML Content
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Geek Tutorial
     

    Blogging Tutorial

      RSS Tutorial
      Podcasting Tutorial
    Graphic Design Tutorial
      Coreldraw Tutorial
      Illustrator Tutorial
      3D Tutorials
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial/ Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial/ Articles
     

    XML Style

      AJAX Tutorial
      XML Mobile
    Flash Tutorial/ Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial/ Articles
      Linux Tutorial
      Symbian Tutorial
      MacOS Tutorial
    Personal Tech
      Hardware Tutorial
      Software Tutorial
      Online Auction