Chapter 1
What is XUL?
"The interface is the part
of a tool or technology with which the user
interacts. For a screwdriver, it's the
handle. For a bicycle, it's the seat, handlebars, pedals, and gear levers. For a web site, it's
a crafted communication environment that houses
the site's content and the navigation devices the user needs to get the content." -Jack Davis and Susan Merritt, The Web
Design Wow! Book, Peachpit Press, Berkeley, CA, 1998
This chapter will introduce you to the XUL language. The historical aspects of the XUL interface language will be discussed. We will give a brief overview of its core features, and we will discuss how it is implemented in the “Mozilla” browser. This chapter not only encompasses XUL, but it briefly covers other technologies associated with its implementation. It is not the intention of this chapter to be a diatribe on every aspect of the XUL language. The building blocks of XUL will be discussed in detail in subsequent chapters.
What is XUL? You might conjure up thoughts of a famous Argentinean poet or even a character from a well-known ghost movie. However, XUL is the user interface language for the eXtensible Markup Language (XML). XUL has gained momentum as THE language web developers and programmers should use for creating user interfaces.
For those who are phonetically challenged, XUL is pronounced “zool”, rhyming with cool. Those who lived through the 1980s might remember an anthemic movie where a bunch of guys wearing “proton packs” run around New York catching ghosts and destroying anything not nailed down to the floor. Many of the themes and the pronunciation of XUL were adopted tongue -in- cheek from the Ghostbusters movie. That’s OK with us-- a sense of humor is always a good thing. It reminds us in this “browser-eat-browser” world that we need to step back and take stock of our efforts.
XUL, quite simply, is a presentation specification for creating lightweight, cross-platform, cross-device user interfaces. A XUL graphical user interface (GUI) can be lightweight in the sense that there are no huge libraries of widgets to download. XUL interfaces can be cross-platform because they are derived from a generic specification for user interfaces. XUL has the ability to run on different platforms on Internet-enabled devices. XUL allows you, the interface developer, to easily create an interface that is as simple or complex as you would like to make it. Figure 1.1 shows a simple XUL “colorpicker” component interface with its corresponding XUL markup.
Figure 1.1 – A Simple XUL Component
