Some reasons: Even as a low-level programmer fully capable of resolving problems, I want to spend my time working on my programs, not working on making my OS work, and Linux frequently demands that I spend hours chasing down issues. Windows does a better job of managing memory/swaps, at least out of the box. Windows has a stable userland with 30 years of backwards compatibility. Windows makes good use of both GUIs and CLIs, letting you choose whichever is faster for the task, while Linux distros and devs have some kind of bizarre ideological purity culture and generally refuse to make good GUIs. Windows has a built-in tool for easily making full system images while the system is running, without requiring the image destination be larger than the system drive including unused space. Windows developers are not so in love with dynamically linked system libraries that dependency management becomes a pain in the ass. Windows generally has a polished UX with a lot fewer papercuts.