I pretty much specialize in game programming, so I have to select the compiler which is best suited for the particular project. If I'm simply monkeying around with some freeware game, I'll code it in freeBASIC. I code serious x86 software in MSVC, such as my Irrlicht-based fighting game. I also do retro console coding using a compiler called HuC, which supports a type of TinyC. Why these choices? I use freeBASIC because of its graphics capabilities (automatic DirectX and OpenGL support, no messing with setting them up), I use MSVC because of the bleeding obvious, and I use HuC because it's the only compiler specifically designed for the Hu6280 platform. Then of course, I do still have a couple of games I maintain that were coded in Visual Basic 6.

I specify "compiler" rather than "language" because there tends to be a great deal of difference between compilers, unless you just want to stick to vanilla C++, never taking advantage of compiler-specific shortcuts. Also, it seems that the more portable your code is, the larger (and often slower and less capable) the resulting executable and/or dependencies can be (I can name plenty of examples). So now, I tend to focus on a single platform with performance being the #1 reason for my choice.