The Many Faces of Mozilla

In Part II of our Mozilla series, we look at that Mozilla face which is the multiplatform application programming framework upon which Mozilla-based software such as the Mozilla 1.0 and Netscape 6.0 browser suites are built. These cross-platform browser suites demonstrate the scope and power of the underlying Mozilla applications programming framework.

In Part I of this series, "Mozilla -- A Lizard for All Seasons" we took a closer look at Mozilla, the organization, and its Mozilla software development plan.In Part III of this series, we will take a closer look at the Mozilla web browser suite.

When you see a Mozilla-based application such as the Mozilla web browser (or its Netscape 6 sibling) on your monitor screen, you are not exactly looking at an application or program. Rather what you see is an interactive web page generated by Mozilla and its Gecko layout engine. Please see Figure 1.

Web page is an oversimplification. The Mozilla web browser face and a web page are similar in that the Mozilla Gecko engine lays both out in the same way. Mozilla-the-browser is a combination of text, images, widgets and so forth laid out by Gecko to form an interactive user interface. That interactive user interface is quite similar to a web page, something we will call a "web-like page" here.

Peeling Back the Lizard's Skin

To better understand what the Mozilla applications framework is, and the implications of it within the Linux community, you have to peel back the little, yet powerful, fellow's skin carefully to see what's under all that reptile leather. When you do that, you will find among other things that Mozilla-the-framework is compiled for several platforms (multiplatform) including Linux, Mac OS and Windows.

More importantly, software built to run on the Mozilla applications programming framework or stage is pretty much OS independent and, therefore, cross-platform. That's because software built to run on top of the Mozilla framework deals with the Mozilla framework, not the underlying OS.

Now, look more deeply under Mozilla's skin. You will find that Mozilla-the-framework can build lots more than just browsers; it can also be used to build other Internet clients such as E-Mail, Newsreader, FTP, Telnet, IRC and so forth.

Moreover, custom Mozilla-based client and/or application building is not limited to merely Internet clients. You can build all sorts of applications, such as word processors, spreadsheets and image editors, on top of Mozilla-the-framework too.

Mozilla, the Applications Programming Framework & Stage

The application programming framework face of Mozilla can develop into a wonderful thing for the Linux community, and for the computing community as a whole. Here is why.

Are you a programmer working in the Linux environment? If so, and if you build your software on top of the Mozilla applications programming framework, then the software should be runable on any platform for which Mozilla is compiled, without the necessity of any application-porting overhead. This opens the Windows, Mac OS and other platform-dependant markets to you and to your software products.

On the other hand, are you a Linux user craving the availability of more software to use on your Linux platform? If other-than-Linux-platform programmers develop their software for the Mozilla applications programming stage, then you can run it on your Linux box(es) without those programs being first ported to Linux.

The key here is that as long as the software is developed for the Mozilla applications programming framework, it makes little difference in which OS environment the software is developed. That's because Mozilla fits in between the OS platform and the application.

CPU - OS - Mozilla - Application

And you thought Mozilla was nothing but JABS (just another browser story) didn't you?

In order for all of the above to work, Mozilla must achieve wide acceptance by computer users across several major OS platforms, which could depend upon how well the computing public accepts the Mozilla browser suite. Since Netscape 6 is based upon Mozilla, broad acceptance of the upcoming NS 6 release could play an important role in the widespread development and deployment of Mozilla-based applications.

However, the underlying Mozilla framework package could be included with the Mozilla-based application distribution package. In that case it makes no difference if the end-user already has the Mozilla framework installed.

Building Your Own Mozilla-Based Applications

You can build all sorts of applications on top of the Mozilla applications programming framework. The Mozilla and Netscape 6 browser suites are examples of applications that have been built on top of the Mozilla applications programming framework. So is the ChatZilla chat client -- please see Figure 2.

A good way to ease yourself into Mozilla-based applications programming is to do some simple Mozilla-browser skinning. To do that you will find yourself digging into the chrome and skin directories and files, which Mozilla uses to lay out the interactive web-like page you see when you use the Mozilla browser.

What you will see when you dig into the chrome and skins is lots of XML, JS and CSS. If you author web pages, most likely you are familiar with eXtensible Markup Language (XML), Cascading Style Sheets (CSS) and Java Script (JS). You will also see XUL, (pronounced "zuul") that is pretty much unique to Mozilla. It is a Mozilla implementation of XML that is used to describe the interactive web-like page faces of Mozilla-based applications. Think of XUL as the Mozilla developers' name for an XML-based language used to describe the UI (User Interface). Creating your own Mozilla skin is mostly a matter of hacking the XUL, XML, CSS, JS and so forth that define the chrome and skin, and/or redoing the graphic images and widgets they use.