jb… a weblog by Jonathan Buys

The Million Monkeys

Computers, the bicycles for the mind, the idea engines; when we work at a computer we open the door to limitless avenues of creativity. Cracking open the lid of a laptop can be the first step to writing a novel, starting a new career, or getting in touch with long lost friends. But, when the machines misbehave, when they don’t perform as expected or present their interface in ways that are difficult or impossible to decipher, even the most mundane of tasks become a chore. The possibilities for the future melt away under the perception that computers are difficult and unreliable, our untrustworthy opponent to getting things done.

I use a Mac because every time I need it it works, and it has a consistent interaction language. That is, the main tools all recognize a similar set of common keyboard and mouse commands. Cut, copy, paste, click & drag, swipe to go back, etc… in a well designed environment each application operates nearly indistinguishably as part of the whole. The Mac is everything I wanted from a Linux or BSD desktop: all the power of Unix under the hood, and a well designed GUI on top of it. As great as I’ve always thought open source is, after waiting for fifteen years I think it’s safe to say that the year of the Linux desktop is never going to happen.

I remember when I first learned about OS X and the FreeBSD underpinnings. I was overseas, stationed in England in the Navy. I spent my days building firewalls and web servers with OpenBSD, and my nights loading every version of Linux I could get my hands on into this beige IBM PC. I resolved that as soon as I got back to the states I’d get a Mac. At the time, desktop Linux was rough, I mean really rough. Most of the time the modem wouldn’t work, there was no broadband, some of the devices (like the sound card) would work, some wouldn’t. You might be able to get native resolution on your monitor, you might not. You could download and compile a new driver for your CD player to listen to music, but that might drop you into dependency hell.

Things have cleaned up quite a bit in the open source world since then. Package managers like yum and apt make installing applications a breeze, while automatically handing dependency issues. However, the overall quality of the systems still can’t compare to OS X in either application fit and finish, or in system reliability. I challenge anyone to come up with a desktop application that debuted first on the Linux desktop, I mean something that is truly original happening first on Linux. That’s simply not where the innovation in the field is happening.

I should stop for a moment to say that I believe open source takes two forms: consumer code and server. Server side open source has been advancing at a breakneck speed, pushed by major influx of talent and money by big companies like Google and Amazon, as well as entrepreneurs building on Linux to deploy their applications. The best tools for the server are being built for open source, the best software for the consumer is being built by independent Mac developers.

Years ago some thought that open source would eventually take over everything, we were always just one release away from Linux being great. After all, the open source desktop had thousands of developers all over the world, all donating their time and talent for free, because they believed in what they were doing. What has actually happened is that the Linux desktop has become just good enough for some limited day to day use in specific scenarios. Why haven’t the thousands of programmers been able to surpass OS X after all these years? Why isn’t the Mac playing catch up to PCs running Ubuntu, instead of the other way around?

Part of it has to do with how Apple controls both the hardware and the software of their systems. Part of it has to do with how Apple has been able to pay good wages to talented developers for a very long time. Part of it has to do with the hierarchy of designers within the company, all working towards a common goal and an overarching theme. Linux has thousands of developers, but it doesn’t have a single unified vision for what the system should be. Instead, they have massively distributed groups, each working individually on their own component, each defining how their part should work.

Linux has talented developers, and pockets of designers, but until they are all under one roof they won’t be able to compete with Apple. Apple has nearly 40 years of experience developing personal computers, that’s tough to compete with for anyone.

As for Linux? A million monkeys typing endlessly may someday create the entire works of Shakespeare, but in the meantime, they are going to write a lot of junk.

culture mac tech work