I am a C++ programmer with limited experience (design) using C#. From my experience, C#, like Java, is a derivative of C++. However, Microsoft is able to blend C# and C++, getting the best out of the Java design.

With the recent settlement between MS and SUN, I think that MS will remain the top desktop software company. Bottomline: C# should surpass Java given that it is in fact platform-independent.

I have some basic questions on the C# language.

Currently, does a C# application run on a non-Win32/Win64 platform (UNIX, Mac, wireless)?

How does C# compare to C++ in terms of object-oriental design (inheritance, template, etc) on a large-scale project?

How does C# compare to C++ for client/server applications including various IPC concepts, multithreading, multiple processes, etc?

How does C# compare to C++ for processor-intensive applications including games, 3D-render, multimedia, etc?

I read some reviews on two books on C# by Jeff Prosise and Charles Petzold. In general, readers find the books GUI-oriented. How good is C# for performance-imperative applications?