May 1999 Column

May 1999 Column


[ Site Index] [ Linux Index] [ Feedback ]


KOffice is Koming

1999 is definitely the year of the Linux GUI.

One of the perennial complaints we hear about UNIX (and Linux) is that these operating systems have no graphical user interface. This complaint is a paper tiger; UNIX has a GUI just as MS-DOS has one -- it's a separate application that sits on top of the operating system. Unlike MS-DOS, however, which has Windows and all that this implies (unless you want me to get all pedantic and talk about things like GEOS or GEM), the UNIX GUI is a bit more problematic -- because X11 isn't a user interface, it's a windowing toolkit. This means that a comparison between X11 and Windows is meaningless; it's like comparing a Ford Fiesta to a garage fitted out with all the equipment you need for making a custom car. UNIX systems relied on applications called window managers to provide a uniform look and feel, with the result that a kind of user interface anarchy reigned.

All this is changing in the Linux world. As non-programmers start using it,there's more demand for a consistent GUI. I've mentioned the KDE and GNOME projects before; both of these aim to provide a window manager, file manager, and a full suite of consistent applications. (There are other such projects, such as GNU's OpenStep, but in general KDE and GNOME are the leaders of the pack.)

The current state of play is that KDE 1.1 is now out and work on KDE 2.0 is starting, while GNOME 1.0 is impending (and may be released by the time you read this column). From a design point of view, KDE 2.0 and Gnome are both interesting. KDE 1.0/1.1 was based on separate applications all using the same set of APIs and the same underlying library (Qt) to provide the look and feel; this is the traditional way to build applications. The interconnection between them is rudimentary; you can cut and paste using a common buffer, and they can communicate with the window manager (to control attributes such as menu fonts and window size), but in general KDE 1.1 applications are like non-OLE-enabled Windows applications.

The GNOME team, from the outset, had two goals; to build a free GUI, and to rectify what they saw as architectural defects in KDE -- most notably the stand-alone nature of all the applications. To deal with the latter they used an ORB -- an object request broker. ORBs are used to allow applications to call upon one another's functions and data remotely, over a network (or locally, on the same machine); they deal with the nuts and bolts of exchanging data using the CORBA (common object request broker) standards. CORBA is a functional superset of Microsoft's COM (component object model), which OLE/ActiveX is an implementation of; by using an ORB, GNOME programs can plug into each other, so that the user gets a document-centred model. For example, if you're editing a word processor document, you can embed a spreadsheet in it; the word processor phones up the spreadsheet application (via the ORB telephone exchange) and gets it to handle the job of rendering and processing the sheet.

The GNOME team also opted to make their system fully programmable in GUILE -- the GNU extension language, promoted by Richard Stallman as a remedy to the perceived defects of Tcl as a 'drop-in' scripting language. (It's no coincidence that GUILE is a dialect of Scheme, which is in turn a version of Lisp; I'm not going to explore this further because I find lisp-family languages about as friendly as COBOL.)

Anyway, the promise held out by GNOME is that all GNOME applications can potentially interoperate, exchanging data seamlessly; that they can operate transparently across a network, and that they're all scriptable. This is potent medicine; scriptable desktops are easy to use, but also offer the raw power of a command-line shell scripting interface (which is one of the reasons UNIX traditionalists are so dismissive of the "but why doesn't it have a cute graphical interface?" chorus-line).

However, it's beginning to look as if the KDE team have stolen a lead on GNOME yet again. First, they got a working product out fast rather than trying to refine their design. Now they're refining it ...

KDE 2.0 won't be along until autumn at the earliest, but bits of it, notably the KOffice application suite, are going to show up sooner -- and collectively they rock. KOffice is a suite of integrated office applications that's been brewing since summer '98. They represent the cutting edge of KDE development. There's an ORB (Mico) and an embedded scripting language (the infinitely-preferable Python, about which more in another issue). They're all embeddable; you can drop a spreadsheet into a word processor document, or an equation into a picture, and when you click to edit the embedded object you have the full power of the main application (not just some sort of half-assed mini-editor).

That's not all. The KOffice applications use XML as their standard file format. XML, a web-aware derivative of SGML (standard generalized markup language) is the World Wide Web Organization's designated successor standard for HTML. It's way more flexible; using a DTD (document type declaration) you can design new ways of structuring information in such a way that any other XML-aware application can use it. XML does for structured textual information pretty much what SQL does for tabular data; it's the way of the future, and not-coincidentally the standard file format Microsoft is converging on for Office 2000.

The component-based architecture of KOffice means that you'll be able to incorporate objects held on servers elsewhere in an intranet (or on the public net) into your own documents; it's the way of the future, and not-coincidentally the standard file format Microsoft is converging on for Office 2000. any XML-aware application will be able to freely embed or exchange data, and any other KOM-architecture program be able to integrate any other one as a component. Want to see your web browser running as a plug-in in your spreadsheet? Maybe not -- but it should be possible.

There are too many other features of KOffice to describe in a short column. KWord is a FrameMaker-like word processor and basic DTP application. KHtml is an HTML editing/browing component. KSpread, the spreadsheet, is already pretty usable (and uses Python as a spreadsheet scripting language). KIllustrator, the vector drawing component, sets out to be a clone of Adobe Illustrator; there's also an image manipulation program in the works (although I wouldn't be too surprised to see a public release of Kimp -- a KDE-ified version of the GIMP -- take its place). And KLyX, the LaTeX typesetter front end, is due to receive a KOffice overhaul in due course.

Looking ahead, when KDE 2.0 is ready KDE will be a cutting-edge desktop environment by any standard. The KOM/XML/ORB combination means that it should be possible to automate tasks easily: it brings pretty much the same capabilities that Apple promised with OpenDoc -- CORBA is a superset of Microsoft's COM architecture, and allows cross-platform integration of object services.

Cows, Monkeys, and GNOMES

So where does GNOME fit into all this?

I've been playing with a pre-release of GNOME -- 0.99.3, to be precise. GNOME is currently (at the time of writing) where KDE was around Beta 3, some nine months ago. It's moving fast, and it's already at a level where you can use it as your main desktop environment: track it at GNOME.org. GNOME is a GNU purist's GUI, insofar as there are no proprietary libraries used in it; and its themability is far superior to KDE's at present. Yes, you can customize KDE 1.1 to some extent, and change the look and feel of window decorations or the placement of menus. GNOME's themability seems to be somewhat superior, with the behaviour of widgets being fully customizable. (I confess to particularly liking the Sun "Metal" theme introduced with the Java Swing components; GNOME is able to emulate this classic, cool-looking interface.) GNOME has had an ORB for longer than KDE, and will probably give us an object-based desktop environment (albeit without the full office suite) before KDE.

On the minus side, GNOME has a way to go before it attains the same level of polish as KDE. This is inevitable: GNOME is simply a younger project. In some cases, the GNOME crew seem to be making design decisions simply to avoid doing things the same way as everyone else. And KDE is going to acquire the same deep level of themability by 2.0 -- it will be based on Qt 2.0, and the main extra features of this release of Qt are full themability and internationalization support by way of UniCode.

GNOME is based on the GIMP project's Gtk widget library rather than Troll Tech's Qt. Gtk is written in C, rather than C++; this leads to interminable holy wars between the language purists. Suffice to say, both Gtk and Qt provide broadly equivalent facilities for putting pixels on a screen; Gtk is more customizable but arguably harder to work with (if you leave asside the need to know C++ before getting to grips with Qt).

Both GUIs have a control panel that provides a hierarchical menu of applications, and tools for session management (so that they remember what applications and windows you had open from one session to the next). Both have the usual programs; mail readers, Tetris clones, and so on. Both have similar-ish control panel systems. The GNOME file manager is a variant on the Midnight Commander, a classic Norton Commander clone that has grown into a weird sort of imitation of the Windows explorer; KDE's file manager seems to have started out as a colision between the xv graphic file viewer's "visual schnauzer" and a web browser, but is converging on the Windows 98 explorer (to the point of being JavaScript aware). Both desktops adhere to the XDND drag-and-drop protocol; it is to be hoped that they will be compatible at the object level, too, later on.

The major notable difference between GNOME and KDE is that GNOME doesn't come with its own window manager. (KDE's can be ripped out and replaced by something like WM instead, but most people don't bother.) Instead, GNOME define a set of extensions that window managers can use to communicate with the desktop. However, most committed GNOME people seem to be on E -- Enlightenment, that is, the window manager for people who don't like boring opaque overlapping rectangles on their screens. E is difficult to describe without sounding flippant or sarcastic; it's immensely powerful, lets you do insane things to the appearance of your desktop, and like DTP packages in the early days, it seems to bring out the worst in people. You can custommize anything. Want animated JPEGs of writhing topless models rendered in semi-transparent oval windows under your telnet sessions? Evidently somebody does: that's the only explanation I can come up with.

Some E themes will doubtless emerge that are hailed as classics of user interface design, and at that time E and GNOME will acquire a major edge; but right now, E/GNOME hackers seem to be primarily coders rather than visual interface designers, more interested in adding exotic features than making something that Joe Random Office Drone can feel happy with when their shoulder-surfing boss drops by.

Capsule verdict: KDE is the desktop for office workers. Exudes solidity, reliability, and just a smidgeon of boredom. GNOME is the desktop for hackers: emphasis on weird features rather than consistency or smoothness. Doesn't even have a universal standard icon set (yet). Technically GNOME may be superior, but KDE will catch up eventually. Visually, KDE may be slicker and more professional, but GNOME will make it too. The race is neck and neck, and promises to stay that way for some time.

Choosing a Distribution, Part Two

I rather like Red Hat; I run it on most of my PC's. However, I've been using Red Hat since release 2.1, back in 1995. If SuSE or Caldera 1.3 had been around then, I might be singing a different song now -- and I still might be, in a release or two's time. Next month I'm going to continue talking about distributions, with a discussion of the pros- and cons- of the RPM based kits and the other solutions (such as Debian), and a look at meta-distributions.

Red Hat may have invented the RPM package format, but they're not the only people bolting together heavyweight distros based on it. The two main competitors in this field are Caldera and SuSE, and interestingly both these companies target different markets.

Caldera, Inc, based in Utah, was set up a couple of years ago for the specific purpose of producing a business-oriented Linux distribution. A lot of their initial capital came from Ray Noorda, founder and former chairman of Novell. Caldera's Open Linux product is currently at version 1.3, based on kernel 2.0.36 and libc 5 (built using Gcc 2.7.2) -- it conforms to the Linux filesystem standard (now pretty much subsumed into the Linux Standard Baseline). Caldera bundle a number of commercial products with their Base and Professional editions; Open Linux Base includes KDE 1.0, StarOffice 4.0, DR-DOS (running under the DOSemu emulator), Netscape Navigator, Sybase Adaptive Enterprise Server, and the BRU backup tool. The default desktop environment is the rather old-fashioned looking Looking Glass, although KDE can be installed easily as an alternative. COL is also noteworthy for its support for Novell NetWare (no surprises here!); it can be used as a three-client NetWare server right out of the box, and additional licenses can be purchased. Details of pricing and suppliers can be located by way of their web site.

The box, as sold, contains the usual: a manual (actually quite brief, as it's repeated in five different languages), boot floppy, bootable CDROM, source code CDROM, and registration card. You can download the Open Linux Base for free (or maybe get them off a magazine cover disk or something), but you won't get StarOffice or Sybase or the other commercial bits in that case.

COL 1.3 has a pretty slick installer; it attempts to integrate X11 setup (via the configX graphical setup tool) during the installation process. You'll need to have the standard hardware details to hand when you install Open Linux -- things like your video card, monitor, available resolutions, hard disk controller type (if not a standard IDE one), ethernet card type, and so on. The installer makes a fairly efficient stab at autodetecting everything but isn't perfect. Note that a full install seems to swallow something like 800Mb of disk space, before you add StarOffice (which isn't installed by the RPM-based installation system -- you need to hunt around on the CDROM to locate the StarOffice directory, then follow the instructions inside), and COL does not set itself up to automatically start X (via xdm) when it reboots after installation. In addition, I was unable to find any easy-to-use sound configuration tools (like the ones Red Hat supply, or the Open Sound System.

In use, COL feels rock solid. It reminds me a bit of Red Hat 4.2, dressed up for business use. RH 4.2 was Red Hat's last libc 5 distribution, and although more recent Red Hat releases use the newer glibc (libc 6) library (which provides native threading support) and the egcs compiler, it's only with Red Hat 5.2 that they've regained the level of stability they achieved with 4.2. A basic system administration tool is provided; this will be augmented in future releases by COAS, the Caldera Open Administration System (abou which, doubtless, more in a future article). The main advantage of COL is that you get, in one box, everything you need to set up an office machine for basic office tasks: integrated suite, desktop environment, NetWare and SMB compatability, all layered on top of a solid, albeit not bleeding-edge, Linux distribution that can be managed relatively effectively using RPM-based tools.

SuSE come from Hamburg (in Germany, in case you didn't know). In general, SuSE distributions are released first in German, then in English translation. The release I got to play with was 5.3; 6.0 is now out, including KDE 1.1 (instead of 1.0), glibc/egcs support, and a newer kernel version. You can find current details, including a hardware compatability database, at SuSE.

The SuSE 5.3 box contains the same recipe, only this time with four CDROMs. It's a big distribution -- they've shoehorned a lot of extras into it -- but most of the kit is obtainable separately elsewhere (for example, you can get the equivalent extras for Red Hat from their Power Tools CD set, or by downloading from contrib.redhat.com).

American software companies often behave as if the world ends at Maine -- I'm pleased to report that this doesn't seem to be the case in the Linux world. Red Hat, SuSE and Caldera all have installers which provide a choice of languages. (Red Hat and SuSE ship a single, 4-500 page installation manual in just one local language in the box; Caldera ships a 500-page book containing five 100-page versions of the same document in different langauges.) SuSE make a lot of hay over their custom system administration tool, YaST. I'm not convinced. YaST is not open source (unlike the Red Hat control panel and LinuxConf, or Caldera's COAS); it's impossible to see what's going on underneath it, and it makes some slighly alarming changes to the way things are done. While it's undoubtedly a good idea for new users who don't want to be bothered learning UNIX system administration (and reading the entire bestiary of Nutshell guides), YaST arguably goes too far. For example, SuSE uses the standard System V init script mechanism to control startup and shutdown. A series of shell scripts located in directories below /etc/rc.d are executed in sequence to start and stop system services, depending on which run level the system is entering or leaving. YaST merrily by-passes the standard rc scripts and uses a separate tree, squirrelled away under /usr/etc -- something which can lead to no end of head-scratching when an experienced Linux sysadmin tries to get to grips with the system.

In use, SuSE is pretty much like the others. Linux distributions, however whacky, all tend to provide similar functionality; looking at a copy of SuSE 5.3 or Caldera 1.3, a Linux novice could be forgiven for seeing no difference at all. Main points in SuSE's favour are a level of attention to internationalisation issues which you may not get with an American-packaged linux distribution, and a level of completeness that is hard to match: how do you argue with a choice of fourteen window managers? In addition, SuSE add some really useful things -- for example, they provide their own X servers for various leading-edge graphics boards: SuSE actively support AGP boards and NeoMagic chipsets. If you need support for a new graphics system right now, SuSE may be your best choice.

Next issue, I'll discuss Debian -- the GNU flavour of Linux -- and its exotic package management system, and also touch on metadistributions.

Other news

Rumours, rumours. Why do releases always happen the day after a deadline? Rumours are flying right now, true enough. IBM is rumoured to be preparing to support Linux on low-end RS/6000 kit -- serious workstations from a serious company. This may or may not (depending on who you ask) be something to do with Compaq's rumoured support for Linux on low-end Alpha AXP server hardware. It could all be smoke and mirrors right now, but the low end of the high end UNIX server market seems to be putting on a penguin suit and waddling towards fruition.

Even vaguer rumours: SAP have been alleged to be thinking about a Linux port of R/3. This, if it happens, would be one in the eye for Microsoft -- NT is the current low-end high-volume platform for R/3, the software solution that no self-respecting multinational can be without. (Even so, I hope you don't mind me admitting that my eyes glaze over whenever the corporate types start mumbling about ISO 9000 and inventory management. It's just not my cup of tea: I'm a wild-eyed and shaggy UNIX nerd, and I can't help having a gut feeling that the corporate love affair with Linux is ultimately going to make the field as exciting as the wonderful world of COBOL report generators.)

Finally, where were you on Windows Refund Day? I didn't, I confess, try to get my money back: my last PC was home-made, and I made the mistake of booting my last laptop before realising I'd be accepting the ELUA. However, if you feel like buying a new PC and don't want to pay the Microsoft tax on it, you could do worse than look at the refund page. But remember -- please be honest and only do this if you honestly never intend to run that pre-installed copy of Windows. Free software may be good, but that doesn't entitle us to ignore the conditions imposed on non-free software.


[ Site Index] [ Linux Index] [ Feedback ]