Why I am a Linux user
About eight years ago, I started using Linux almost exclusively as my desktop platform. Reactions ranged from puzzled confusion to expasperated eye-rolling. Since then,’ve gotten many questions about why, and how. (Actually, most people don’t even understand what I mean when I tell then I don’t use Windows.) I’ve been hard pressed to articulate a reasonable answer that doesn’t leave non-techies scrambling for the door.
There are several good reasons why I use Linux. The main reason, quite simply, is that it works for me: I’m a Unix guy, and I’ve been a Unix guy for almost 15 years. I’d used other OSes before that, of course, but none of them were interesting enough to make me care. In recent years, I’ve worked with other Unixen (Solaris, FreeBSD, and OpenBSD primarily), and, although they’re all nice, and familiar, and share most of the strengths of Linux, I’ve found that ultimately, the combination of the GNU system on the Linux kernel make me happiest.
But that’s just my preference, and not the interesting part. I’ve had the discussions about why my computers never get viruses or spyware, and how all my machines have uptimes of months or years, and sometimes it’s hard not to gloat just a little when I hear stories about Code Red and Slammer. But every Unix user can tell those stories.
I think the most important part of being a Linux user — and I don’t really know the best way to say this, so bear with me — is that it has kept me honest. I don’t mean that in the “otherwise I would be using a prirated copy of Windows 98” sense, but in that it ensures that I fully understand what I’m doing. I see too many full-time Windows users (even IT professionals) going through the motions, getting their work done through muscle-memory alone. Since so much of Windows is completely opaque, they have no choice. This works fine until something breaks, and then they’re calling me on the phone, claiming they didn’t change anything, honest. The transparency of the GNU/Linux system means that I can see all the inner workings. This transparency builds trust, fosters understanding, and encourages involvement. More importantly, it rewards all of those things.
This raises interesting and important questions, however, such as: Should people be required to understand what their computers are doing? Isn’t a computer simply a tool, like a VCR or coffee maker? I don’t really have an answer to that. As a geek, I enjoy understanding my tools (I’ve also taken apart my share of VCRs and coffee makers). But we’ve seen ample evidence that computers are not simply tools, at least as they exist today: Phishing scams relieve people of millions of dollars each year, identity theft is a steadily increasing problem, and viruses and worms regularly disable huge swaths of the Internet. This is a world where putting personal data on a computer can expose it to everyone, a world where a software bug or a misconfigured security setting can leak my credit card number or social security number to anyone who wants it. If I am to function in such a world — and, increasingly, I am, whether I want to or not — then I want to know for sure that every part of this world can be understood by the people who make it work. I need to trust that these systems are secure, reliable, and robust, and trust is built on transparency. I like to know that if I wanted, or needed, to, I could fix what is broken or change what bothers me.
In When a Linux user buys Apple’s Mac mini, Thomas Driemeyer wrote up his reaction, as a Linux user, to Mac OS X. My own thoughts and feelings echo his exactly. Both Windows and Mac users like boast about how slick and usable their systems are, and when everything works, I’m inclined to agree (and even be a little jealous occasionally). But I’ve spent enough time as a professional system administrator, not to mention long stints doing tech support, (professional and othersise) to know that the real test of a complex system — any complex system, from an operating system to a web application to a car to a building — is not how it works, but how it fails. This is why cars undergo crash tests and car manufacturers boast about the result. This is why test-driven development has become so popular amond software developers recently. This is why I chose
emacs ten years ago, and why I still do as much as possible from the command line. When your Windows box fails, your options are, basically, to reboot and hope it doesn’t happen again, or reinstall and try your best to avoid the troublesome combination of applications that caused the problem in the first place.
Not that these things don’t happen on Unix-based platforms, of course. The same flexibility and control that makes these systems so interesting to me also means that it’s very easy to break them irreparably. But short of a kernel upgrade gone bad, there’s very little you can do to your system to render it unusable.