Skip to main content

Using Macs for Web Development

Team Insights

If you look carefully at the images of RDG at work throughout our site, you'll notice that all of us use Apple laptops. No, this isn't a requirement for employment at RDG, but there is something to be said about using Macs for web development.

I was recently in the market for a new laptop. My faithful four-year-old MacBook had served me well, but even with an SSD and maxed RAM, it was merely hobbling along. The search for a replacement brought up all sorts of questions: Should I just get the same model? Should I upgrade/downgrade? Should I even buy a Mac? It's this last question that I thought long and hard about. Windows 8 was newly released, and while many people hated the new interface, I loved it. Couple the new interface with a touchscreen, and you have some very cool UI things going on.

Still, could I develop for the web on it? The answer, of course, is yes. Many people seem to be perfectly content developing for the web using Windows machines. And not just .NET people, but people using open source technologies. So I thought through the basic applications used for development: a web browser, an image editor, a local web server, and an IDE/text editor. Windows has all the major web browsers. Check. Windows has Photoshop. Check. Windows can run Apache. Check. Windows has Sublime Text. Check. So the basic applications are all covered.

But after thinking about this further, I still felt uncomfortable. And here's why. Our open source technologies were initially developed for Unix-type systems, then later ported to non-Unix systems like Microsoft Windows. Many perform wonderfully on Windows systems, but others have edge case issues and/or inconsistencies. All our projects end up on Unix-based systems, so these edge cases and inconsistencies will slow down development and make deployment more difficult. One DevOps best practice is to have the development environment as close as possible to the production environment. If our production environments are Unix, then so should our development environments. Now it's completely possible to create a virtual machine for development purposes that very closely mirrors the target production environment. This approach nullifies my concerns with developing on a Windows machine. However, it adds another layer of complexity that simply isn't required with Unix-based like OS X. Yes, OS X is still very different from production web servers, but it's lightyears closer to them than Windows AND it doesn't require designating system resources to spin up a virtual machine OS to merely serve up a single PHP website.

That's the first argument for using Macs for web development - OS X is close enough to production web servers that it doesn't require dedicated virtual machines for development. The second argument is more of a personal preference for development workflow but is still a relevant argument. When I develop I have two windows open: My text editor and my terminal. OS X's terminal is a full-blown Unix terminal, so I can utilize a full stack of native open source development tools. Sure, many of these command-line tools have been ported to Windows. But I'm pretty sure my workflow wouldn't use as much command line if I were developing on Windows, because it would require another shift in thought processes because of how different the Windows command line is from the Unix command line. There are already plenty of thought process shifts I go through during the day as a web developer (Photoshop, HTML, CSS, PHP, Drupal, JS, client communication, and meetings). Why add another?

My third argument for web development on Macs is in contrast with using other Linux systems. My first two arguments are for *nix and against Windows. This argument is against the other *nix variants and is very simple. Other *nix systems don't have the commercial support of OS X. Get a Photoshop file from a client? Gimp might be able to handle it, but good luck. Have a client reporting issues in Sarafi? Fire up the ol' virtual machine because there is no Linux version of Safari. 

My final argument is in the vain of the third by contrasting with other *nix systems, and is that OS X "Simple Works." Now, I write this with a proverbial "knock on wood" because I've been experiencing kernel panics on my new MacBook Pro, which I believe are a result of the 3rd party RAM I have in it at the moment. But, for the most part, using OS X allows me to spend more time being productive and less time maintaining my machine's Linux distro. Plus I can take advantage of all the cool integration between OS X and iOS. 

So there you have it. These four reasons kept me on OS X. What are your reasons? Or perhaps why do you choose Windows or Linux for web development? I'd love to hear from you.

Need a fresh perspective on a tough project?

Let’s talk about how RDG can help.

Contact Us