TBH: If You Are a Web Developer You Should Be Using a Mac
I used to think that Macs were overpriced garbage, but after over a year of owning one, now I think they’re just overpriced. If you take price, marketing and hardware out of the equation, you’re left with two operating systems that are similar enough for the everyday use, but as I started to dive deeper into web development, it seemed like OS X was rapidly becoming the default operating system of choice and for a reason.
I don’t like Windows much anymore, but I have to be nice to it. It doesn’t give me many problems like it used to during the ol’ XP days, but that’s because all I use it for is playing video games. I started my development career on a Macbook Pro and got lucky with an awesome Hackintosh at work. Lately, I’ve revisited Windows for development since my team has grown to be mostly Windows users.
I’ve had this post drafted since July 2015, and things change fast. Right now, I think Macs are better for web development. They are not life altering, but the journey is smoother. I’m publishing this now, even if I feel unqualified to make such a claim. I will revisit this subject as I learn to continue to play around in both operating systems. This is my opinion on OS X being the better choice. They are mostly observations and from personal experience.
Can’t Use Node.js With Ease Obnoxiously Short File Path Limit in Windows
The Windows file path has a character limit of 260 even in Windows 10. Yes, this can be worked around, but what would compel anyone to deal with such lunacy? Other operating systems do not have this limit, making Windows sorely stick out.
The problem hasn’t always been unavoidable. Node’s package manager, npm, has had an issue with the file path not more than a year ago. Basically, each node module had a folder with its dependencies. The dependencies are other node modules, which have a folder for their dependencies too. This could repeat till you reach the file path limit easily.
Was this an afterthought? Perhaps. The founder of npm, Isaac, wrote in 2008 how he fell in love with Unix and switched to Mac while working at Yahoo after being a long-time Windows user. Thankfully, this is no longer a relevant issue in npm 3, but it leads to my next point.
Most servers run Linux
It’s nice to be on the same operating system that your software uses, just like how it’s nice to be on the same page about what kind of pizza toppings to get.
OS X is a Unix-based system … or Unix-liked. More importantly, Linux and OS X operate very similarly and share the same file structure and Terminal commands. Macs are basically servers out of the box, just like Linux.
However, in 2016, we do not use our own machines as servers. Maybe we need to run a certain version of PHP, but don’t want to install it on our machine. Somehow, we need separation.
Vagrant is the solution for that and it has become the de facto standard tool for web development over the years. For the uninitiated, it is basically a quick and easy way to configure and share VM (virtual machine) configs, whether it be VirtualBox or VMware. These VMs are basically mini Linux computers (which can be and are used as servers) and you can safely test out new server-side things, like PHP7 or HHVM, directly on your machine. You can even deploy your VMs straight to Digital Ocean.
Hosting these virtual machines on your computer is effectively the same as running a VPS. Seeing your website in this fashion takes away a lot of the black box magic of LAMP/MAMP and even your web host. Learning about Vagrant indirectly explained to me the concept of shared web hosting, why it is cheap and why the websites share the same IP.
Most of my work is mainly in the front-end, so I will be real with you and say that I do not know all the tangible benefits of VMs, but it is a great stepping stone for growth. For instance, if you ever did want to run your own server or get a VPS, you’ll have some knowledge of Linux and how to navigate it without a GUI because there won’t always be one.
A GUI is Not a Prime Concern for Most of Our Tools
In the past year, after using a lot of programs that have no interface, I’ve realized that a GUI is not necessary and there won’t always be one to depend on.
Some of the things I touched upon, like Node and Vagrant, do not involve a GUI and I’m not entirely sure the exact reason why, but I take a guess and say integration.
Vagrant is popular enough, where IDEs, like PhpStorm, now have integration built-in, along with Git. Annoyingly though, just like Github and Bitbucket, they will have their own way of referring to Git things or they will have their own Git features they created. It helps to learn Git in its raw form instead of being totally dependent on an application’s nomenclature for Git commands.
Sass is another front-end technology that isn’t just going to work when you install it. Developers make tools for other developers and you cannot wait for a GUI to introduce things to you.
What does this have to do with Windows?
The Windows command prompt is lame. Most people already know this. The command prompt just isn’t as powerful. There’s no path auto-complete, it’s difficult to read/ugly, and there’s little things, like having to install Ruby to run Sass from the Ruby command line or needing to use PuTTY or cygwin to SSH into a server. That could all be done with Terminal.
A lot of tools web developers use are command line based and the Windows environment in the mix can make things annoying. It feels like I’m balancing more tools than I need to to get things to work in Windows.
I hate to make aesthetics a selling point, but the Terminal in OS X is a bit more colorful from the get go, the text renders more smoothly, and is built-in. You also have some amazing alternatives, like iTerms 2.
Everyone Seems to be Using OS X
Maybe your friends don’t use it, but it is hard to ignore OS X’s growing dominance. Did you know you can now learn command line on Code Academy and, of course, it is actually Terminal.
You can also Google photos of Google’s offices. Go ahead and add engineer or software to your search terms, if you feel none of those are developers.
I never viewed this as sound logic to begin with, but I’m starting to think Macs aren’t only for designers.
It’s the Only Way to Use Adobe Products on a Unix-based System
I think we have established that Unix is probably the better route to go, so why am I not advocating Linux?
Adobe products are the standard and expectation for designers . I know Adobe is a monopoly and has that annoying subscription thing going on, but for all intensive purposes, the Creative Cloud apps have the most documentation and tutorials online, so you can get much more done at a faster pace. I’ve tried Gimp. It had a huge learning curve, less support resources, and no one cares if you use it. I repeat, no one cares that you use Gimp.
We Aren’t Hipsters; That’s Not Even a Thing Anymore
I wrote this not to say that OS X is better than Windows, but to make a point. There is a rise in developers using OS X–“real” developers–not that an OS is grounds for judging someone’s skill as one. We aren’t stupid or brainwashed and the decision is shaped by many factors. It is a viable and validated OS.
I, for one, found it easier to get my career up and running while being on a Mac, but I am just as likely to switch to Windows if given enough reason to, but I don’t see that happening. I worked in IT and handled tons of laptops and each somehow had a flaw or something undesirable. I built my own desktop twice, so I am not used to compromising. I bought a laptop once and it was terrible despite how well I cared for it and how much research I did on it. I tried using Ubuntu and Mint/Elementary OS and the fact that I couldn’t use Photoshop was a problem. I didn’t want to spend any amount of money for a sub-par machine again. I needed everything to work.
Ironically, I have been an Apple hater most of my life for its pretension, poor ethics, and now their recently poor design decisions. Not to mention the the devices are very classist. It would be great if you could use OS X for cheap or free without going through the hassle of building a Hackintosh.
We will see if I will grow into Windows the more I play on it. I feel so much faster on OS X. Working where you are fastest is really the most important factor. If I achieved what I have while using a Windows computer, I probably would continue using one.
If money is not a factor and web development is relatively new to you, I would highly recommend getting a Macbook Pro.