Unfortunately, I have also been looking at Web server access logs, and I have been seeing a decline in the use of Netscape with a corresponding increase in Internet explorer. That is a problem.
Without a decent browser, it will be difficult for alternative operating systems to remain viable. We owe the old Netscape a great debt of gratitude for releasing a Linux version of Netscape so early on; it quickly made Linux a viable desktop, and later did the same for the other free Unices. Only a few wise men seem to realize this.
To paraphrase Linus: "It's the desktop, stupid." Backend infrastructure can be replaced quickly; user desktops cannot, so we are vulnerable to being leveraged out of the server space. Microsoft could use its increasing dominance at the client side as a wedge to lift Linux out of the server room. FreeBSD's motto "The power to serve" means nothing if it can't serve up the proprietary or patented protocols spoken by the clients.
We need some nontrivial presence on the client side to prevent the bastardization of protocols and file formats. Don't think that just because a file contains the pixy dust of XML it can be made proprietary. I am convinced that there are people patenting DTDs as I write this.
In the newer Linux distributions, we have an operating system capable of holding its own on the desktop; now we need a viable browser. Unfortunately, Netscape and Mozilla have lost their way. Netscape had its air supply cut off by a better-funded opponent. Mozilla... well, I am unsure what to make of it. I am guessing that when it was released it was a mess understood by a few. Now a couple of valiant individuals have undertaken the thankless task of cleaning it up. They might even be succeeding.
Unfortunately, it appears that Mozilla still carries the legacy of some poor management decisions. I think (and I might be wrong) that the plan was to turn Netscape into an operating system of its own. In a horrible way, they have succeeded; Mozilla is about as bloated as some of the largest operating systems.
The problem is not only that Mozilla is big and slow, removing it as the browser of choice for older and embedded systems (exactly the place where Linux is a viable contender), but also that it is difficult to understand. Heck, simply compiling it can be tricky. Getting up to speed on Mozilla appears to be difficult, so contributing is difficult.
I believe that the strength of the Open Source movement is that its components are highly modular. Forget the big projects such as gcc or the Linux kernel which need to be run by experienced wizards. Most Open Source projects are small; a talented programmer can understand the entire system. If contributers get in on the ground level, they too can keep track of their own part. The modularity is much stronger than the (IMHO rubbish) OO methodology advocated by dubious software engineering textbooks. An Open Source system breaks into objects at the executable level -- a level which both the developer and system administrator understand -- not at lower levels where it slows down development and execution.
An FTP server is an object. An FTP client is an object. The interface is well-defined in a couple of RFCs. Don't like a particular server? Plug in your own! It doesn't matter if the client is written in C, Python, Perl, or Intercal. It doesn't matter how the internals of the FTP server are structured. It's an object. No need to rely on inconsistent mangling of C++ classes in obscure libraries with undocumented interfaces and side effects. No need to worry if the object fails; if the FTP client crashes, the server keeps running. No esoteric marshaling or transport mechanism tied to a particular language; objects communicate via vanilla Unix pipes or TCP/IP.
This point is really important. As long as the maintainers understand the internals of their object/package and there are not too many dependencies, Open Source works beautifully. Don't like sysvinit? replace it with simpleinit or minit. Think you can do better than syslogd? Replace it with syslog-ng or idsa. Think inetd is vulnerable to DoS attacks? Try xinetd or tcpserver. Don't like bash? Try zsh or tcsh. Think wu.ftp is an exploit waiting to happen? Install oftpd or troll ftpd. We have an amazing amount of biodiversity (or should that be cyberdiversity?.
Open Source objects seem to do best when a replacement can be written by a smart teenager during summer vacation or as an after hours project of an experienced sysadmin. The replacement need not do all the original does and won't be bug free, but it should be enough to show promise. Later, it will become large and nastier, but the skeleton will be the same. This is probably the core of the Open Source world, even if it means that there are too many half-finished IRC clients.
Back to Mozilla. Mozilla is much larger than most Open Source projects. Becoming a contributer is hard. Writing a replacement is harder. The people at the W3C appear to have fallen into the same trap as the people who design C++, and have added more and more baggage. No doubt they were under pressure to formalize the extensions added by Netscape, Sun, and Microsoft, but still...
So, we have a problem. Mozilla is too large to attract casual programmers in the numbers it needs, and the Web itself consists of too much cruft. The entry cost of the Web browser business is considerable. Large companies like large entry costs since it keeps out the smaller players, including the volunteers. Microsoft can throw programmers at Internet explorer. Programmers at large corporations have to wade through spaghetti code whether they like it or not, and paid programmers can spend their days doing regression tests. Volunteers like doing neither of these things.
The free software community desperately needs a decent Open Web browser to stave off the .net effort. It is probably the biggest software gap we have. Solving it won't be easy, and losing it might be fatal.
I have thought about a number of approaches to the problem. One is to have more people working on Mozilla. Mozilla is being cleaned up -- some subsystems are probably quite solid by now -- but it is still large and slow. If you think you are a hotshot programmer, consider helping out Mozilla. If Mozilla makes a comeback, you'll be a hero.
And then there are the alternative Web browsers. Konqueror is showing promise. Zen has the right approach. Express might be worth taking up again. Maybe we could learn from the NCSA/Apache experience. When NCSA httpd was no longer viable, some smart people put together Apache. Apache has something important going for it -- it can be easily extended. It might be worth trying the same for a new Web browser. Make it simple. Use wget to fetch the pages. Pipe it to a simple caching program. Have the caching program pipe the output to a simple renderer -- the GTK HTML render or maybe a diet gecko. Control the pipeline from a simple X interface, and we have a Web browser. X has a neat feature which lets a window of one application swallow the window of another. One of the people who designed X wondered why it wasn't used more often. Think about it -- for an HTML form input box, instead of using a crummy text widget, we could spawn an xterm the exact size of the text box, and use vim or any editor to fill out the form. It would be nice. It would be easy to maintain. Crashing the editor would leave the browser running.
In the last few years, the Open Source community has made good progress. We now have several impressive operating systems. Apache is the most popular Web server, but we need to have a viable Web browser, be it a working Mozilla or a lighter alternative. Without it, we don't stand a chance against .net.
Anonymous is a student at the University of Anystate, where he is writing a dissertation on Primary Colors. He does fundraising work for AA/NA in his spare time, and composed most of the music written in the Middle Ages.