I prefer to use java. I know that c# is suppostly an "open" standard, yet, i really don't trust microsoft. So no C#. And really they are almost equivalent.
For the detractors of java/C# : the main speed bump in realation with c and friends, is the startup of the virtual machine (which is a memory hog). So obviously this languages are not really appropriate now for software that starts/ends relatively frequently (ex: a desktop OS), but really nice for software that runs for a long time (ex: a server), since there are no memory leaks (as the definition of memory leak). If some games were coded in such a languages many problems would dissapear. Vampire stuttering ? Gone. AoW2 crash ? Gone. etc. As memory speed increases, improments to the VM, and other things, the difference bettwen c and a VM will be insignificant in all but the most real-time critical application (that i don't consider games to be).
It's nicer for programming.