Choosing a Developer Workstation OS in 2023

Nathan Clement · September 8, 2026 · 9 min read

Choosing a Software Engineering Workstation in 2023

Made this image with Canva Pro — such a cool tool!

Often, software engineers are like systems they build: they like questions with a clear, unambiguous answer.

Unfortunately, many decisions are truly a matter of preference.

  • Great systems can be built using Node.js, Python, or the .Net Framework.
  • Great styling can be created with Tailwind, custom React.CSSProperties tooling, or even Bootstrap.
  • Great Apps can be created using React, Vue, or Angular.

That being said, each decision comes with consequences. Maybe your ORM package doesn’t provide stellar support for Treelike data structures. Maybe you want to implement a new Command Bar UI, but you end up having to create a custom wrapper for kbar in order to support your chosen JavaScript framework.

Operating system choice is much the same. Each comes with a set of consequences, which are constantly changing as each system evolves over time.

Over the last few years, I have had the somewhat rare chance to build apps in all three of the major operating systems.

My day job was for a company that worked exclusively on Mac computers, but my personal computer is Windows Laptop with WSL, and my second personal computer runs Linux Mint. In the next sections, I will provide a short summary of each OS, as well as a list of Pros and cons, specifically for software engineers.

MacOS

For years, software engineers used MacBook pros almost by default. The classic Silicon Valley stereotype is a room full of engineers coding away on their silver metal boxes with the San Francisco sun streaming in.

Silicon Valley Engineers and their MacBook Pros

Photo by Austin Distel on Unsplash

These days a lot of the positive aspects of using MacOS remain the same, but a few negatives remain


Positives

  1. macOS is UNIX compliant: Among other things, this makes the terminal on a Mac work much like it does in Linux, and many of the standard conventions for scripting “just work” on a Mac.
  2. Portability and capability: Coding on a Mac without peripherals is easy, due to the power of the touchpad and swipe gestures. Despite using high end Windows machines, I have never found anything as satisfying to use without monitors and a keyboard/mouse as a Mac.
  3. Hardware is well made, powerful, and stylish: Whether you are looking for something ultra-portable, or more powerful, Apple hardware is beautiful, useful, and durable.
  4. Natural choice for iOS development: Apple makes it difficult to build apps and publish them to the App Store without using a Mac. If you are focused on iOS development, it may be easier to just take advantage of the ecosystem available via OSX.
  5. Some powerful applications are only available on macOS. A classic example is the video editing software “Final Cut Pro” — unfortunately if you *must* use certain software for your job, sometimes it is only available on a Mac.

Negatives

  1. Hardware is expensive, especially compared to similar machines that run Windows or Linux. A top of the line MacBook Pro with 32 GB Memory, 1TB SSD, and a M2 Max Processor starts at $3499. Meanwhile, the most expensive option for Microsoft’s Surface Laptop costs $1949, and has similar specifications.
  2. Running Linux from macOS must be done via containers or via Dual boot. This is perfectly acceptable, but not as cool as WSL.
  3. Python2 system integration While it was once a huge positive that Macs come with Python built in, I have found it quite annoying to deal with the default install of Python being version 2. It has made life more difficult than necessary when setting up and running Python from a Mac. Luckily, this is in the process of being phased out, since Python 2 has been sunset.

Neutrals

  1. Software updates: Macs update far less frequently than Windows, but their updates take much more time. In my mind, this is totally a matter of personal preference.

Windows

In the days of Internet Explorer, Microsoft Office, PowerShell and Visual Basic, Microsoft development lived in a strange world of its own.

In a dramatic corporate shift, this walled-off world opened up as Microsoft embraced open source, leading to great new tools like Visual Studio Code, Windows Subsystem for Linux, and Windows Terminal. High profile acquisitions like GitHub and major investment in companies like OpenAI have rocketed Microsoft into the heart of software engineering trends.

A Microsoft Office Building

Photo by Matthew Manuel on Unsplash

For the less cynical among us, this is an interesting time to experiment with Microsoft products and systems.

Positives

  1. Windows Subsystem for Linux: I started using WSL when it was in the developer preview, and it has come a very long way. When I first installed WSL, it literally bricked my PC, but over the years it has become an absolute joy to use. For those who don’t know: WSL lets you run a fully featured Linux environment and Terminal from Windows. You can even choose any distro you want by importing a tar file!

Linux Directory in the Windows File Explorer and an Ubuntu Command Prompt alongside the Windows Command Prompt

2. Hardware diversity and cost optimization: Most desktop hardware comes with Windows installed by default. If you want hardware options, Windows is the OS for you.

3. Touchscreen friendly: Microsoft has spent years optimizing their desktop OS for touch enabled devices, and it shows. Most interfaces are built with mobile in mind, and work well using touchscreens or a keyboard and mouse.

4. New perspectives on what a Desktop computer means: Microsoft has really been pushing envelope with new tools like Phone Link which really has no analog in the macOS world — I have literally re-organized my physical desk because this tool eliminates the need to have my phone visible to respond to messages or read notifications. Continued experimentation with new features and tools is exciting and gives each major software update a “Christmas Morning” feeling for someone like myself who really enjoys playing with the latest technology.

Negatives

  1. Bloatware: Whenever I get a Windows PC, I have to spend lots of time deleting unwanted applications, which is frustrating.
  2. Less polished experience than macOS: Remember, when I first installed WSL it bricked my PC! To be fair, I was using the developer preview. Horror stories of the “Blue Screen of Death” all come from the Microsoft world as well. You don’t hear this much when talking about computers from Apple.

Neutrals

  1. Software Update: It seems like I have new software updates every week on a Windows Machine, but the update process is usually very fast and relatively painless.

Linux

Lots of people have strong opinions about Linux as a desktop operating system. There are good reasons for these strong opinions, since Linux is vastly different from both Windows and macOS. That being said, with continuing improvements, a new focus on user experience by distribution developers, and moves by large organizations and even governments around the world to transition to Linux, it is no longer possible to ignore Linux as a major player in the OS game.

Linux isn’t just for hooded hackers hidden deep in a dark basement

Photo by Kevin Horvat on Unsplash

Positives

  1. Run the same OS as your server: Most software out there in the wild is running on a Linux server. If you don’t want to rebuild a container every time you save changes to a file, developing on Linux can eliminate some “It works on my machine” bugs.
  2. Open Source: It is hard to argue against the social and economic value of Open Source software like Linux. For engineers, the value is even greater, since we can always fork or contribute to a library and modify something that we want changed.
  3. Everything is scriptable: A huge advantage of many Linux distributions coming without a desktop UI is that everything in Linux is scriptable. If wanted, you could script your entire OS configuration, host that script on GitHub and run that script every time you open your computer (oh wait
 this sounds familiar 
🐋)
  4. Rapidly improving focus on UI/UX: For years, Linux as a desktop OS lagged far behind the slick user experiences from Microsoft and Apple. These days it is not so brutal of a transition to switch to Linux. If you follow Linux news, you will constantly hear of the newest updates to various Distributions that are basically layers of UI/UX decisions on top of standard distros. Some really beautiful examples include Linux Mint, Elementary OS, and Kubuntu.

Screenshot of Linux Mint (https://linuxmint.com/screenshots.php)

  1. Extremely customizable: I have spent a lot of time playing around with customization of my Linux environment. It is honestly a ton of fun.

Negatives

  1. Risk: You can literally run sudo rm -rf / from the Linux command line. That is crazy. Linux does not care if you make a mistake, it will do what you say. This is both awesome and terrifying. This risk is part of what makes backups and careful data + config storage strategies a critical part of any approach to using Linux as a primary desktop.
  2. Not compatible with all hardware: Generally if you want to use Linux as a primary OS, you will need to buy hardware with macOS or Windows already installed and then install a Linux ISO. When I was most excited about Linux for my personal computer, I tried running it on my new Surface Laptop, but found that many things did not work (i.e. touchscreen, keyboard etcetera). You will need to ensure that your hardware is supported before buying it, which can limit your options and increase the difficulty of finding the right hardware.
  3. Complexity: The downside of having many options is complexity. Sometimes something as simple as changing a setting can require real engineering skills and a few hours of research.

Neutrals

  1. Software Update: Generally speaking, I like software updates on Linux the most. It can usually be done painlessly from the command line, and at any desired frequency. Command line prompts often encourage you to update when you fall behind, but aren’t too intrusive. That being said, some people will prefer the more typical user experiences provided by Apple and Microsoft.

TLDR

If you have unlimited money, a shiny new MacBook Pro may still be the way to go, but it’s not as obvious of a choice as it used to be.

This may be the best time in recent memory to start experimenting with a new operating system, especially considering the combination of an economic downturn, exciting new developments at Microsoft, and continuing improvement of Linux as a desktop operating system.

Note: I did not include Chrome OS in my analysis simply because I haven’t used it heavily myself. That being said, my understanding is that Chrome OS really belongs in the Linux category.


Originally published on 2023-01-24 on Medium.