It really depends on what you want to do, each has its own pros & cons. For general development it's hard to beat the MS tool chain on Windows, why anybody would want to torture themselves with gdb on Windows is beyond me. It's pretty easy to write code that compiles on most platforms, so there is no need to over commit to any specific OS. Of course if you're looking to shave machine cycles, then that's a whole different game...
I do most of my development in VS on Windows, I keep a cmake project and occasionally run the code through GCC (on a Linux VM) just to see if it picks up anything. GCC is stricter on language stuff, but the MS optimizer is better.