When comparing Windows vs None/All, the Slant community recommends None/All for most people. In the question“What is the most versatile operating system to learn how to program?”None/All is ranked 3rd while Windows is ranked 5th. The most important reason people chose None/All is:

You are not constrained to a subset of the market, thereby the opportunities to get help should be greater when only constrained by language rather than language & OS

Pros

Pro

Windows comes first

Windows is the most used platform in the world. If you build something and need a third-party software it will most likely run on Windows. Not because it's good, but because everyone uses it.

Pro

The most solid choice for .NET development

Pro

Widely used

Windows is the most-used desktop OS in the world.

Pro

Free access to great development IDE in Visual Studio Community

Pro

Best driver support of any OS

No other OS comes close to supporting as much hardware as Windows 10 does. Because it's the most popular OS, the bulk of hardware manufacturers support Windows first, and all other operating systems second.

Con

Maintenance is time-consuming

Con

Embarrassing to give talks

On conferences or in user groups the audience laugh at speakers presenting their talk on a Windows machine.

Con

Telemetry and Privacy in Win10

By definition, it's a virus. Pre-compromised OS.

Con

UI look and feel may be non native.

If your goal is to develop something that looks like it fits in, this can be tricky with some cross platform languages (Java being a notable example, though there are libraries that can help this).

Con

You may still need to deal with idiosyncrasies

Most cross platform environments can't abstract away all the OS specific idiosyncrasies. For example, starting Java applications as a service is something Java cannot do out of the box. So you are left to come up with your own solution for that. NPM's scripts are not inherently cross platform, so if you use them while developing with Node.js, you may need to find your own ways to make them cross platform.

Con

Learning how to test can be costly

Learning how to test one's code can be more complicated, depending upon the language because you may need to test certain aspects of your application on different OSes. This means more setup time as well.