What are the strong sides of Windows?

This was an answer I wrote years ago.

From a user’s point of view:

  • Hardware support. Windows is designed to support a vast hardware ecosystem, therefore has the most mature infrastructure for managing consumer hardware. For example, it’s probably the only desktop OS that can recover from a GPU driver failure and restart the driver instead of completely halting.
  • Great security features for such a widely deployed operating system. Like the GPU driver isolation example, drivers cannot mess with the system even though they have privileged status. As far as I know, it’s the only desktop OS with such a feature. It’s also the only OS that comes with a decent built-in antivirus/anti-malware.
  • Backwards compatibility. You can run most 32-bit Windows applications from early 90’s on a PC today with no changes. This is a huge deal, and Microsoft works hard to maintain that. That’s even applicable to device drivers to a certain extent.
  • Accessibility. Every piece of UI on Windows is accessible by keyboard. You can move, resize windows without touching the mouse. Linux is probably better than MacOS on that front, but on MacOS, a mouse is required, and that can be problematic when you need to do things using keyboard only.
  • Gaming. This is a bit like a self-fulfilled prophecy, as Windows is great for gaming because it’s popular, but that’s still the reality. Most games get released on Windows and provide the smoothest experience right after consoles (which one is also Windows-based). As an avid gamer, that’s an important factor for me.
  • This is mostly a personal preference but I find Windows desktop is the most usable and way superior to MacOS or Linux alternatives. It incorporates “docking” and “windowed” paradigms beautifully, with great HiDPI, fractional scaling, and multi-monitor support, along with super fast and usable virtual desktops. I know both MacOS and Linux supports those, but I’ve had encountered many problems on each regarding these, Windows is simply seamless.
  • Windows Subsystem for Linux (WSL) is an amazing environment for any use case that Windows can’t cover.
  • Many would disagree with me but I like having separate logical storage volumes like C: D:. I think that excluding volumes from directory enumeration provides a more usable model compared to a single root file system with everything in subdirectories. For example, I can store all my data in D:, and erasing files on C: wouldn’t be a problem at all. Compare that to Unix where you have to carefully unmount certain subdirectories before performing such an operation, otherwise your data is gone. Make no mistake, I think drive letters is still a primitive paradigm and less flexible than Unix paths, but I find them more intuitive.

Ok, this sounded like an ad. So, what are the weak sides of Windows?

  • Windows is usually the third platform for many open source software, and the most neglected because how radically its APIs differ from Unix-based platforms. It requires extra effort to port an application to Windows instead of say, to MacOS or Linux due to API differences. Technologies like Cygwin, Msys2, and WSL make this less of a burden, but it’s still there.
  • Despite the introduction of Microsoft Store and WinGet (the command-line package manager), software installation experience is still mostly “download the installer and go through the setup steps”. I believe that Linux package management and the “drag’n’drop” installation experience of MacOS have been way superior for a long time. I’m looking forward for Windows catching up to those.
  • Windows 11 has come a long way about this, but MacOS is still excellent at restoring your work environment after a restart, even after a full OS upgrade. Windows 11 still struggles putting things back into place after a reboot.
  • After the SQL Blaster worm incident in the early 2000’s, Win32 API has been stripped off of certain advanced networking capabilities like Ethernet sniffing, or raw packet generation. This forces software to install their own device drivers to bypass those limitations, which isn’t ideal at all. WSL2 isn’t subject to such limitations, so it’s partly alleviated.