I agree that developing a GUI in C# is superior to doing so in C++....*UNDER WINDOWS*.
This last qualification is extremely important. Programmers often compare C++ to other languages based on things that are actually not part of the language. For example, the atrocity that we call the GUI API for C/C++ under Windows has nothing to do with C++ as a language. This is not C++'s fault. It's Microsofts fault. Microsoft made poo with their GUI system, and decided to wait until putting forth and entirely new language before providing an interface that was somewhat agreeable. It is entirely conceivable that a portable GUI library could be developed in C++ that would rival C# and any other language in flexibility, performance, robustness, and elegance.This has not happened yet.
What concerns me is that people who call themselves engineers will often choose C# over C or C++ because they feel that C# will relieve them of the mental discipline required to bring forth good form in the end result. The best example I have to illustrate this point is what is written in bold in the following post. The programmers think that C#'s garbage collector will relieve them of memory management. It's plain stupid, but hundreds of thousands of programmes believe it anyway (like magic diet pills). Then, perhaps after 2 or 3 years, they learn that there is no silver bullet, and what they end up with is a design that had the the same challenges they would have had in C++, only the code is much slower and devoid of good form. See:
-Le Chaud Lapin-