KDE and Gnome
Watching the Linux operating system mature is interesting these days. A couple of years ago a lot of attention was devoted to incompatibilities with various hardware components, networking and the development of the kernel. Though these activities continue, it's no longer necessary to follow these development efforts as closely in order to run a dependable Linux system. Distributions have improved immensely, and now more free-software developers are turning their attention towards refinement and integration of the user interface.
Two separate projects have arisen in the past year: KDE (the K Desktop Environment) and GNOME (the Gnu Network Object Model Environment). Both of these projects include among their stated goals the desire to make the administration and usage of a Linux system easier for beginners, in part by providing a uniform look and feel for the most commonly used applications and utilities, as well as interoperability of the system components. It's difficult to make much of a comparison between the two, as KDE is much farther along than GNOME, but I'll make an attempt.
There is one common structural aspect to these two projects. They each rely on a group of shared libraries that provides the interface to basic OS operations, such as file-reading and saving, as well as basic display and appearance functions. An installation will populate a directory with a variety of shared libraries which support a directory of fairly small executables. The Gimp works this way as well; the individual plug-ins tend to be small, but rely on the services provided by both the GTK and the GIMP shared libraries. This approach facilitates contributions by programmers not directly involved with a project, as many of the low-level and window-display functions are already written, allowing a contributed application or extension to “hook” into them.
The first of the two projects to gain momentum was KDE. About a year ago a group of developers, mainly European, began coding the components of this ambitious project. They chose the Qt toolkit (from TrollTech in Norway) as the GUI framework, a decision which has since led to some controversy. Qt has a few licensing restrictions which, though not onerous for end-users, can cause problems for the creators of CD-ROM-based distributions. Advocates of GNU-style free software tend not to favor Qt, a circumstance which led to the creation of the GNOME project.
Setting aside the thorny licensing issues, the KDE developers have managed to pull together quite a remarkable system in the past year, though numerous bugs still remain evident. The second public beta was released in November of 1997, and I compiled and installed it soon after. (I had briefly tried the initial beta, but found it too unstable to evaluate.)
This second release still has flaky aspects, but enough of it works to give the user an idea of what the developers are planning to accomplish. In effect KDE is a sort of GUI wrapper around an existing Linux system, which attempts to simplify system-administration tasks and offer interactive compatible utilities and applications. kfm is at the core of the system, as it is intended to be left running in the background and serves as the help viewer for all of the KDE components. kfm is also a file manager (icon-based, with some resemblance to xfm and moxfm) and serves creditably as a web browser.
kfm is an impressive application, and itself a good reason for trying out KDE. Many of the other applications are replacements for programs which most Linux users probably already have and would only be desirable if a complete KDE system were the goal.
KDE has its own window manager, kwm, which had some display faults on my system. Due to these video artifacts I didn't use it much, but it did appear stylish and well-designed. It seems that these display bugs don't show up on most systems; I suspect that it depends upon the video-card and X server being used.
A new Linux user (especially someone accustomed to Windows or Macintosh systems) might appreciate the relative ease of configuration and use which KDE offers. In a sense, KDE extends the scope of the tasks traditional distributions perform. One drawback might be the very comfort of the KDE environment; the various system-administration tasks outside of KDE's abilities might seem too daunting or unapproachable without a KDE interface. This won't be seen as a drawback to prospective users who lack the fascination with internals and configuration which in the past has typified Linux users.
Some KDE users have reported that they find the system both usable and useful, but with my particular setup this wasn't the case. I have to say that my extensively customized Linux installation seems perfectly satisfactory as is, and I probably lack the motivation to spend the time learning to adapt KDE to my needs. If KDE had existed back when I first booted up a Slackware system some years ago, maybe I would have felt differently.
Miguel de Icaza, head of the Midnight Commander development group, also seems to be at the helm of the new GNOME development project, which has goals similar to those of KDE, with one difference: the project is composed completely of GNU-style free software. This project is based upon the GTK toolkit, the free successor to Motif in the GIMP development efforts. The project arose as a direct response to the KDE efforts, and the GNOME developers have borrowed some code from KDE for a few of the applets.
As of mid-January (version 0.12) GNOME as a whole isn't really suitable for actual use, but several of the applets function well and the future looks bright for the project. Miguel de Icaza is in the process of porting the Midnight Commander file-manager to GTK, which will allow it to fit in with the remainder of the GNOME applications.
The Panel applet, written primarily by Federico Meña Quintero, is an icon-bar and program-launcher which is located at the bottom edge of the screen. It features cascading menus which could be a substitute for the usual window-manager root menus. Most of the GNOME applets have been included in the default menu of Panel, allowing this applet to serve as an entry-point to the GNOME installation. It takes a little fiddling around to get the hang of using Panel, so don't give up if at first glance it seems like nothing is working.
The provided applets include a desktop manager (which in part serves as an interface to the Xlockmore screensaver), CroMagnon (an interface to the crontab utility), an audio mixer, an interface to the elaborate LinuxConf configuration manager, several nicely-done games (some of which were adapted from KDE), a calculator and several others.
One major difference between GNOME and KDE is that KDE includes a window manager, whereas GNOME doesn't. GNOME is designed to cooperate with the user's current window manager. This may make GNOME more appealing to seasoned users who have extensively customized their window-manager resource files.
As I write this, only the source code is available for GNOME 0.12, and it's tricky to compile. Several GNU utilities, such as gettext, guile and SLIB, must be correctly installed in order for a compilation to complete successfully. An intel-Linux binary archive of the 0.9 release is available from ftp://ftp.nuclecu.unam.mx/GNOME, but I would recommend waiting a while for either an updated binary release or an easier-to-build source release. Another drawback is the lack of any man pages or help files. The developers are hard at work these days (judging by their mailing-list postings), and I think, given time, that something both interesting and usable will appear.
Though KDE is closer to being “finished” (if such a state even exists in the realm of software), it still has a way to go. Development is proceeding rapidly, and I imagine that sometime this year a more polished release will become available.
The fate of a free-software project is interesting because of the inherent unpredictability. Anyone can start one, but whether it comes to fruition or withers on the vine is up to the inscrutable software gods. The timing may be just right (i.e., the software addresses many users' and developers' needs), but convincing enough programmers with time and inclination to become involved just can't be forced or foretold. These two projects seem to have attained that essential momentum, and hopefully we shall see them evolve further.