No, no. I’m still a Mac guy. Really. That said, a Mac just isn’t an option at work; something about “fiscal responsibility, blah, blah, blah”. So this week, in a fit of fury over the fact that I desperately miss my powerful command line and a few annoying quirks in my development environment, I decided to create a Linux partition that I could dual boot into. I have to admit that I’ve been very pleasantly surprised.
I’ve tried to use a Linux desktop environment many, well, several, times over the last 5, 6, maybe 8 years. I’ve tried Redhat 9, SuSe 8, Fedora Core 1 & 3, Ubuntu 6.10 (I can’t remember which silly name it had) and a few other, less prominent distros. None of them quite did it for me. In a desktop, I’m looking for ease of setup and use – I don’t want to have to futz endlessly with stuff just to make it usable. This time, after two years since my last dalliance, I decided to roll with Ubuntu again since it’s still all the rage and has an active user community that I expect I’ll need for a while. I installed 8.04 (Hardy Heron).
Although I’m only a few days in – which means I’ll have plenty to write about over the next few days, weeks and maybe months – I thought I’d write a bit about a few reasons that I think Linux on the desktop – even your desktop – might be worth another look.
Package Repositories and Managers
One of the things I think the Linux has over both Windows and Mac is comprehensive, and centralized, software repositories. All (well, okay, most) of the software that can be installed, and function, on your machine is available in a few repositories that most Linux distros or their community maintain. Those distros offer package manager software that will, on your behalf, go get that software (and its dependencies) upon request and install it for you. That’s pretty powerful stuff and takes a lot of the onus off of the user. Package managers can be accessed through the terminal:
$ apt-get install my-software-name
$yum install my-software-name
Or, in the case of most of the popular, current distros, through a graphical interface. In the case of Ubuntu, that interface is the Synaptic Package Manager:
Tell it what you want and it’ll do the rest. To be honest, I really don’t think there’s a better software installation process out there. Not only is it fire-and-forget, but you don’t even have to hunt anything down. It’s neatly centralized in the repository.
Unlike Windows and Mac, Linux offers multiple desktop options, but if you prefer the Gnome desktop like I do, there’s a terrific piece of productivity software available (through the package manager, of course) called Gnome Do. I’ve already professed my love for QuickSilver on Mac and Launchy on Windows. Gnome Do is the Linux+Gnome counterpart for these great tools.
It’s not quite to the level of Quicksilver or even Launchy yet, but it’s a pretty strong offering and still a time and click saver.
Virtual desktops are a fantastic tool for focusing on the task at hand. By isolating application windows in separate desktops, each desktop can provide the means to accomplish something very specific. I have desktops for development, for idle web surfing, for work-related tasks, etc. Reducing the clutter on any given desktop keeps everything more organized and makes it easier to get things done.
For my money, there is no more powerful tool on any platform that I can think of than the Linux and, by extension, OS X terminal. The terminal provides complete access to the Unix shell environment which is so vastly superior to Windows’ shell that even an analogous mention is unfair to both.
I am, admittedly and unabashedly, shallow. All else being equal (or nearly so), I’ll choose pretty every day of the week. I love the OS X GUI and, quite honestly, I really like the Windows XP GUI. Linux has always been, at best, okay.
In the last few days, though, there have been long stretches where I’ve completely forgotten that I’m using Linux. That may say more than anything else I could write.
Everything, and I do mean everything can be customized. Even if there’s not a GUI to facilitate that customization, the terminal is there to access and edit the underlying text files that govern the appearance and behavior of everything in the Linux environment.
There are choices for everything. Maybe too many choices, frankly. Nonetheless, if something isn’t meeting a specific need, chances are there’s another option to try. And because every component is so loosely coupled from every other component, it’s generally pretty easy to swap things out.
It (Mostly) Just Works
Even today it’s not perfect. Linux is still the red-headed stepchild of operating systems and some equipment manufacturers make the choice to ignore it when developing drivers. This seems particularly true of printer drivers (or maybe I’m just more sensitive to those). Most of the truly critical stuff, though, just works. Connecting to my wireless network was every bit as effortless with Linux as it was with my Mac. Same story for Bluetooth. It’s hard to argue with that.
The support channels for Linux are volunteer-based and largely unofficial, but they’re every bit as effective, if not more so. Really, when’s the last time you called Microsoft or Apple for support? Yeah, me too. Look, if you spend enough time immersed in the community forums, IRC channels, mailing lists and other support platforms you’ll still bump into plenty of RTFM jackasses. They’re still alive and lurking, but on the whole you’ll find more help than scorn and ridicule.