Re: Keep polishing, Microsoft......
A professional developer selects what streamlines his job, doesn't try to affirm an ideology.
Nearly. A professional developer, being a professional, usually has to just use whatever software he has been given to use and often a specific version that, for whatever dumb-arse fuckwit twisted reason, actually works with the legacy mess that he's working on. Sometimes the software choice is also out of his hands for other reasons such as having to develop an application that continues to work across as many versions of Windows as possible, in which instance there's often a case for using an old version of a development tool rather than a newer version which will often silently includes later version prerequisites thereby hobbling the deployment target.
Given a choice, most professional developers favour using the tool that they are most familiar and comfortable with rather than always selecting the optimal tool for the job. The optimal tool for the job may only be optimal for this developer after a lot of new training or relearning and for a quick (haha) job the familiar is usually selected instead. There is more flexibility for new projects however corporate libraries may not be compatible and there is always, for good reason, pressure to re-use existing code rather than create new copies of the same functionality.
After all Windows development (but WinRT) is much more open than Linux one, where after all everybody uses GCC - you have more choice about development tools in Windows than in Linux - if you don't like Visual Studio you have alternatives.
I disagree with this. Firstly there is a big difference between a compiler and an (Integrated) Development Environment (IDE). GCC is a compiler and it neither claims to be, nor is, a development environment. There are alternatives to GCC as well however given the structure of GCC many additional components just enhance GCC rather than attempt replace it wholesale. This, if the structure is good enough, is a very good way of operating and this modularity is one of GCC's key strengths. There are quite a lot of development environments for Linux however your level of satisfaction will depend greatly on the level of integration that you need or desire. Unfortunately these days on Windows there are very few remaining genuine development environment tools that are not cross platform and therefore also available for Linux (and often OSX). The most "used" ("used" is not the same as "popular") development environment for Windows is, of course, Visual Studio. However this tool is very inflexible in that you will work the Microsoft way or not at all. You will use the Microsoft tool stack or you have to try to work around with the alternatives, which wastes a lot of time. Visual Studio's overall operational inefficiency and user interface leaves a lot to be desired as well (note to MS - don't ask your developers for feedback, get told it and then ignore it because you are too arrogantly stupid and have a "vision"). However it is familiar to a lot of developers therefore gets used even when there are rather better alternatives available.
As for Linux GUIs... yes, they are often appalling. While the tools available in Windows are often better on the GUI front, I assure you that this often doesn't translate into a better GUI - just one with more visual components. There is a world of difference between good developers and good user interface designers.