The modern first world is a world revolving around convenience. Businesses are...
Best Operating System for Developers
MacOS vs. Windows vs. Linux
Subscribe To Our Newsletter
Get updates and learn from the best
As promised in my article, Windows Subsystem for Linux, here is my take on the 3 major operating systems of our time and what I think about them as a developer. To preface, other than the brief history of each operating system, this is an opinionated article. If you feel that I am missing some key points or do not agree with some of what I’ve talked about, please share your thoughts in the comments below! Ok now as that’s out of the way, let’s begin for real.
While I quickly traverse the history of each of the big 3 operating systems, please note that I won’t be going back into the days of UNIX and Berkeley Software Distribution. Not that I don’t like to geek out on the history, I just don’t think that information is pertinent to the context of this article.
History of MacOS
Assuming you know the about UNIX and BSD (*nod your head in agreement*), we pick up with Steve Jobs getting canned from Apple in 1985 and starting a new software company, NeXT. Jobs, along with the team at NeXT, developed a new operating system based off the FreeBSD codebase and called it NeXTSTEP. Fast-forward to 1996, Apple acquires NeXT and begin upgrading the NeXTSTEP operating system. This was when Apple married some of the older components of the BSD kernel back into the Mach kernel creating what we now know as the XNU kernel. Apple also adopted NeXT’s usage of the object-oriented language, Objective-C. Fun fact: if you’ve ever messed with iOS or macOS development and have seen the ‘NS’ prefixes on the Objective-C classes, it’s paying homage to its usage back in NeXTSTEP!
History of Windows
Windows started as a GUI (graphical user interface) that ran on top of MS-DOS, not as a stand-alone operating system! It was the first time the Microsoft user had a cursor and can point and click to interact with the machine, rather than typing in a bunch of commands. This first iteration was released into the wild in 1985 and was named Windows 1.0. Surprisingly, it was not received well by too many users due to the fact that the heavily mouse-reliant interface was a relatively new concept at the time and users found it to be slower than typing in the commands! 2 years later gave rise to Windows 2.0, an upgraded version of the first series and introduced two flagship Microsoft products: Microsoft Word and Excel. Version 2.0 also introduced the overlapping windows functionality.
Windows 95 was the first time that it was released as a standalone operating system and did not run on top of MS-DOS! Since version 95, the most notable releases have been XP and 10. Shoutout to Windows 8 for gambling on the prediction that a majority of interfaces were heading towards touch rather than keyboard & mouse! Sometimes you set the trends, but sometimes you fail spectacularly!
History of Linux
Since I did a fairly extensive history recap of Linux back in my previous blog post, Windows Subsystem for Linux, I’ll just drop a link here and you can read about it if you’re curious! Well now that we’re all on the same page of how these 3 behemoths came into being, let’s get to the reason about why you’re here…
Things to Consider
Alrighty so which operating system should you go with as a full-time developer? Before I give you my answer let’s first brush through three key considerations so that I can pre-emptively justify my answer.
The first, and most important consideration, is cost. We all have a budget, and while some may be higher than others, no one has an infinite amount of money. Going in order from free to most expensive – Linux, Windows and MacOS. You heard that right, Linux is FREE! That’s a great deal if I ever heard of one. A close second is Windows, coming in at around $100-200 depending on the level you get. My copy of Windows 10 Pro was $199 through Microsoft. Finally, there is now no legal way to install MacOS on a non-Apple product so you’re stuck paying for the entire machine just to get your hands on that OS!
Scope of Work
Work vs. Play
Lastly, is developing all that you plan on doing on this machine? If this is your personal machine I’ll go ahead and answer this one for you. No. Technically not many truly use their machine only for work. Honestly, it’s really hard to do, plus with the capabilities of the modern CPUs and higher base RAM, multitasking is easier than ever. I’m currently jamming out to tunes as I switch between writing this article and coding out a new mobile app on my MacBook Pro. I’ll probably jump on my Windows desktop later tonight and game a little if I can squeeze in the time. Your machine doesn’t have to be only for work, and if it’s not what do you also enjoy to do? Traditionally Windows has been the go-to OS for gaming enthusiasts. Nowadays, many gaming platforms also have ports for Linux and MacOS, though the experience is not as good as a native Windows machine.
One OS To Rule Them All
I know, I know, enough dodging the question. What do I consider the best OS for professional development? MacOS. If you’re shocked by this answer and the section above does not justify it, let me give you a point-blank explanation. I get more work done when on my MacBook Pro. Why? They have so much going for them.
Easy Environment Setup
I started off my coding career with React and Ruby on Rails which runs flawlessly on my machine. I then picked up React Native and began to build cross-platform mobile applications. For the bulk of what I work on, my MBP serves me well. Within the last year I picked up some maintenance work on a .NET project that runs exclusively on Windows and have recently signed a contract to build an AI construct which I am learning Python and TensorFlow. For both of these projects I work on my Windows desktop. Would I work on MacOS if I could? Absolutely. (While I can technically work on the TensorFlow project on my MBP, I prefer to leverage my desktop’s GPU to train the construct because it takes significantly less time in comparison.)
Nowadays you aren’t limited to a single OS per machine. Depending on your storage situation, you can partition your current drive or just drop in an additional drive with a different OS. Apple machines come out on top again with a better dual boot experience, less prone to issues. I believe all of the Intel-based machines come outfitted with the Bootcamp software which easily allows you to partition your drive to include a Windows boot. Before I built my desktop, I worked on the .NET project off of a bootcamped MacBook Air. The project build times were extensive, but it worked! I have recently repurposed that same MacBook Air to run both the native MacOS as well as Ubuntu 20.04.
The area where Macs fall short is gaming. If this is a true passion of yours, then consider purchasing Windows 10 and setting up Windows Subsystem for Linux. The only caveat would be if you are an iOS developer. As an iOS developer you need MacOS. There’s no way around it.
Well, that’s it for this article folks. I hope you enjoyed the read and again, if you disagree with any of the points I’ve made or have some of your own considerations to be made, feel free to write a comment below. We also appreciate it if you hit that Like button if you found this from one of our social media accounts and share with your friends. Stay tuned in a couple weeks for my next article, Nutrition ++ = Coding ++.