NOTE: There is a newer updated version of this article availble here - Why Some Developers Prefer Mac Os X Over Linux Or Windows?

Original question from Quora:

Why do most of the developers in Silicon Valley prefer OS X over Linux or Windows?

I saw many videos of Google, Dropbox, Quora and many other companies which 90% of engineers use Macs there! Why Macs are so popular? Why they ignore these?:

  • Expensive while has no powerful GPU!
  • In Linux you can edit everything you like
  • Servers are running Linux so better to develop on the same OS

My Answer:

To understand why developers in Silicon Valley prefer OS X, you have to understand how products penetrate markets and also you have to know about a multi billion dollar accident of history.

They are related and are most easily explained by how I, a developer who prefers Mac, ended up this way in the first place.

Way back in the early 2000’s Apple’s stuff kept getting better and better. The iMac kept getting better, their hardware improved, their software was cool, and then the iPod happened.

In 2002 I went off to college I had a friend who was a huge Mac nerd. He had the early iPod and it was totally magical. At the time I think I had a MP3 CD player, which was very cool in its own right, but something about the iPod was amazing.

At the time I had a Windows computer running Windows 98 I think, and eventually I got on the Windows XP bandwagon.

Anyhow, I remember a series of announcements where Apple slowly took over the world. First, iTunes had paid music downloads. Second, they put iTunes on Windows. Third, they moved the Mac over to Intel.

Within a few years, by say 2005, the Mac was a pretty cool place to be. People were buying iPod Mini’s and Apple events were beyond just these small cult events. They were big news.

Now, there is a kind of side thing that started to happen in my life as a developer. In 2002 I learned PHP and I build my own database driven websites using PHP and MySQL, just like Facebook did back in the day.

PHP and MySQL were great, but there was one sort of important drawback. Windows wasn’t the best place for PHP and MySQL. In fact, Linux is where the world ran PHP and MySQL.

So, I got into Linux really hardcore. I mean, I was using obscure versions of Linux where you compiled the entire system. It was fun, but not very productive.

Over the next few years I noticed how more and more software was moving online. Web based software (what we now call the cloud) was starting to become the standard and PHP was the place to be.

There is only one problem, and this is the multi-billion dollar mistake…

Developing for the web on Windows kind of sucked. You could run PHP and MySQL there, but it never felt good and your server environment was Linux usually, so sometimes there were bizarre differences that made life miserable.

Microsoft at the time didn’t care about web developers. This was after they declared the web browser finished with Internet Explorer 6, which allowed for Firefox to come along and kickstart modern web development.

At a time when me and many other developers were developing our web programming skills, Microsoft didn’t care about us as customers and the Windows web developer experience wasn’t great.

Also, again back in 2002-2005, Ubuntu didn’t really exist and even getting Linux loaded on a laptop was at least a weekend project. A laptop running linux with working WIFI drivers and sane power management out of the box was unheard of.

So, what else out there could you do web development on in a sane way as a laptop?

Think about what you really need for web development. You need Photoshop for graphics, a nice text editor for editing code, and a unix environment to run apache, php, and mysql.

There was only really one option…

You had to buy a Mac.

If you were a student in say 2005, Apple started running this great yearly promotion. You could buy a MacBook laptop and they’d throw in a free iPod!

Sure, it’s $1,000, but instead of a clunky Dell, you got a nice Mac and an iPod too! It ran everything you needed and you felt cool because you had a Mac.

Over the next decade owning an Apple laptop went from being a weird, niche thing to being a sensible default.

As it relates to web development, in that time you saw the rise of Ruby on Rails, WordPress, and python’s django framework which all gave you this fantastic web developer experience, and they all ran best on mac.

I tried at various times to use django, WordPress, Rails, and other more obscure web development technologies and the Windows experience was always worse.

Meanwhile, Microsoft didn’t care at all. It’s only been in the last few years when there was money in renting Azure servers that Microsoft cared about anything that wasn’t running on their C# .NET platform.

Oh, and when the iPhone happened and it completely changed the kinds of software projects people wanted to build, you needed a Mac to build iPhone and iPad apps.

So, if you put this together…

When web applications were really getting big, Microsoft didn’t care and Linux wasn’t a viable option for most people. When the iPhone happened, it took a trend toward Apple laptops and exploded it.

Now that Microsoft cares a little and Linux is more viable, it might seem weird that Apple laptops are so darned popular, but it’s not weird at all.

In hindsight, it’s completely obvious to me that Apple laptops got popular amongst developers. It just takes a little bit of history to understand that Microsoft couldn’t see past their own nose and it cost them billions of dollars in hardware (and now cloud server) sales.

I wonder what billion dollar accident of history is happening right now that will seem obvious in ten or fifteen years.


P.S. Have you subscribed to Code Career Genius yet?