It's laughable, but actually I've been in the exact situation to prevent a published app from running on Windows, because the app makes specific assumptions wrt shared read/write file access and locking semantics, composing file names, and spawning shell scripts as child processes. So I guess widepread use of is-windows comes from wanting a commonly understood pattern to block running on Windows, not having tested your app on Windows, etc. What's best practice to follow here?