Ask an industry analyst whether Linux is ready for the desktop, and the usual reaction is skepticism.
Linux is fine for running a Web server, the argument goes, but it's no good for getting day-to-day work done. There just isn't the kind of robust applications software available that would make the platform usable as a consumer OS.
Any Linux geek will tell you, though; recent product releases have gone a long way towards rectifying this problem. There's now a host of mature, consumer-grade applications available for Linux, from office suites to graphics software.
You can even get WordPerfect for it these days, thanks to Corel. What more do you need?
In light of all this movement towards creating a more user-friendly, productive Linux, I decided it was time to take another serious look at the platform's desktop viability.
So when a new Web project based around the OS came my way, I jumped at the chance to set up a Linux workstation and take a crack at using it for my everyday tasks.
The first hurdle I had to overcome was actually installing the OS. The installer software on my Red Hat Linux CD-ROM worked without a hitch.
But I soon learned that the X Windows software I'd installed didn't support the video chipset on my Dell's motherboard. In short: no graphics. No icons or fancy windows; just a prompt and a blinking cursor.
As I labored to find a solution, a co-worker who had been passing by my desk looked on. He blinked uncomprehendingly at the lines of characters, symbols and acronyms that filled my screen, the way an artist might regard a stock ticker.
"Wow. So, this is the real stuff. This is Code," he breathed, in that capital-C tone of voice.
People talk that way when they're not sure whether the fact you can make heads or tails of what they're looking at makes you a genius, or just a dangerous lunatic.
"Actually, no," I replied. What he was seeing was nothing more than filenames, their sizes, dates, and other attributes.
I'd done a directory listing to see what was on my hard drive. Since the X Windows GUI wasn't running yet, I'd had to use the more traditional "command line" means of interacting with the system.
Some online research revealed it would be possible to get X Windows working. But to do so, I would need to download some new drivers for my hardware and compile a new kernel — actually rebuild the core of the OS from its component parts.
As an experienced programmer, the task wasn't particularly daunting, though I knew it would be time consuming. But as a longtime Macintosh user and administrator, this seemed like a bad omen. Most computer users don't know how to set up a modem, let alone reassemble an entire operating system.
A day or so later, I'd finally gotten a GUI desktop up and running on the box. At this point, another neighbor, a graphic designer, stopped by my desk to assess the situation over my shoulder.
"So that's what Linux looks like," he mused. "I've never actually seen it running before."
I wasn't sure how to respond. He'd hit on one of the first details Linux newbies need to get past when evaluating the OS. Based on looks alone, what had been on my screen might have been Linux, and it might not. He'd guessed lucky because Linux doesn't actually "look like" anything.
At the time, I'd been running a desktop environment called GNOME; but it might just as easily have been GNOME's chief competitor, KDE. I could have been using any of several available "window manager" packages.
And to further complicate matters, I might have customized each of these options, such that the look and feel of the buttons and other graphical "widgets" barely resembled the default.
This must all sound very confusing if you're used to a system like the Mac OS or Windows, where fonts, icons, a mouse, and a graphical desktop are as inseparable from the function of the computer as a car is from its steering wheel.
But unlike these systems, the Linux kernel only controls basic things like CPU usage, access to hardware devices, memory allocation and disk storage. Everything else is optional applications software, layered on top — even the user interface itself.
A new user migrating from the Mac or Windows will probably want to start with the basics, sticking to whatever it is that Linux comes with. Ask for a "default Linux install," though, and you'll encounter your next surprise: there isn't one.
Sure, your Red Hat CD-ROM comes packed with all sorts of software. But it isn't the same software you'll find on a disc from Slackware or Debian.
Each of these distributions has its own ideas on how Linux and its associated software should be packaged and delivered to the user. There's no guarantee that your Linux machine will run the same, or even as well, as the one down the hall.
One distribution might default to GNOME; another to KDE. The disc you just bought might include a different version of the Apache Web server than the one your friend bought last week. Some of your installed software might be developmental versions that already require bug fixes.
Or, as in my case, your distribution might not yet include drivers that work with your hardware. Any Linux distribution you buy is little more than a starting point for a stable, up-to-date system.
Lucky for me, the job site where I'd set up my workstation had the key ingredient to Linux success: a fast Internet connection. I'd found myself downloading fixes and updates almost as soon as I'd turned on the power.
After the downloads came the task of configuring the system. The major distribution packagers have made a lot of progress in this area, and setting up a Linux box is by no means as difficult as it used to be.
Nonetheless, I still found myself slogging through text-based configuration files by hand to set options for some of the software. Nobody has yet come up with a serious contender to the Windows Control Panel for Linux.
So, despite all the hardships, was I ever able to use the OS as a desktop workstation, as I'd set out to do?
You bet. Absolutely.
Today's Linux is a marvel, arguably the greatest collaborative engineering project in the history of humankind. The software I've been using, either GUI or otherwise, has proven itself essentially bulletproof.
Getting it properly installed was difficult, true. But the system has never crashed, nor have I rebooted it for any reason since I got X Windows running. The skill and ingenuity of the many programmers who have contributed to it is astounding.
And if I needed to download source patches, compile software and drudge around manually through complicated configuration files, none of it really bothered me because, you must remember, that's what I was there for in the first place. I'm an engineer. Your mileage may vary.
Linux is perhaps the most customizable, configurable, adaptable, and flexible operating system on the market. The range of knowledge that goes into its design is incredibly broad.
You could spend hours delving into its secrets, striving to understand its complexities, tooling around with its software and adjusting its parameters to suit your needs. It can be both mesmerizing and maddening.
It's telling that the one thing I still haven't gotten around to doing, in my quest to find out whether Linux was suitable as a desktop OS, is firing up that copy of WordPerfect.
It's not that I don't believe it's a suitable replacement for its Windows counterpart. I'm sure it works fine. But with all the complex setup and configuration I've been doing on my Linux workstation, it seems there just hasn't been time to delve into something as basic as word processing.
And that's exactly why I'm typing this article on my humble Macintosh, in Microsoft Word.