Most likely I'd use GCC in my efforts.
I'm currently using gcc in an embeded application (w/ QNX as the OS). If gcc is supposed to be some kind of shining star for what the Open Source "community" can produce, they should be ashamed and embarrased. The ANSI C++ statnadard has been a standard for 5 years, for chrissakes, and has been a stable proposed standard for quite a bit longer. gcc's ANSI compliance is a fucking joke; Visual C pus pus has better compliance (and you KNOW how I feel about Visual C pus pus!).
Dissin' VB as a pathetic programming language may be common but Java and C++ do not come close to filling the void. They have their own set of problems and are not geared towards UI apps.
You're confusing the language with the support libraries. Visual C pus pus uses the godforsaken POS ephemistically referred to as MFC. MFC is basically useless for just about anything (except marketing, and how much marketing is written in C++, anyway?). Now let's try a real library; for example, Borland's C++ Builder's VCL (the same library used by Delphi). Developing UI-intensive apps in C++ Builder is a breeze, and is even easier that developing the corresponding app in Visual Bullshit (mostly because it's backed by a real language.) So C++, coupled with a class library tailored to the job (and devoid of Micros~1 bullshit), is more than capable of "filling the void".