ToolsJune 20, 20261 min

Why Linux beats Windows for development

This isn't a flame war and it isn't nostalgia. After years of doing real work on both, Linux removes friction from my day that Windows keeps adding back. Here's where the difference actually shows up.

Configuration that actually works

The common belief is that Linux is the hard one to set up. In practice it's the opposite. On Linux, configuration is plain text in predictable places — an env var is a line you can read, edit, and version. On Windows you're navigating environment variables through a GUI and editing a system registry that, in my experience, works when it feels like it. One of these is debuggable. The other is a guessing game.

Native Docker, no WSL in the middle

On Linux, Docker runs directly on the kernel. No WSL translation layer, no virtual disk, no mysterious memory ballooning. Containers start faster, file mounts behave, and what runs on my machine is genuinely what runs on the server.

It's Unix — same as your servers

Your production boxes and your CI runners are almost certainly Unix-like. Developing on Linux means the shell, the paths, the permissions, and the tools are the same ones you'll deploy onto. That parity erases a whole category of "works locally, breaks in CI" bugs.

Open-source tooling fits, and it's fast

The open-source ecosystem is built on Linux first; everything is a first-class citizen instead of a port. And the machine simply feels lighter — faster file I/O, faster builds, less overhead between you and the work.

None of this means you must abandon Windows. Use what you enjoy. But if your day is made of containers, shells, and open-source tools, Linux is the path of least resistance — and least resistance compounds.

Related notes