Published: March 14, 2022 • Updated: June 01, 2023 • 2 min read
Which operating system is the best for programming?
This is a perennial question in code boot camps where I’ve taught. I think students see the choice as a fork in the road. They want to go in the right direction.
As you probably guessed, I don’t think there is a right direction. When you’re starting out, my advice is to try each one and choose for yourself.
Don’t be this person:
“I hate Linux! Full disclosure, I’ve only ever programmed on Windows…”
The operating system you choose does matter, because programs run differently on each OS. Look beyond the marketing pages for each language and framework to experience this truth. A language written on Linux is going to run better on Linux, at least initially, and that’s if it runs on other operating systems at all. There might be a great version for Windows or Mac that’s close in parity to the main branch. Or there might not. Expect not.
Further, some kinds of programming require a certain operating system. If you want to develop an iOS application, you’re going to need a Mac and an Apple mobile device. To an iOS developer, which operating system is ‘best’ is moot.
Nothing beats experimentation: try each OS with an open mind. Early in my career I had the opportunity to develop for a few years on a Windows machine, then Linux, and then a Mac. I didn’t plan it this way, and the transitions were not always smooth. Along the way, I learned to write code and use each OS to do basic tasks. If you haven’t done this with at least MacOS, Linux, and Windows, your opinion has blind spots.
It’s also a Two-Way Door Decision, in that it’s easily reversible. With virtual machines you can run any OS. Setup should be straightforward in each environment, and if it’s not, that’s something to consider. If you’re new and switching sounds daunting, use it as an opportunity to make yourself and your code more OS-agnostic.
Give every OS a try and see what you think. The choice matters! But it’s reversible, and whatever happens, the experimentation will make you a better programmer.
What are your thoughts on this? Let me know!
Join 100+ engineers who subscribe for advice, commentary, and technical deep-dives into the world of software.