Your question is like asking what is better, apples or oranges. The answer is simply "it depends"
"Best" is what works best for you. What kind of programs do you want to write, what languages do you want to use, what will be the target market of your programs? Games, database, finance, scientific? What is your level of experience and education? How smart are you? Do you want to do this for fun or for a living?
Many people make a good living working with Windows, many do good without. I've used Windows and Microsoft tools since 1990. Today I refuse to use Windows or any Microsoft products, and I only use open source tools. I use only Linux, and I currently use PHP and c++. And I don't miss Windows at all - good riddance to it. Having used Windows and Microsoft tools for many years, I have come to despise the bloat and instability of them.
Why does it takes hours to install Windows and Mssql, when I can install Linux and Mysql in 30 minutes? Why can't I use a conf file to configure mssql and iis, when I can do so quickly and easily with mysql and apache? Why is it that when it comes to simple tasks, I open a console, edit the conf file, restart the daemon and I'm done while the Microsoft people are still sitting there, waiting for their bloated gui to load so they can point and click?
Developing on Windows and developing on Linux are different beasts. Investigate them both to see which one appeals to you. I've done them both. Windows and Microsoft tools were good 10-15 years ago. Today they are bloated garbage, and there is nothing I can't do with Linux and open source tools that I didn't use to do with Windows and Microsoft tools. Except now I do it faster.