KAHIBARO
Discord Login Register

3.1. Choosing an Operating System

Key Criteria When Choosing an Operating System

For backend development, you can build almost anything on any modern operating system: Windows, macOS, or Linux. However, they feel very different, and some will make your life much easier.

Think of this chapter as a practical buyer’s guide. You will learn:

You do not need to become an OS expert now. You only need to choose a good environment to learn and work in, and understand why that choice makes sense.

What Matters for Backend Development

When you pick an OS as a backend developer, you mainly care about:

  1. Command line and scripting support
    Most backend tools are built to work well in a terminal. You want:
    • A powerful shell
    • Easy scripting
    • Access to common tools like ssh, curl, git, python, docker
  2. Package management
    You will install:
    • Programming languages (Python, Node.js, etc.)
    • Databases (PostgreSQL, Redis)
    • Tools (Git, Docker, editors)

A good OS gives you:

  1. Similarity to servers
    Production servers that run your code are almost always:
    • Some Linux distribution (Ubuntu, Debian, CentOS, etc.)

If your development OS is similar to your server OS, then:

  1. Tool support
    Your OS should support:
    • Docker
    • Databases like PostgreSQL and Redis
    • Your chosen editor or IDE (VS Code, PyCharm, etc.)
  2. Stability and performance
    • Few random crashes
    • Good memory and CPU usage
    • Can run several heavy tools at once (IDE, database, browser, Docker)
  3. Your comfort and hardware
    • What OS are you already familiar with?
    • What does your laptop support well (drivers, battery life)?
    • Do you need specific software that only runs on one OS?

Keep these criteria in mind as we compare options.

Overview of the Main Options

Here is a quick comparison of the three main choices.

OSMain strengthMain weaknessTypical servers?
LinuxClosest to production servers, very flexibleHardware / driver setup can be confusing for beginnersYes
macOSUnix-based, friendly UI, great dev toolsExpensive hardware, only on Apple devicesNo (but very similar to Linux)
WindowsWidely used, supports many desktop appsHistorically weaker Unix-like environment, more frictionNo

For backend development, Linux and macOS are usually the best fit. Windows is workable, especially with extra tools, but often adds complexity.

Linux for Backend Development

Linux is the most common OS on servers, and many backend developers also use Linux on their own machines.

Why Linux Is Great for Backend Work

  1. Same family as your servers
    Most production servers run a Linux distribution. When you use Linux locally:
    • Commands like ls, cp, mv, grep, chmod behave the same
    • You can install the same packages as on the server (for example apt install postgresql)
    • Shell scripts you write locally often work unchanged on servers
  2. Powerful command line and tools
    Linux gives you:
    • Bash or other shells (zsh, fish)
    • Standard Unix tools (ssh, curl, wget, sed, awk, tar, etc.)
    • Easy automation with shell scripts
  3. Package managers
    Different Linux distributions use different package managers, for example:

| Distribution | Package manager | Example command |
|--------------|-----------------|------------------------------------------|
| Ubuntu | apt | sudo apt install python3 |
| Debian | apt | sudo apt install postgresql |
| Fedora | dnf | sudo dnf install git |
| Arch Linux | pacman | sudo pacman -S docker |

This makes installing development tools very simple.

  1. Perfect match for backend stack
    On Linux, you can easily install:
    • Python, Node, Go, Java
    • PostgreSQL, MySQL, Redis
    • Docker and Docker Compose
    • Nginx, systemd services, and more

These are exactly the tools you will use for backend development and deployment.

Downsides of Linux

  1. Hardware and drivers
    • Some laptops need extra steps for Wi-Fi, graphics, or sleep features.
    • Brand new hardware sometimes has fewer drivers available at first.
  2. Software availability
    • Some commercial desktop software is missing or limited on Linux, for example Microsoft Office, Adobe suite.
    • Some games or proprietary tools might not work natively.
  3. Learning curve
    • If you come from Windows or macOS, the Linux desktop can feel unfamiliar.
    • Understanding distributions and their differences can be confusing at the start.

Which Linux Distribution Should You Choose?

For beginners, pick a stable and popular distribution. Three good beginner-friendly options:

DistributionWhy choose it
Ubuntu (LTS)Very popular, lots of tutorials, good hardware support
Linux MintBased on Ubuntu, user-friendly desktop, familiar feel
Pop!\_OSPolished, good for developers, based on Ubuntu

To install software on Ubuntu, for example:

bash
sudo apt update
sudo apt install git python3 python3-venv docker.io

These simple commands are one reason Linux is so popular with backend developers.

When Linux Is the Best Choice

Linux is a great fit if:

If you have an older laptop and want to turn it into a focused development machine, a light Linux distribution can be an excellent choice.

macOS for Backend Development

macOS combines a Unix-like core with a polished desktop and runs only on Apple hardware.

Why macOS Works Well for Backend Work

  1. Unix-based system
    macOS is built on top of a Unix-like system, so you get:
    • A familiar shell (bash or zsh)
    • Standard Unix tools
    • A terminal environment that feels close to Linux

This makes it easy to follow Linux-oriented tutorials and run similar commands.

  1. Good hardware and drivers by default

Since Apple controls both hardware and software:

You spend less time dealing with hardware issues.

  1. Great development tool support

On macOS you can easily install:

Example with Homebrew:

bash
   # After installing Homebrew
   brew install python postgresql redis
  1. Close enough to Linux

While not identical to Linux, macOS is close in many ways:

Downsides of macOS

  1. Cost and hardware lock-in
    • You must buy Apple hardware, which is often more expensive than similar non-Apple laptops.
    • You cannot install macOS on most non-Apple hardware legally.
  2. Some differences from Linux

For example:

  1. Limited upgrade / customization
    • Many modern Macs have non-upgradeable RAM or storage.
    • You often must choose your hardware specs carefully when buying.

When macOS Is the Best Choice

macOS is a strong option if:

For many professional backend developers, a MacBook running Docker, Python, and a text editor is a very common setup.

Windows for Backend Development

Windows is very common on personal and office computers. Historically, it was less friendly for Unix-style backend development, but this is changing.

Traditional Challenges with Windows

  1. Different environment from Linux servers
    • Command line tools are different, like dir instead of ls.
    • Scripting is often done with PowerShell or batch files, which are different from bash.
  2. Tooling differences
    • Some tools assume a Unix-like environment and may not work the same way on Windows.
    • pathlib and file paths differ (C:\Users\Name vs /home/name), which can create subtle issues.
  3. Docker and virtualization
    • Docker runs under extra layers on Windows, which can use more resources and add complexity.

Modern Solutions on Windows

To make Windows more suitable for backend development, many developers use:

  1. Windows Subsystem for Linux (WSL)

WSL lets you run a Linux environment inside Windows without a full virtual machine.

With WSL you can:

For example inside WSL (Ubuntu):

bash
   sudo apt update
   sudo apt install python3 python3-venv postgresql

You can then access code files stored on Windows or Linux paths.

  1. Docker Desktop
    • Lets you run Docker containers on Windows.
    • Can integrate with WSL2 so containers run on a Linux kernel under the hood.
  2. Good editors
    • VS Code works extremely well with WSL and Docker.
    • You can edit files from Windows but run code inside WSL.

When Windows Is a Reasonable Choice

Windows might be the right choice if:

In that case, a practical setup is:

This gives you a Linux-like development environment while staying on Windows.

Example Scenarios and Recommendations

Here are some typical situations and matching recommendations.

Scenario 1: You want the most “server-like” environment

Recommendation:
Use Linux on your main machine, for example Ubuntu LTS.
Use the same distribution or a similar one on your servers.

Scenario 2: You already have a MacBook

Recommendation:
Use macOS with:

This will serve you well throughout your backend learning and beyond.

Scenario 3: You have a Windows laptop and cannot change OS

Recommendation:
Stay on Windows, but:

  1. Install WSL2 and a Linux distribution such as Ubuntu.
  2. Use VS Code with the WSL integration.
  3. Run databases and servers inside WSL or Docker.

You get a Linux development experience without losing your Windows setup.

Scenario 4: You are buying a new computer mainly for backend work

Ask yourself:

  1. Do you prefer full control and a free OS, and are you okay with some learning curve?
    • Then consider a Linux laptop or installing Linux on an existing machine.
  2. Do you want a polished system with minimal maintenance and have the budget?
    • Then consider a MacBook.

The technical capabilities for backend work are excellent on both. Your choice can mostly be based on budget and personal preference.

Practical Checklist for Your Decision

Use this checklist to pick your OS setup. Answer “Yes” or “No”:

  1. Do I already have an OS I am comfortable with?
  2. Am I willing to learn a new OS from scratch?
  3. Do I need any software that works only on one specific OS?
  4. Is my main goal to match Linux servers as closely as possible?
  5. Do I have the budget for a Mac, or do I prefer using free / existing hardware?

Then follow this simple rule:

Rule of thumb for backend OS choice

  • If you already own a Mac and like it, use macOS.
  • If you are comfortable changing OS or buying a new device and want to be closest to servers, use Linux.
  • If you must stay on Windows, use Windows with WSL2 and develop inside the Linux subsystem.

Any of these paths can lead to success. What matters most is that:

Once you decide, stick with your choice for a while. Consistency will help you learn faster than constantly switching environments.

Views: 10

Comments

Please login to add a comment.

Don't have an account? Register now!