cowboyd's picture

The Linux Endgame

I believe that most of us will be using Linux as our primary desktop operating system by 2015.

This conviction of mine is not born so much by fail on the part of Microsoft, or by my recent annoyances with Apple, but by the simple reality that the Linux desktop is so rapidly increasing its mass of awesomeness. Beyond merely achieving parity with mainstream OSes, I see its current trajectory eclipsing and surpassing them over the next five years or so.

Personally, I've been using Linux on my own desktop since '95 when I first worked at FundsXpress, and as my laptop operating system since '98(The first laptop I ever owned, a Transmonde was crappy at linux. If you want to see something funny, ask Zane about the now defunct Transmonde). Without making this into a history lesson, or sounding too much like a Yorkshire Gentleman, the difficulties that came with using Linux back then are pretty much the same as they are now and can be divided into roughly three categories: Lack of applications, imperfect hardware support, and the catch all of "usability". The only difference between now and then is that these gaps are rapidly closing and the rate at which they are doing so is accelerating. In some cases where there were gaps previously, there are rays of excellence showing through and exposing gaps in other environments.

The gaps of which I'm talking about were thrown into stark relief for me when I jumped on the OSX bandwagon back in 2006. I'd always dreamed of having that awesome unix workstation that looked good, but also had that sweet unix development environment that's so much of a pleasure to live and work with (In the foolishness of my youth, I thought that this would be centered around enlightenment. Oh the follies of the young). OSX was the first time I felt this dream truly realized after having used Unix as my primary operating system for over 10 years. I can only describe the feeling as coming home after so much time in the wilderness. Not only was the operating system clean, efficient and sexy, but both mainstream and niche apps were to be had in abundance. Plus, I've never spent even one hot minute dicking around with drivers and configuration for my Apple hardware(when I was 19 years old, dicking around like this was actually a pleasure. Go figure.) From that point forward, OSX has set the bar for what a proper desktop can and should be.

Indeed, If I had had an extra testicle to spare I probably would have stuck with OSX when it came time to purchase a new laptop two months ago, but at the time I was under serious budgetary constraints, I desperately needed a laptop and a loaded Thinkpad for just over $1250 was a no-brainer when compared with $2900 for an equivalent MacbookPro. Even without the 20% off from Lenovo at my time of purchase, it would have been over $1000 cheaper. I'd be lying if I said that the $1700 price difference wasn't 99% of my decision (I literally could not afford to pay three grand for a Mac, no matter how freaking awesome it might be), but I walked into it without much apprehension especially since I'd had a such a stellar experience with Thinkpad previously, and also because Lenovo was confident enough in their own hardware compatibility to offer laptops with Linux pre-installed.

What I was not prepared for was how pleased I would be with my purchase or how little I would miss my OSX box. I was taken aback by the progress the Linux desktop has made in almost every category in just two short years.

Of course, excellence in available applications was the least shocking since I had been using Linux in anger as recently as 2006, but as far as the standard application suite is concerned, it's got the vast majority of users covered and covered well. In fact, many common applications such as Rhythmbox(music), Thunderbird(mail), and Pidgin(IM) compare quite favorably to their Windows and OSX counterparts. Of course, if Photoshop, Final Cut, AutoCAD, or *cough* Twitterific are on your shortlist of must-haves, you may want to hold off yet.

Finding, installing, and configuring applications on Linux has been superior for quite awhile. Windows has nothing. OSX has ports which is still weak when compared to apt or portage (for everything else it relies on the fact that there's just one program that does what you want to do, and your friends can tell you what it is). Not only can Steve O'Grady explain this better than I can, but this has also been par for the course in the Linux world for ages.

My eyebrows really started to raise when I saw how the laptop hardware pretty much worked right out of the box. In an area where Linux has historically lagged badly this was the easiest I've ever had it. I should mention that the first thing I did upon receiving the Thinkpad in the mail was to pitch the enterprise SUSE 10.1 that came with it in favor of a clean Ubuntu install. More than ever before it all just pretty much worked out of the box: WIFI, USB, Modem, Hibernate, Suspend, Function keys, volume keys, brightness, all worked without me having without me having to compile custom drivers, set boot options, unload and reload kernel modules in response to system events such as suspend/resume, and *gasp*, no editing XServer config files(another thing I used to enjoy as a teenager that I now find revolting).

I'd still have to rate the hardware support as imperfect as I've still not gotten my native nvidia drivers installed and working yet, not to mention that $@*! little WIFI network LED. Clearly, this would not have happened with Windows or OSX. Nevertheless, this persistent and annoying side-effect of running Linux is quickly fading into the background and can be expected to completely disappear as more and more vendors offer Linux OEM.

But it was the third area of usability where I felt the greatest gains have been made. Usability is a loose term, but I mean roughly "how easy is it to get things done and how easy is it for me to track the state of my machine as I'm doing them". As a result I lump application installation/configuration/launching/switching as well as overall "beauty" into this broad category.

The biggest shock to me personally was how good GNOME has gotten. I know. I know. I almost can't believe it myself that I'm loving the formerly troglodytic GNOME so much. It's not that it's ever been bad per se. It's just always been so damn mediocre that I've always preferred either KDE or a lightweight window manager and xterm to get by. After quickly replacing the atrocious Ubuntu poo-poo color with the standard blue clearlooks, it's quite attractive. The system menus(which I use very rarely) are well placed, not overbearingly nested, and the docks/toolbars stay out of sight for the most part. Most important though is that the suite of utility applets for configuring sound, network, bluetooth, notifications, power management, etc is both complete and stable. Mostly it just works and stays the hell out of my way. Of course, a large part of this isn't actually GNOME at all but due to other system components such as D-Bus, Compiz, and my personal favorite: gnome-do, all of which can be used with KDE and other window managers.

D-Bus makes sure that all my applications have a standard way to communicate both with the desktop and with each other. For those of you who are familiar with OSX, think of it like Growl on steroidal crack. Not only do I get notified when people tweet, log on and off of skype and IM, but applications(or my own ruby/perl/javascripts) know when new hardware is introduced (if they're interested) and can even react to events such as the lid of my laptop opening closing. D-Bus is one of those technologies that you'll never see directly, but that enables all kinds of meta-synergystic awesomeness in the applications you use.

As far as eye-candy goes, I was also blown away by what compiz has accomplished. In many areas, the effects were every bit as good as those on my OSX box. Hiding windows to reveal the desktop is just as good. Tiling windows to select: not as good, but switching virtual desktops with the now compiz cube? Let's just put it this way: for the first time in my entire life, I'm actually using virtual desktops. In that sense, I feel like it is unfair to call eye-candy eye-candy, as though it were somehow unecessary. A proper effect illustrates the transition of an object from one state to another. It provides information to you that would not have access to otherwise. That's why they're popular. That's why we'll only see more of them, and as we do Linux will be right there at the forefront.

Apart from all the new worky-worky-ness and attractiveness of the latest desktop, I'm not sure if it would be worth it at all if not for one program: gnome-do. I know it sounds weird to put a single program, and such a small one at that, at the top of the list of things which make the Linux desktop such a pleasure to deal with these days, but that's simply how I feel from the bottom of my heart. Gnome-do is a quicksilver knockoff that's actually exceeded its parent in both functionality and stability. It's more flexible. It's easier to learn. There are many more useful plugins, and unlike Quicksilver, the developers are accessible *and* it's under active development.

There's hardly anything I don't use this program for: instant messaging, skype, mail, web browsing/searching, twitter; even things like suspending, logging in/out, and installing packages with APT. It's ridiculous. Apart from the venerable shell, and the individual applications themselves, no other piece of software colors my user experience more than gnome-do. It's primarily because of this program that I don't really care how the rest of window manager behaves as long as it stays out of my way. If I were the GNOME project (and I'm not) I would concentrate on expanding on this idea and making it the centerpiece of my environment.

Even with all this crazy deliciousness there are still some things that are not so great that deserve honorable mention.

First up is application action integration and key bindings. It irritates me to no end that there is no standard action-to-key mapping in GNOME or KDE. Most applications seem to get save right, and there are generally constellations of key bindings around things like "preferences", "new", and "quit", but nothing like Windows and especially not OSX, where knowledge of the system translates directly into knowledge of new and previously unencountered applications. Small things like this cannot be underestimated, and it seriously detracts from the perceived polish of the overall desktop. This problem feeds directly into the "global keybindings" problem. Because there is no standard for action-to-key mapping, an application developer is never quite sure which hot keys are "safe" because there are none. As a result application hot keys are constantly conflicting with the window manager and with each other(to my great frustration). Fixing this should be a priority. All application developers need is an easy path to do it the right way.

The same thing applies to a global menubar which exists in KDE(but is disabled by default), and is apparently a subject of some controversy in GNOME. I don't know why the global menubar has not been the standard on Linux, but I suspect that the the only reason is because the majority of developers grew up with the menubar-per-window like I did, and perhaps because way back in the day some applications didn't have menus at all. Whatever the reason, the globalmenu bar is better, full stop. I feel qualified to say this for 2 reasons. 1) I use both linux and OSX daily, and 2) I used to scoff at the global menubar before I did. If you feel otherwise, you should shut up, try using OSX as your primary operating system for 2 years, and then return to Windows/Linux to see if you still feel the same way.

Despite these drawbacks, my recent experience leads me to believe that we closer than ever to a tipping point. All it will take is a few more mission critical apps like photoshop to cross the platform divide, and a few more hardware vendors to shore up the remaining compatibility issues before we all feel safe(and not just thrifty) investing in a linux box.

In the mean time, I'm going to keep with my setup of having OSX on my desk and linux in my lap. I've found that in human language, computer language, and even operating systems, it pays to be a polyglot.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You may post code using <code type="language">...</code>, <code>...</code> (auto-detect), or <?php ... ?> (highlighted PHP) tags.

More information about formatting options