Welcome!

Linux Authors: Kevin Benedict, Pat Romanski, Frank Huerta, Adrian Bridgwater, Pieter Van Heck

Related Topics: Linux

Linux: Article

Move Over Kernel Hackers, It's Mozilla Time

Move Over Kernel Hackers, It's Mozilla Time

Software provides functionality for the benefit of real people. Most software resides in applications, not in drivers or kernels. Today the open source community needs enabling kernels like Linux far less than it needs enabling application frameworks like Mozilla. Kernels have achieved most of what they can achieve, and the game is moving on. Can this be believed?

Have you noticed that small red or aqua lizard icon on your Linux desktop? It's Mozilla, best known in the guise of a Web browser. You're going to notice that icon a lot more in the future, whether you're a programmer, an IT guru, or an end user.

When we think of open source, Linux usually comes to mind before Mozilla. That is despite the groundbreaking open source release of the Netscape source code in the middle of the '90s browser wars. After all, Linux has garage credibility (or should that be university lab credibility?), whereas Mozilla is more of a corporate escapee. But Mozilla's history is as long as GNU/Linux; Mozilla has been the internal project name for the former Netscape browser since Netscape 1.0.

So much is written about Linux, meaning the Linux kernel and associated tools, and yet the kernel source and documentation is overall not very large. The very largest open source projects are in fact all corporate gifts rather than grassroots developments. OpenOffice is the premier example at 120 MB. You might not expect Mozilla to be a massive project, but surprise, it weighs in at number 2 or 3. A hundred AOL/Netscape employees didn't work away four years over nothing. Its source is massively bigger than Apache, bigger than Perl and Tcl/Tk combined, twice as big as the biggest kernel source bundle you can find.

Except for OpenOffice developers, most of us mentally discard OpenOffice as a technology building block. This is because of its obvious end-user intent. After all, you can't build a nuclear reactor out of the GIMP. The GIMP is best left doing what it does best - manipulating images. And the same applies to OpenOffice.

It might seem that Mozilla is tarred with the same brush. After all, isn't it a Web browser first and foremost? Well, in short, the answer is no.

Larry Wall this year re-popularized the Universal Architectural Diagram in his State of the Onion 2003 speech (www.perl.com/pub/a/2003/07/16/soto2003.html). That progress report on Perl used a diagram that goes back at least as far as early IBM mainframes. In the diagram, a generic layer of technology is used as the basis for several specialist applications. Because the generic layer is common to each application, those applications are seen as having identical status. At least they are seen as members of some common group. The Universal Architectural Diagram is a very common design pattern. Java, .NET, Perl, X-Window, Pick, XML, and many others have used it to provide a generic, enabling technology layer, and a set of interesting offshoots. Even the relationship between BIOS and Windows/Linux/QNX uses this pattern, as shown by the success of VMWare and other BIOS emulators.

Mozilla is another example of the Universal Architecture. An e-mail client is not the same thing as a Web browser, and yet Mozilla supports both. The Mozilla Platform, which is a set of files shorn of any browser, is a generic basis for user-oriented, GUI-oriented, possibly networked applications. Out of that platform the Mozilla browser has been built, a highly successful browser at that. But that platform has also been used to build e-mail clients, composers, debuggers, IDEs, desktops, settops, palmtops, calendars, PIMs, chat clients, dictionaries, and educational software. That's a broad range.

Jim Gettys, of Hewlett-Packard and www.freedesktop.org fame, has recently been analyzing the technical services offered by open source Unixes that support desktop applications (http://freedesk top.org/~jg/roadmap.html). If you peruse this list, you'll see that most of the desktop technology is expressed in terms of libraries and programmer frameworks - pretty low-level stuff to some. What's missing is a very high-level, easy-to-use system for desktop GUI application development. In fact, Unix has been missing a Visual Basic-like system for a long time, with only Tcl/Tk offering any kind of easy solution. It's no wonder that desktop applications have been slow to arrive on Linux.

Until now, rapid and professional development of Unix desktop applications has relied on proprietory equipment like Oracle Development tools, Smalltalk, or other closed vendor offerings. That is now changing. The Mozilla Platform provides exactly that kind of environment, for nothing. The sweet spot is that this environment is also easy to develop in. You don't need to be a kernel hacker or even have C/C++ literacy. The required skills are no more than JavaScript, some XML (in the form of XUL), some CSS, and some optional manipulation of extensive object libraries. The hardest thing that needs to be learned is perhaps a bit of RDF. If you know a little XML, then Mozilla-based applications are as easy as Perl, but have a professional GUI.

Mozilla is therefore well poised to be the application development framework of choice for Linux. It even comes with a bonus: Linux applications will work without change on Windows, Mac OS X, and other platforms, provided some basic portability rules are followed. They also work from local disk, across the Web, and from across the Internet.

You might ask: Why bother? Don't all good Linux hackers go armpit deep in code, as close as possible to the bare metal? And isn't Java the obvious solution for applications? Well, no, and no. Most of the comfy spots close to the open source bare metal are taken, and that kind of thing appeals only to a narrow class of programmers anyway. By comparison, there are 45,000 IT people in New Zealand (pop. 4 million) alone - that's great deal of variety. Second, Java is a very object-oriented language, and frankly, that doesn't suit a lot of people. JSP doesn't exist because Java is trivially easy to work with. Sure, Java is popular, but scripting languages are just as popular. Mozilla's easy development style suits a very big chunk of the middle ground, where all the good spots aren't yet taken, and where the code isn't too convoluted.

If you think this is unguarded opinion, then listen to Gartner (www.gartner.com). Their "Hype Cycle for Open-Source Technologies, 2003" barely remarks on core operating system features at all. That report just says applications, applications, applications, over and over. That's good news for LAMP developers (Linux, Apache, MySQL, PHP/Perl) if you don't mind using a browser as a GUI. Now you can go forth and Mozilla as well.

More Stories By Nigel McFarlane

Nigel McFarlane is a freelance science and technology writer with an extensive
programming background. His latest book is "Rapid Application Development with
Mozilla," and his Web site is at "http://www.nigelmcfarlane.com.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.