I've always wondered what is better for a workstation, a Mac or a High-end custom machine with Debian/Ubuntu/OS that mimics the production environment. This setup will be used only for work, and not for any other purposes. I believe MacOS is an all-rounder, but when its comes to pure development pleasure, I'm still confused. Feel free to share your thoughts!
I don't mind the host OS really that much. Do what you feel comfortable with. I do test my systems in the cloud as much as possible to get real life problems asap. And the cloud mostly means Linux. With some customers is Windows though, because they want MS. Period.
Since I have worked for 10 years in an MS environment I got used to it and now it's my workstation OS. This also made me aware of a lot of the issues i could face on a server machine when doing local development. My workstation is for more than just development. But if it were, i guess Linux would be my first choice. (tried Mac but it's not my style) . Mostly comes down to your IDE requirements I guess, and your preference to local or cloud-based development.
I used macOS a while ago and I think it worked good, but got tired when Apple decided to screw their OS with not so smart (IMO) interface tweaks. By that time came the Windows 10 betas. I tried using Windows (for gaming and some Adobe stuff) and a VM with Arch Linux, and I feel this way you have the ability to use any big software for Windows and you can still use the Linux VM for almost anything you would need.
I used to love macOS but in the end I prefer Linux because it gives a lot of choice that Windows/Mac does not provide. And I can still run Windows and Linux side by side so you won't have problem with any windows-only software.
I'm not sure what's with all the bad comments about Windows. As in all things tech, the answer is: "it depends." I've developed on all the major platforms. Currently, it's Windows because we're a Windows shop. Newer frameworks play mostly well with Windows, but there are challenges to getting things set up properly. However, I could say the same thing about Linux and Mac. I can't remember the last time I installed a framework, following instructions to the letter and having it just work. It rarely happens. I'm always having to install some other dependencies and there are always some unforeseen issues along the way. It's not an OS-specific problem.
The real answer should be: use what your employer uses. If you're independent or for home use, use what you're comfortable with.
About the only other major consideration is price. What can you afford? Macs aren't cheap. A beefy Windows machine is still cheaper than a low-end Mac. But, Macs do allow you to do practically any development you want, including iOS. Since Linux-specific machines are more typically expense (I have no idea why this is, but that's been my experience) you're better off with running it in a VM, or buying a Windows machine, blowing away Windows and installing Linux (or setting up a dual-boot system.)
OSX + Homebrew has given me the least issues, things generally just work - so for getting work done, definitely Mac.
Linux I've worked on just about every distro from Gentoo, to Arch, to Ubuntu, Debian, Fedora, CentOS, Mint, CoreOS, Suse, Mandrake, etc etc etc - some things work great, other things always requires tinkering for it to continue working - if it's not a sound driver, then it's a network driver or a graphics driver that requires tinkering. So far in my 15 years of Linux, I've never had any single distro where everything just worked flawlessly - it has certainly gotten a lot better, but it's still not at the level OSX with Homebrew is; maybe Linux needs a Homebrew as well to unify the way things are installed across all the gazillion distros.
Windows is just horrible to dev on, I don't know how anyone can dev on it.
I've used different Mac Laptops for Web Development for over 15 years. These machines are perfectly suited for the task. Out of the box you have a stable Unix OS, which comes pre installed with Apache and PHP. Throw in Brew for missing packages and you are ready to start working in minutes. Windows machines were never meant to be anything by Business tools for people who don't want care much about software.
Joe Clark
Full-stack developer specializing in healthcare IT
MGTOW MGTOW
You can actually natively run linux under windows after Redmond update for Windows 10 (2. August 2016)