Best OS for programmers

echoboomer83 profile image Amber Lammers ・1 min read

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


Editor guide
jfrankcarr profile image
Frank Carr

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.

isaacdlyman profile image
Isaac Lyman

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.

omawhite profile image
Omar White

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.

acro5piano profile image
Kay Gosho

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. The biggest reason is that Xcode is necessary to develop iOS apps, but there are other reasons.
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 has 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.

medikoo profile image
Mariusz Nowak

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.
lancecontreras profile image
Lance Contreras

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.

themoah profile image

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 ?

tsia profile image

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.

moopet profile image
Ben Sinclair

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.

ziggy42 profile image
Andrea Pivetta

Fedora, of course.

evanoman profile image
Evan Oman

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

gabeguz profile image
Gabriel Guzman

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.

dgeren profile image
David Geren

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.

gabeguz profile image
Gabriel Guzman

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.

sam_ferree profile image
Sam Ferree

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

dhairav profile image
Dhairav Mehta

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.

ulimahlangu profile image
Uli Mahlangu

Here's a little tip i can give those who want to program on Linux, download and use a pen testing distro like Kali. It'll eliminate a lot of the running around setting up environments. You don't have to use the pen testing tools but because the OS is setup to be a God amongst others (cyber security), a lot of dev envs are setup out of the box because they are needed for pen testing, a good example would be for instance, Android development you will find that in Kali a lot of the Android base tools will already be there. I hope i was able to put this point out.

Personally i believe that a Linux OS would be the best for development, imagining all of the freedoms, so a problem rises that Kali is not really a daily driver OS, it's like it's for warfare. You want something like Ubuntu to gel smoothly in day to day tasks. So a solution is to install LXD on Ubuntu and run Kali as a container inside Ubuntu.

Here's a link on how, it's a 20 minutes setup. kali.org/tutorials/kali-everywhere/

dtandrew02 profile image
Andrei Datcu

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.

svaza profile image
Santosh Vaza

If linux had half of the app catalogues that windows and macos has, it would clearly leave win and mac to dust.
Many companies don't prefer to support linux for example.

  • Spotify has app for linux, however it's clearly stated that it's the unofficial version and devs there are maintaining it in their own personal time.
  • github the largest repo of open source projects, doesn't even support linux officially (github for desktop). which makes me sad.
  • Microsoft office apps don't work on linux either, the basic ones like Microsoft todo, Onenote doesn't have linux support for them.

These are just few, there might be alternatives against them, however it's to note that many companies still have resistance against linux, that's because of linux user base which is just 3%.

I switched from win10 to linux as primary OS, worked smoothly for few weeks, but i started seeing those missing apps which i had used in win10. I am back to win10 as my primary OS now. Let's see what future holds for linux desktops (apart from servers) and definitely it won't die freezing death.

For me, all three of them viz Win10, MacOS, Linux Ubuntu are best for programming. However remember you aren't going to just write code, there would be other misc stuff that you will like to carry on with your laptop.

So Win10 or Mac OS as primary OS dual booted with Linux (Ubuntu preferred)

xowap profile image
Rémy 🤖

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.

jesuszilla_tm profile image
Jesuszilla イエスジラ

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

fyodorio profile image

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.

ernesto17 profile image

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

coderaman07 profile image
Aman Ojha

You can Read Out this post if you want to learn about the best OS for Programmers


eljayadobe profile image

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.