• Having the highest market share doesn’t mean that windows uses logical conventions, it just means that lots of people are accustomed to the conventions that it uses. The vast majority of professionals that I’ve interacted with strongly dislike having to work on a windows machine once they’ve been exposed to anything else.

    Off of the top of my head, the illogical conventions that Windows uses are: storing application and OS settings together in an opaque and dangerous, globally-editable database (the registry), obfuscating the way that disks are mounted to the file system, using /cr/lf for new lines, using a backslash for directory mappings, not having anything close to a POSIX compatible scripting language, the stranglehold that “wizards” have on the OS at every level, etc. ad nausium. Most of these issues are due to Microsoft deciding to reinvent the wheel instead of conforming to existing conventions. Some of the differences are only annoying because they pick the exact opposite convention that everyone else uses (path separators, line endings), and some of them are annoying because they’re an objectively worse solution than what exists everywhere else (the registry, installation/uninstallation via wizards spawned by a settings menu).

    For basic usability functions, see the lack of functional multi-desktop support 20 years after it became mainstream elsewhere. There is actually no way to switch one monitor to a 2nd workspace without switching every monitor, which makes the feature worse than useless for any serious work. In addition to that, window management in general is completely barebones. Multitasking requires you to either click on icons every time you want to switch a window, or cycle through all of your open windows with alt-tab. The file manager is kludgy and full of opinionated defaults that mysteriously only serve to make it worse at just showing files. The stock terminal emulator is something out of 1995, the new one that can be optionally enabled as a feature is better, but it still exposes a pair of painful options for shells. With WSL, the windows terminal suddenly becomes pretty useful, but having to use a Linux abstraction layer just serves to support the point that windows sucks.

    I could go on and on all day, I’m a SWE with a decade of experience using Linux, 3 decades using Windows, and a few years on Mac here and there. I love my windows machine at home… as a gaming console. Having to do serious work in windows is agonizing.