Best OS for programmers

Amber Lammers on April 20, 2018

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

markdown guide

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.


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.


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.


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 ?


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.


Minor point, but for those suffering with the different scroll wheel behaviors (like I used to with my mac running Windows 7 as a dual boot), the scroll wheel behavior in the macOS can be changed in the Mouse sys prefs. Look for "Scroll direction: Natural" at the top.


Yes! You can absolutely set it to be how you like. But I like my desktop environment to not surprise me from one version to the next.


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


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.


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.


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.


So,I mainly use Windows because it is compatible with all programming environements and other tools that I use(such as the Adobe Suite),I am more into Linux,so I have an Linux VM to program.It all comes down to preference,each programmer has his own tools.


+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.


I use windows 10 and I do programing in .net, I think you got in there all you need for programming


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.

code of conduct - report abuse