I love technology. And, I've always loved Apple. But many of Apple's advancements these days have been boring. I absolutely love what Samsung did with the Galaxy S7 Edge and Gear S2 and prefer both over my iPhone 6S and Apple Watch. Even multi-terabyte iTunes library (all purchased and legit) is lackluster. Vudu has superior audio tracks on their movies. Spotify has a better streaming interface compared to Apple Music. And I started buying HD FLAC audio albums years ago. In short, Apple is boring and losing steam. However, as a developer, I must concede they win hands-down compared to Linux and Windows. In fact, as I write this, I am on my Linux Mint 18 laptop and waiting for my MacBook Pro to finish reinstalling macOS Sierra.
For decades my allegiance was to Windows. I have published code, owned by Microsoft, within every version of Windows from Windows for Workgroups v3.11 all the way through Windows 2000. Although I was making money as a software developer as far back as 1982, Microsoft Technologies are really what paid the bills since the mid-80's. I was one of the first developers invited to the .NET Framework / VB.NET / Visual Studio alpha stages back in 1999 and was dedicated to the platform until early 2014 when I found NodeJS and the MEAN Stack. Since then, I've enjoyed being more platform independent. I've been able to ditch my virtual machines completely and have enjoyed using high-end hardware specially designed to flawlessly run anything but Windows. And, I must say, they all have their perks.
Windows is still the defacto standard for my .NET development and ensuring I'm 100% compatible with by clients' Office installations. And, from a "toolbox" perspective, my decades of Microsoft loyalty allows me to enjoy a high degree of fluidity and somewhat of a guru status whenever I'm working on a project. However, in the end, there's a ton of other nonsense I must deal with when on Windows.
Unlike Linux and Mac, antivirus is a must-have on Windows which takes a chunk out of your performance. The overhead of Windows, Microsoft Office, and most every Windows application takes large bites out of the available CPU and RAM. And, of course, the never-ending "Super Tuesday" update cycle from Microsoft is a weekly game of Russian Roulette with your machine's stability. Windows apps and OEM machines also tend to come with more bloatware and garbage. In a sense, when you have so many developers and companies pumping out software, and when you have tools like Visual Studio doing so much hand-holding, developers don't really care about the load on the customer's machine.
And let us not forget the Windows server platform. In short, it sucks for hosting large-scale applications. Aside from Microsoft charging massive licensing fees for virtually no reason, the OS is so tightly-coupled to antiquated technologies, like IIS and SQL Server, that your forced to rely on countless edge technologies (F5, Cisco Redirector, etc.) to tackle concepts that Windows either does not do well or not at all (clustering, load balancing, etc.). Oh, and unless you have a magic wand, you might as well forget about bringing in third-party server technologies (PHP, Python, Apache, etc.). All of this is why 95% of the global internet runs on Linux and why Microsoft has been forced to retool their cloud technologies to make Linux and Java first class citizens.
Speaking of Linux, I must say that, for the development I'm doing today, Ubuntu 16 and Linux Mint 18 are two of the best operating systems I've used. Since most of their apps and services are designed around basic text files and directories, configuring a new install can be done in a matter of minutes with one hand tied behind your back. In fact, mostly everyone (including me) has a set of "dotfiles" that make fully configuring a new machine as simple as typing one single command. Of course, all of this assumes you're running on quality hardware (Dell, System76, etc.) but, if you are, most of today's Linux distributions are a joy for software developers.
With every major company, including Microsoft, warmly embracing open source technologies these days, so many technologies exist that not only run on Linux, they were probably developed on Linux machines with the hope of the developer that they will be deployed on Linux. Docker and NGINX are perfect examples of this. Docker has virtually eliminated the need for virtual machines in a hosting environment. And technologies like NGINX are almost bullying edge technologies like F5 and Cisco Redirector out of the DMZ altogether.
Front-End & Microsoft
Apple & Mac
From a business person and software developer perspective, Apple and Mac take the blue ribbon price for 1st Place. In short, the combination of refined hardware, the UNIX-based OS, idiot-proof front-end and closed ecosystem make for a level of stability and productivity that cannot be matched by any other operating system or vendor.
Even the consumer-grade models of Apple computers are built to a standard that no other vendor (Dell, etc.) holds themselves to. Every other vendor cherry-picks components based on a profit margin. Having been in IT for over 31 years, I know first hand that two identical model computers from any other vendor may contain totally different chipsets or hardware. Just rebuild a Dell computer and try to figure out what drivers you'll need. You'll understand. Apple, however, takes more of an elitist approach. Each Apple model is built with one chipset combination from start to finish. Every laptop and desktop are identical regardless of which factory built them or when. And, since they're writing the OS for their hardware, you
virtually never have to deal with a driver issue or botched update.
The underlying UNIX subsystem provides a level of fluidity, comfort, and protection that Windows will never have. As with Linux, you'll enjoy an OS that is comprised primarily of folders and text files. Virtually everything you could do is available from either a text editor or command. This makes automating virtually any tasks a breeze. And, since they both use BASH, creating a hybrid "dotfiles" script is incredibly simple. For example, mine will run on both OSX/macOS and Linux so a new machine can be fully configured, with apps installed and tweaked, in minutes by issuing only one command.
Compared to Windows, UNIX has almost no viruses, in part because of how locked down the OS is by default. And while Microsoft has certainly improved their protection, with features such User Account Control, the sheer fact that most Windows antivirus apps are bloated and unreliable, give OSX and macOS the win. Heck, Apple's OS won't even let you install a piece of software if the author is not recognized and the app properly signed. Windows, on the other hand, could not care less.
The front end of OSX/macOS brings with it a level of polish and "attention to detail" even the most anal retentive OCD patient would enjoy. If OS'es were cars, OSX/macOS is the one with the seats and mirrors that auto-adjust for the driver, are virtually silent on the road, and will blow past the annoying driver in front of you every time. Small features like auto-unlocking by just sitting down, or going into a "do not disturb" mode when you're working or in a meeting, allow the professional to enjoy a distraction-free fluid workplace when it really matters.
As a software developer, OSX/macOS offer a "best of breed" approach for current technologies. Since most are targetted to a nNIX hosting platform, every back-end and middle-layer technology is treated like a first class citizen on a Mac. If you're going to use it in production, the same version will run on your Mac 99.9999% of the time. Every leading IDE is available on Mac (Eclipse, IntelliJ, Visual Studio, WebStorm). And, because the OS itself requires so little overhead, should you need to run a Windows virtual machine, you can do so without impacting performance. Speaking of VMs and other OSes, Macs are the only computers that can run all of the major operating systems, either natively or via a VM. And, while some machines will happily run Linux and most have drivers for Windows, none of them will run OSX/macOS in any way, VM or otherwise.
In short, if you want to truly be productive... if you never want to have another hardware failure or driver issue... if you want the ability to run every major operating system... the only machine you need will have an Apple logo on it. Even the consumer end laptops and MacMini desktops provide a level of flexibility and reliability that cannot be matched by any other Windows or Linux computer.