Lou's Views: Converging on a Linux Desktop? Part IIDec 28, 2000, 17:00 (42 Talkback[s])
(Other stories by Lou Grinzo)
Last time around, I talked about the question of whether Linux users were starting to converge on a common desktop. This time, let's look at the much thornier issues of whether that's a good thing for everyone involved, and how we might get there.
We've all seen the comments from industry pundits and frustrated individual users alike: "Linux needs a single desktop standard!" they shout. And just in case that isn't sufficiently incendiary, these same people usually take sides in our favorite soap opera here in Linux Land, the KDE/GNOME mud wrestle, and anoint one as being clearly the "right" choice for uberdesktop. This is where such conversations normally take a Jerry Springer-esque turn, complete with virtual chair throwing.
The problem is that these pleas for standardization and simplification are normally heartfelt and always have some solid logic behind them. These people are sick of dealing with vast numbers of programs with names that begin with either "k" or "g" because they were designed to work under KDE or GNOME, and are either somewhat dysfunctional in the other environment, or are completely untested and unsupported there. When users endure this level of ongoing pain it's just as bad for the whole Linux community as it is for Windows users overall when they endure repeated system crashes or yet another Outlook-borne virus outbreak.
From a developer's standpoint, a single, standard GUI interface would be a very good thing, as it would make it easier for us to reuse and therefore leverage each other's code to create new programs. (Moving the code for an even moderately complex program from one GUI environment to another is often only slightly less painful and freighted with potential errors than is porting code from one programming language to another.) It would also mean we'd only have to learn a single environment, and we'd have better documentation, as the authors of books, articles, and Internet resources wouldn't be spread over more than a single set of tools. Perhaps best of all, we'd have a concentration of developer skill on tools for only one underlying API. That alone could have a huge multiplier effect, as the tools would get better quicker, making it easier for those interested in writing applications, not tools, to do their job, which would in turn bring more users into the Linux fold, creating a bigger user base and market for software, which would entice more developers to move to Linux, etc. Such standardization, were it to happen, could very well be a classic "tipping point" that propels Linux from its current roughly 5% of the desktop to something like 25% faster than you could say "Windows who?"
But in a way this is still dodging the issue. What would it really mean if we somehow woke up one morning to find that the only desktop user software was KDE or GNOME or Window Maker or something else? This is a deceptively difficult question, but I think the following five points are all true:
1. There would be at least one alternative desktop project announced by noon of that first day. This is Linux, after all, where developers aren't happy unless they're scratching their itch to reinvent wheels, even if only change the font used for the lettering on the sidewall. (Yes, there are many legitimate and welcome projects that arise from this syndrome. But it's also clear that this penchant for writing what programmers think is cool that results in an overload of programs in some categories and none, or clearly not enough good ones, in others. Any objective survey of online programs, like LinuxApps, makes it painfully clear how unbalanced the selection of programs for Linux really is.)
2. Mainstream users would be happier. No more struggling to figure out if some nifty new "k" or "g" program will work acceptably well in an alien environment. (Which raises yet another of those tangential issues no one likes to talk about: From a mainstream user's viewpoint Linux and the widely available open/free application software is anything but free, thanks to all the hassles those programs present in terms of library compatibilities, interoperability issues, etc. For many of those people the cost of free software is much higher than the cost of closed-source, commercial software. Eliminating the desktop environment share of that pain would go a long way to making free cheaper.)
3. Hackers and hobbyists would be less happy. Less choice means few knobs, levers, and dials for them to tweak on their systems. Face it, a lot of Linux users are like the guys who spend every waking moment working on their car, but almost never drive it anywhere. Take away the fiddle factor and a lot of them would defect to FreeBSD, Plan 9, or something else.
4. The standard desktop would evolve slower, at least until some of the alternatives mentioned in step one above reached a decent level of usability. For all the complaining we do about the dire consequences of the KDE/GNOME situation and the evils of commercialism, the bottom line is that competition is a very powerful motivator, even in open source.
5. Companies would be much more likely to port their existing software to Linux or write new programs for it. I talk to a lot of people involved in commercial development throughout the industry, and the number one thing they tell me they dislike about Linux is what I call the snowflake syndrome: no two Linux systems are identical. This makes distributing software for Linux as anything but source code a nightmare.
Sounds like a standard desktop would do more good than harm, on balance, especially if we really want to see Linux extend its juggernaut act from the server to the desktop. In fact, I think the real answer isn't quite that easy. What we really need is to standardize at the API level, so that we get all or most of the programmer-level benefits (one set of tools and docs, easier code sharing and porting) as well as what users want (one set of apps that run everywhere with no problems), but we can still have evolution and competition above the API line. All the traditional arguments for having just one desktop would then evaporate.
The depressing part is that this level of infrastructure convergence won't happen any time soon. GNOME and KDE are based on very different widget toolkits, and those are far from the only widely used toolkits. Trying to merge KDE and GNOME onto a common widget toolkit and API for things like interfacing with their taskbars, etc., would be just about the ultimate programmer's nightmare. The current solutions, which all evolved more or less in parallel with zero concern for compatibility, in true open source practice, have far too much momentum for any of them to go away or change course this radically.
So, where does that leave us? Would a converged Linux desktop be a good thing? Yes, but it won't come about because of a deliberate effort. The best we can hope for is that one desktop becomes the de facto standard and the others wither and fall away to niche status. As I mentioned in part one of this editorial, KDE and GNOME are in a dead heat right now in terms of usage among programmers. That situation won't last, though. Even though I prefer KDE for my own use and I routinely recommend it to Linux newbies, it's clear to me that GNOME is about to jump out to a huge lead. We haven't yet seen the effects of all that support GNOME is getting from Eazel, Helix Code, Sun, Dell, and other companies. But once all that backing starts to deliver things like Eazel's services and Dell's customer base, watch out: The desktop could converge quicker than anyone expects.