The Myth of “Just Works”

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.

12 Responses to “The Myth of “Just Works””

  1. Andy Says:

    Perian ( http://perian.org/ ) is really solid when it comes to DivX (and lots of other stuff). Flip 4 Mac ( http://www.microsoft.com/windows/windowsmedia/player/wmcomponents.mspx ) makes WMV suck a lot less.

  2. Steve Purcell Says:

    I’ve had the same experience regarding the ease of installing development software on OS X, and before switching from Linux I could install the exact same Debian packages on my development and production machines. But more of the day-to-day things “just work” on my Mac, so it’s an acceptable price to pay.

    A minor note regarding ssh-agent on OS X; you can use the excellent SSHKeyChain.

    The main site is at http://www.sshkeychain.org/, but Google instead for the various Intel builds that others have made.

  3. Luis Bruno Says:

    You might want to try searching google for sshkeychain.

  4. yipyip Says:

    The truly frustrating thing about media playback is that, if you know how to jump through the requisite hoops, Linux is the best bet (at least on x86, I don’t know how the various dll’s behave on x86-64).

    You have to violate a bunch of North American laws to do it, but when you install the Win32 codecs, between them and the open codec implementations, you can play just about anything in just about any contemporary player. This is wonderful, because it allows you to avoid the usability nightmares that are Windows Media Player and Quicktime Player. Illegal though it may be, it’s by far the smoothest media playback experience on any platform.

  5. Craig Turner Says:

    I agree - I have a mac laptop and need to ugly fiddling to do all sorts of things I consider basic with it (nfs, terminal emulation problems, I can’t get an adequate workspaces solution, etc) whereas under ubuntu things are just really easy. And I think the user environment is better - hold down alt to drag windows from a click anywhere in the frame, better hotkey configuration, cleaner interface, better tools.

  6. david lee Says:

    check out SSHKeychain as a replacement for ssh-agent

  7. Geoff Wozniak Says:

    Hi Adam. I’m “this guy” as mentioned at the beginning of your post.

    I’ve written a response to your essay. I started it as a comment and it got too long.

    http://www.wozniak.ca/?p=187

    Geoff

  8. Steve Lianoglou Says:

    “The lack of any sort of real package manager, consistent location for configuration files”

    Have you tried MacPorts [1] or fink [2] a try?

    I personally use MacPorts and have been very happy with it.

    -steve

    [1] http://www.macports.org/
    [2] http://fink.sourceforge.net/

  9. Jedi Says:

    So what were the steps you took to set up your mac developer environment? I’m working to do the same…there aren’t many (any?) comprehensive tutorials or what have you around, that I’ve seen.

  10. Tim Wee Says:

    I have the same experience as you. But I found http://hivelogic.com/articles/2005/12/01/ruby_rails_lighttpd_mysql_tiger

    which helped a lot. Plus you get TextMate! =)

  11. Brad Says:

    It is imposible to create a general purpose machine that perfectly fits every one of a million possible specialities that it may be used for. Your mistake was assuming that you are an average user or that Web Developers should expect to not have to know what they are doing. Macs are created for the 95% of the market that don’t care about programming, don’t care about software development, and just want a tool to help them get their work done. In that regard, Macs are excellent and “Just Work”.

    Why would you buy a printer that doesn’t explicitedly state that it works with a Mac and expect it to work? Do you also buy XBox360 games for your PS2? Playing pirated video is not something that *most* people want from Quicktime… if you can figure out how to locate and download pirated movies, you can probably also figure out how to install the codecs to play them. If you play within the bounds of Apple’s ecosystem (buy and play your movies in iTunes or Front Row, for example), you’ll find - of course - that it “Just Works” as expected.

    I know that you’re just using trying to pump up Ubuntu and get some hits, but seriously, as a longtime linux user (FC and Ubuntu) I would never, ever, recommend a Linux install to someone without computer experience or for general home or business applications. I would never try to assert that Ubuntu “Just Works”… your own statement saying a “simple” “sudo apt-get blah blah blah” to install software shows how idiotic that is. For the majority of the world, its just a random string of characters. Its only simple for you because you already know it.

  12. SpamBot Says:

    Well I managed to install php5 with no problems, and I’m a noob…
    You have to check if things are mac-compatible BEFORE you buy them.
    Playing media on the web on any new machine is always a trial- the real problem is there are just too many media types! Fortunately, after a short while everything neccessary gets installed.
    I agree with the previous poster, in other words!