Macs for Developers, or, why does my team want the most expensive kit on the market?

Post date: 23-Jun-2014 03:24:03

(I fielded this question recently and since it seems like a common one, I decided to post the gist of my answer for future reference. It's also written from the position of a web developer, but mostly applies to other sorts of development too - although game developers obviously have special platform requirements.)

Let's start with the counter-arguments first - why don't developers want Windows or Linux machines?

Windows

Lots of developers have Windows machines at home, certainly - usually for games or because someone else in their house is used to that platform.

But Windows as a development platform is a mess. The familiar suite of Posix tools available on other platforms aren't really there - or worse, don't really make sense - because Windows' architecture is a awkward, monolithic blob. The GUI is also getting steadily more hostile to power users too, with the mildly-obnoxious Windows XP/7 interface being steadily buried under a pile of 'Metro' eye-candy in more recent versions.

Finally, provisioning hardware for Windows is a hassle. While compatibility is rarely a problem, there's a bewildering array of providers, and there's steady downward pressure from businesses on price, making it hard to invest in a serious productivity machine when more 'affordable' systems are available.

Linux

So if developers want better configurability and a geek-friendly interface, why don't they use Linux? It's what they're usually developing for, right? Linux-based mobile platforms, embedded Linux devices, Linux-fuelled web servers and virtualised environments - it just makes sense to be running the same platform on your development machine.

So close, and yet so far. While Linux on the desktop has come up in leaps and bounds, it still often requires a lot of tweaking to deliver a solid, fully-featured environment, and there's regular issues stemming from the rapidly changing ecosystem that is desktop Linux.

The same hardware issues that Windows users have are also multiplied with compatibility problems - and while the performance requirements for running a version of Windows are relatively well known, what level of hardware would support a substantial development machine under Linux is usually a lot less obvious.

Finally, Mac.

So what does Apple get right with their ecosystem of products that make them so desirable? In many respects it's the fact that they offer less options, not more, that keeps geeks coming back - as counter-intuitive as that may seem.

Hardware is the most obvious place to start (Apple is, after all, a hardware company.) Apple laptops are solid, stylish, and extremely well designed - they 'just work', and are very comfortable to use. And whatever you think of Apple's business practices and manufacturing ecosystem, they are certainly able to offer high performance machines in very portable form factors, at relatively affordable prices.

And because they only support their operating system on their own (very constrained) range of hardware, it's relatively stable and integrated - features like power-saving and sleep/restore that (in my experience) "mostly work" on Windows and "sometimes work" on Linux-based systems are very reliable on Macs.

That constrained product range also makes it easier to justify to an accountant too. "The latest 15-inch iMac" is very easy to describe and order, whereas the equivalent hardware for the PC ecosystem would require a lot more explanation, and possibly justification.

OSX also reflects this 'less is more' aesthetic - while opinionated, it at least gets out of the way for most tasks, and its steadily growing suite of bells and whistles are predominantly opt-in.

It's not a perfect platform, of course - glossy screens, Thunderbolt over USB and an endless parade of display connectors are the price we pay for the nice hardware. And on the operating system side, OSX isn't immune to changes that break the way developers try to integrate it (XQuartz is a good example) and it's missing basic developer tools like package management, which requires hacks like Homebrew or MacPorts. But with tools like that in place, and all the other advantages I've discussed, even fairly anti-Apple developers like myself have been forced to acknowledge the platform as a compelling one to develop on.

In conclusion, we want the system that allows us to be most productive, and Macs generally represent the best set of compromises in this respect. So while they may seem expensive or hipster, ask yourself - what's more expensive in the long run, your developer's time, or the machine they spend it on?