Archive for September, 2006:

Why I switched to Linux

My first experience with Linux was in 1996. Somebody I met in IRC offered to send me a set of Slackware CDs he had lying around for free. What a deal! It blew my mind a little to think that a whole operating system could be (legally) free. I can’t remember now if it was four CDs or eight, but I remember being a little disappointed after I got it installed. Later I understood that Slackware was probably the worst distribution to start with, but then, coming from Windows and DOS, I couldn’t understand why nothing worked right. Where were the drives? Where’s the GUI? Why can’t it autodetect my sound card? With no guidance and no goal, it felt like I had taken a huge step backwards into the days of DOS. I quickly gave up on it, but the vision of a free, open source OS had impressed me deeply. I tried to switch to Linux on my desktop around 1998 or ’99; I think it was Redhat 6.something (this was before Redhat was selling an enterprise edition, I believe). I spent days and days trying to configure things like an internet connection over PPP, email, and sound. Sound never worked, but I finally figured out the rest. The breaking point, though, was X11.

What a mess. Back then, you had to actually define every display mode in terms of the horizontal and vertical refresh timings of your monitor. Not only that, but the only guidance the documentation gave was to find these timings in your monitor’s manual (what manual?), along with the ominous warning that using an incorrect set of timings could permanently damage your monitor. I finally got X11 working, but the default windows manager was ugly as hell, and there weren’t even any decent GUI applications available.

Well, by this time I’d had enough. I was spending all my time just trying to get the damn system to work the way I wanted instead of actually using it, and I haven’t even mentioned the dependency hell caused by RPM (this was before yum). For a number of years, Linux’s only place in my eyes was on servers. I finally switched for good last October, this time to Ubuntu 5.10, then Kubuntu 6.06. Here are the reasons I switched:

  1. Ease of use. Most things just work now; installation was a breeze, all of my hardware was detected, and most of the configuration dialogs make sense.
  2. I had started using a lot of GNU software on Windows with Cygwin. The Cygwin folks have done a great job, as have the contributors to GNU software that release Win32 versions, but despite all this running the stuff on Windows is still a pain in the ass. This was a very important point. I had gotten used to using a lot of software that I knew would work better and be easier to use in Linux. This is probably the biggest reason that I was able to stick with Linux through the rough parts, because even if I was having trouble with WMVs or Flash, I could still do my work.
  3. Windows Vista will be an expensive, unnecessary upgrade. I never upgraded from Windows 2000, but when it went into the no-updates phase I realized I’d be forced to upgrade soon. Vista has absolutely nothing that I need, and a lot of features I don’t want. On top of that, I realized in the previous year that pirating software is unethical, and I had a moral obligation to stop. Facing the choice of paying $200 for an OS with a lot of features that I didn’t want, or paying nothing for an OS with a lot of features that I did want but felt a little awkward, I decided to hunker down and make the switch.

Why am I writing this? There is a big group of people that advocate open source software with a conviction approaching religious. Like anyone advocating anything with such conviction, I think they are causing some harm to their cause. Here’s the thing that most of them try not to admit: Linux is not right for most people. Sure, it could be right for most people, but it isn’t. A lot of it isn’t Linux’s fault, but even if you got hardware manufacturers to make real Linux drivers, and you got the X11 group behind XGL, and you hired Orson Scott Card to write documentation for every package that was so good you’d read it in the bathtub, it still wouldn’t be right for most people.

Most people are afraid of change. These days, Linux itself isn’t really such a big change from Windows (patent and printer issues aside), but expecting someone to change not only their operating system, but every piece of software they use, it’s too much. Most people have a tenuous grasp on their computer as it is, they simply can’t drastically alter every aspect of how they interact with it.

If you’re serious about advocating open source software you have to embrace Windows. You don’t have to use it, but you have to acknowledge that most people do use it, and it’s good enough for them. Don’t push Linux on people, push open source alternatives to software they already use. Once they get comfortable with those things, they’ll find Linux when they’re ready.

If you want to advocate open source software, you have to be rabidly anti-piracy. Unfortunately, the very idea that software can be owned by someone, the crux of piracy, is considered invalid by a lot of OSS advocates, but for the average Windows user price is the only advantage that OSS has over more traditional software. Piracy takes that advantage away, so you absolutely must make it very clear to people that piracy is wrong. Really guilt them about it, and they’ll make the right choice when they know they have an option.

Remember that computers are already very scary for most people. So talk softly and carry a big LiveCD.

Tags: , , ,

Leave a Comment


I’ve been struggling on and off to get KPAX to work for the past few days. It turns out that the default method SLIME uses to communicate with the Lisp interpreter causes problems with the way s-sysdeps sets up the socket listening function in SBCL. The workaround is to set swank:communication-style to :fd-handler, but it has to be set before SLIME starts, so put the following form in ~/.swank.lisp

(defparameter swank:communication-style :fd-handler)

Now to get KPAX to work with mod_lisp…

Tags: , , , ,

Comments (1)