Skip to content

Instantly share code, notes, and snippets.

@bmaupin
Last active June 5, 2024 12:43
Show Gist options
  • Save bmaupin/8a367ae87104bdd3f62032742c3d519b to your computer and use it in GitHub Desktop.
Save bmaupin/8a367ae87104bdd3f62032742c3d519b to your computer and use it in GitHub Desktop.
Reasons not to use Windows

Files and file systems

  • In Windows, files that are in use cannot be modified

    • As a result, Windows updates have to happen when the computer is not in use, such as during shutdown or boot (often both)
      • Compare to Linux/macOS, which can install updates while the computer is being used 😎
  • Windows uses backslashes (\) as file system path separators

    • All other modern operating systems (macOS, Linux, Android, iOS, etc) use a normal (i.e. forward) slash (/) and use backslashes for escaping
  • Windows' NTFS filesystem performs poorly compared to Linux's ext4 filesystem

    Unfortunately, WSL1 was hampered by the performance characteristics of NTFS, which do not match the expectations of Linux software. Microsoft has since replaced WSL1 with WSL2, which provides similar functionality by running the Linux kernel in a virtual machine. In WSL2, Linux software runs against an ext4 file system, rather than an NTFS file system.

    (https://fuchsia.googlesource.com/fuchsia/+/2940d6f300031e852333c3ee0548ecba1d69c961/docs/contribute/governance/rfcs/NNNN_starnix.md)

  • A surprising way to lose your files on Windows

Strings

  • Windows uses UTF-16 encoding, which is deprecated nearly everywhere else in favour of UTF-8 as UTF-16 is less efficient and is not compatible with ASCII
  • Many Windows and Microsoft applications add hidden characters (unicode 00a0, 200b, 200c, 200d, etc) to text that break normal software expecting plain text input. This has even been observed in such simple applications as the calculator (microsoft/calculator#504)
  • PowerShell cannot do a simple search and replace of text in a binary file because it attempts to encode all of the data as a string
    • Compare to other operating systems where sed is able to simply replace text even in a binary file

Other

See also:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment