Archive for the ‘OS X’ Category

The Myth of “Just Works”

Sunday, December 3rd, 2006

This guy recently switched to OS X for the same reason that many people do: he wants a computer that Just Works.

This is, of course, an absolutely excellent reason to go Apple. The combination of quality hardware and software - all integrated together in a dazzlingly shiny package by a central authority - cannot be beaten in the computer market right now or any time in the recent past. When people ask me for computer advice, my default answer is “Get a Mac.” Without knowing anything about what they might want to use it for, I can feel confident that 98% of the time this is the correct answer.

This particular guy switched from Linux to OS X because he was tired of tinkering. That is also not an unsual story. But I do think he’s making a fundamental mistake, and a fairly common one from what I’ve seen.

When it comes to computers, there is no such thing as “Just Works.”

Let me give you an example. I bought a Macbook early this year, shortly after they came out. I’m delighted with it. To my mind, Apple defines the laptop. When I run across a PC laptop (pretty rare these days), I find myself chuckling. It feels like a Model-T, all big and clunky. In my mind’s eye it spews smoke and makes noises like ka-chunk and clang.

So my Macbook is great, but for what I do - web development - it is VERY far from Just Works. To my mind, Linux (and Ubuntu specifically) Just Works, but the Mac requires all sorts of tinkering.

In fact, using OS X’s UNIX reminds me of Linux five or six years ago. It works, sure, it’s reliable, absolutely, but Ubuntu has this polish and maturity that you can taste.

For example, I spent quite a lot of time and frustration trying to get what I consider to be basic tools - Apache 2, MySQL 5, PostgreSQL, PHP 5.1, Ruby 1.8.4 (OS X comes with 1.8.2, which won’t work with Rails) - working. The lack of any sort of real package manager, consistent location for configuration files, or startup scripts drove me insane. I invested many long days dealing with this stuff. I got a couple of seasoned OS X developers to give me a hand and even they ended up standing around scratching their heads as we dealt with trying to get these basic tools up and running. OS X doesn’t even come with gcc installed by default, for pete’s sake!

After days of downloading, compiling and recompiling, tinkering with Apache module configurations, and so forth I finally got most of the tools working. To this day I still have not been able to get Postgresql to install. And the OS X experts I consulted with assured me that things were way more difficult than this back before DarwinPorts. More difficult?!

Contrast this with the magic of Ubuntu, where all of this software is located in their highly well-maintained network repositories. Most of this software can be installed (or upgraded) by typing something like:

sudo apt-get install apache2 php5 mysql5 postgresql-8.1 ruby rails subversion

Or just finding the packages in the graphical package manager and clicking “Install” for each one.

It’s not just developer software, either. I bought a new printer (just a standard consumer laser printer), and after bringing it home decided to plug it into my Mac figuring that that would be most likely to Just Work. Nope - after some searching, I found the vendor’s download page and discovered that they don’t plan on offering Intel drivers. (Downloading drivers is one of those things that seems really archaic after you’ve been using Linux for a while. Any hardware that is going to work - which is most of it - will work just by plugging it in.) So the printer is now plugged into my Linux workstation.

I had some other rude shocks, too. Having long been in open-source land where playing movies is hit and miss, I looked forward to being able to just click on any movie trailer or some silly Internet video and have it Just Work. It’s better, yes, but not completely. To my surprise there are a number of codecs that don’t work out of the box with Quicktime. The program did not give any useful message about where I could get the codec or how I could play the movie, just aborted with a cryptic error message. A friend clued me in to downloading the DivX codec, and that seems to solve some of it, except that it seems to cause Quicktime to crash or lock up a lot. And then of course there’s Windows Media Player, which brings all the user-friendliness and reliability of Windows (read: none) to the Mac. So what I’ve found is… playing movies is hit and miss, just like it was on Linux. I can play more movies now - I think - but forget about Just Works.

In a head-to-head comparison there’s no doubt that OS X and especially Apple hardware in general wins out in the Just Works category. Nevertheless, it seems to be a widely held conception that Just Works is absolute, which it is not. It depends on what you want to do, and that’s something to keep in mind when deciding on your hardware & software platform.

I suspect most developer types are doing exactly what I do: using some combination of Linux and OS X. Most people may divide it up by using Linux (or other free unix) server-side, while using OS X locally as something between a thin client and a full development environment.

For myself it’s a no-brainer to use a Macbook for my laptop needs, since its close integration with the hardware means that stuff like wireless, battery management, and sleep mode all work beautifully out of the box, no tinkering required - and I still get access to all the really vital unix tools, like ssh. On the other hand, my Linux box is way easier to use for development tools. For example, have you tried setting up ssh-agent on OS X lately? (On Ubuntu, ssh-agent Just Works: it’s running by default for all X sessions.) And despite the impressive CPU power of the Macbook, my Pogo Linux workstation runs processor-intensive tasks like large unit test suites about twice as fast, making me much more productive when doing serious development.