Best OS for programmers

What do you think is the best operating system for programmers and why?

Did you find this post useful? Show some love!

The one you are most comfortable with that supports the tools you are comfortable with. I'm most comfortable with Windows and Visual Studio and have been for quite some time. It would hurt my productivity to switch away from this. Likewise, someone steeped in Linux or Mac might have a significant productivity hit if they were required to use Windows.

The good thing right now is that there's a lot of convergence between operating systems that make moving between them a lot easier than it was just a few years ago.

I've done some time coding in Linux (Elementary OS, Mint, and Ubuntu) and in Windows. A few years ago choosing an OS was all about your technology stack. Specifically, if you were using .NET, Windows was your only option. But with the advent of Mono, Ryder, .NET Core, and C# plugins for VS Code, we're almost to the point where .NET is portable across platforms.

I've found that most coding tutorials and setup guides expect you to use Bash. You can sort of get Bash on Windows, but in my experience it's just not the same--even if you nail down most of the commands, things like sudo and /dev/null aren't ever going to work the same (if at all). So if you're a beginner, I strongly recommend Linux, and specifically Ubuntu or one of its forks. Ubuntu is easy to use, mature, and compatible with almost everything.

Most big companies, I think, will expect you to use Windows. Between Outlook, Office, and a variety of security and VPN tools, Microsoft has an overwhelming presence in the business world. And most things work just fine in Windows.

If you're working with other programmers, use whatever most of them use. It will make collaboration and troubleshooting easier.

As the software world transitions to the web and mobile devices, desktop operating systems will become less and less important.

I personally like using MacOS because I think it is the best of both worlds, access to bash and Unix tools, but also allows me to integrate all my fancy Apple products into my workflow. Honestly though as everyone else has said, it’s mainly a personal preference at this point.


Hey there, we see you aren't signed in. (Yes you, the reader. This is a fake comment.)

Please consider creating an account on It literally takes a few seconds and we'd appreciate the support so much. ❤️

Plus, no fake comments when you're signed in. 🙃

Definitiely Linux (except if you're doing iOS/macOS or Windows development of course).
macOS software declined in the last years so much that i switched to linux myself just a few months ago and i couldn't be happier.

if you already have a mac you can try to run linux on it but basic rule of thumb is: if it has a retina display, forget it. it kind of works sometimes but you will get frustrated and hate it. sell it, get a thinkpad or dell xps.

I have used windows, linux, and mac on and off for work and personal projects and I honestly can't tell the difference. The tools I use are available across all 3 platforms so at the end of the day it doesn't really matter in the domain I work in.

I can see that for folks that work in more specialized domains they might need some specialized toolset that includes the operating system. I mostly do backend web development and infrastructure and for that domain the OS is not in the critical path.

My current OS for personal projects is Windows 10. It includes linux subsytem and hyper-v so all the tools from linux that I'm used to using are all available and I can switch back and forth between linux and windows as necessary.

Whatever OS you are most productive in (or maybe the OS you want to deploy on).

It's way too general questions. Think of OS as a tool. Do DevOps\Front-end Developers\Android developers need the same tools for their job ? Do you pick your tool because it's the most popular or because it answers your needs and you enjoy using it ?

I think there are three answers to this:

  1. The OS you're most comfortable and productive with.
  2. The OS you are required to use for your job.
  3. The OS which is best (or least harmful) to society.

1 and 2 are obvious and have specifically to do with being a programmer.
3 is all about a personal decision to pick a free OS and how firmly you want to take that commitment.

macOS because:

  • It's unix under the hood and that makes it programmer's best friend (Windows misses on that)
  • If needed, you can easily get Windows running full speed in VM (and it's not possible to have macOS VM running on Windows)
  • Access to top notch professional software as e.g. some Adobe products (Linux misses on that)
  • Best hardware/software integration.

I was about to say linux but you have a better point. That's what I do, I have a mac and use virtual box with fedora VM.

When it comes to web programming, Linux (especially Arch Linux + lightweight window manager) is good. I used to use Arch Linux as my daily Desktop environment. It has really great performance, Docker compatibility, and close to production environment.

However, I switched to MacOS recently for I have to develop iOS app, and will never use Linux as my daily development. As a developer, I should do a lot of kind of things out of programming. Recording rectangle screenshot, editing movie, connecting to printer, and connecting to the internet via WiFi. Every time my Linux cannot connect to WiFi suddenly, I ran journalctl, systemctl restart ... and sudo reboot. This taught me a lot about Linux, but now I think I should focus on solving problems outside my PC.

If one can a lot of knowledge about Linux, such as creating driver, edit kernel, and network, I recommend Linux. Actually I did not have enough understanding about Linux so I switched to MacOS.

Most of the time, as a personal habit, I listen to songs on my bluetooth headset, while programming.
I love Ubuntu as an OS and it's lightweight nature as compared to MacOS or Windows. But when it comes to the polished nature of Applications supported, it takes a major hit. For example: Bluetooth drivers and audio is pretty much broken if you try to use a custom equaliser in any Linux. You don't get Apple's Mail client and have to make do with Thunderbird (boring!) or install a third party client like Nylas (which is not allowed in a lot of institutions due to them saving data on Cloud or something! ). I'm not an Apple fanboy, but my work MacBook Pro just works for everything, Safari/Mail/Any other application you throw at it will work given enough RAM, and will look and feel polished. Stellar battery life, Crisp beautiful Retina display and the SSDs they use will never make it feel like it's slowing down for most of my development, involving Xcode/Android Studio and for smaller tasks - Visual Studio Code/Sublime Text/Vim. Even their Window Manager transitions, animations, the force touch trackpad, all these are part of my workflow. The day Ubuntu/Linux gets polished and reliable Applications for Mail/Wireless audio drivers and battery life parallel to MacBook Pros and a decent multi-touch trackpad with drivers or features like MacOS natively, I might just switch back, but I know it's a long shot.

For me it's OpenBSD. Why?

  • Stable. Once you have hardware that works on OpenBSD, you're not likely to have any problems with it.
  • Upgrades are incredibly easy, and don't break things.
  • Relatively up to date packages which are easy to install
  • You can pick your window manager (also true of linux) so you don't have to deal with trendy new UI changes that force you into a new way of doing things (hello MacOS + the scroll wheel that is now backwards)
  • All modern programming environments are either included in the base system, or easy to install with a package
  • If you want to read about how Unix works, the documentation in the man pages is excellent.

Is it perfect? No, but it works really well for me.

+1 for Linux. (Especially since with have .NET Core now!) This is especially true for web developers as most of the internet runs on linux and it's always nice to get your dev environment close to your production environment (Although this is becoming less important with containers)

Windows if you're doing something windows specific (like WPF, UWP or maintaining legacy ASP.NET)

But if you're comfortable in macOS the macOS works great too,

If you really needed linux, you could always spin up a VM from macOS or Windows.

Building and sharing is our job and so should be the spirit of our OS. Linux is the pure product of developers dreams and unlike other developer-driven projects has pretty awesome hardware support and has a lot of UX and tools options. So yeah, Linux is perfect for the job.

Mac OS X. You can develop for literally anything on it: Unix systems including OS X, as well as Windows.

Though macOS is very user-friendly in general, Linux meets developers’ needs better. You always know what’s happening underneath it all. I love this predictability. Besides, it’s highly customizable. I prefer xubuntu in particular - it’s fast, simple, deb-based. If your machine is powerful, Linux gives great experience, nothing’s better.

The best operating system for programmers? I don't think it has been made, yet. ;-)

In the meantime, I really like Unix, so I mostly use macOS.

Classic DEV Post from May 4

My Programming Journey So Far.

It has been about 5 months now. Since I started making the change to pursue graphics programming. I have done a ton of work in that time. Between school and learning a new language and studying a whole lot of math. And in this time, I have decided why not start documenting my process.

Follow @alexgwartney to see more of their posts in your feed. is now open source!
View Announcement Post View GitHub Repo
Amber Lammers
Member since Mar 8, 2018
Trending on
How to take breaks while coding
#productivity #learning #career
Why haven't you gone to a development conference?
#discuss #webdev #conferences
What are your thoughts on multiples package managers?
How does the web look if everyone owned their own data?
What is the simplest code to explain a loop?
#basics #anylang #discuss
What is your approach to learning a new Javascript framework?
#discuss #learning #vue #javascript
Who's looking for open source contributors? (August 20 edition)
#discuss #opensource
What are your favorite terminal apps or scripts, to use for productivity?
#discuss #python #bash #productivity