This question popped up on Quora a while back and people liked the answer. So, here is an updated answer to “Why do most of the developers in Silicon Valley prefer OS X over Linux or Windows?”

To understand why developers in Silicon Valley (or anywhere else) prefer OS X… you have to understand how products penetrate markets. Also you have to know about a multi billion dollar accident of history.

These issues are related. In fact, this is how I, a developer who prefers Mac, ended up this way in the first place.

In The Year 2000… The Rise Of Apple?

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 magical. At the time 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 computer running Windows 98. Eventually I got on the Windows XP bandwagon.

Anyhow, I remember a series of announcements where Apple 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 small cult events.

They were big news.

You, Me, and My Friend PHP

There was side thing that started to happen in my life as a developer.

In 2002 I learned PHP and I built my own database driven websites using PHP and MySQL. It was just like Facebook did back in the day.

PHP and MySQL were great, but there was one 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. 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 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…

Windows Suck(ed).

Developing for the web on Windows sucked. You could run PHP and MySQL there, but it never felt good. Your server environment was Linux usually, so 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. That 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. The Windows web developer experience wasn’t great.

Also, again back in 2002-2005, Ubuntu didn’t 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 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 one option…

You Had To Buy A Mac.

If you were a student in 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. All gave you this fantastic web developer experience, and they all ran best on OS X.

I tried django, WordPress, Rails, 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, it completely changed the kinds of software projects people wanted to build. By the way, you needed a Mac to build iPhone and iPad apps.

So, If You Put This Together…

When web applications were getting big, Microsoft didn’t care and Linux wasn’t a viable option for most people. When the iPhone happened, it took the 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 takes a little bit of history to understand. 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.