C# radi pomocu .net framework-a, odnsosno to je interpreter ili virtual masina, slicno javi, dok se C++ kompajlira u masinac.
Po meni za low level koristi C, a za desktop aplikacije C#( mada ga ja nikad nisam koristio). C++ ne bih preporucivao za desktop aplikacije, jer je njegov kod veoma ruzan :).
takodje, java je vrlo dobra za high level programiranje.
pozdrav!