hay que hacer una simple aclaracion:
hay dos campos de accion en la programacion:
nivel de programacion de nivel bajo/medio
nivel de programacion de nivel medio/alto
en el unico lugar en el que cualquier lenguaje es util es en el nivel medio.
en el nivel alto asm no tiene sentido pero decir que C o C++ no se pueden usar para proyectos de envergadura es una falacia.
Otra cosa que hay que admitir es que para nivel bajo Java y .NET no sirven.
aclaracion: se mas de Java que de C# pero a mi me parece mejor el enfoque de C#, porque? porque agarro el enfoque "estricto" de Java en donde todo es un objeto etc etc y le agrego cosas que son comodas (repito no conosco mucho de C# solo lei un libro).
tambien hay que admitir que C# es un "Java como le gusta a microsoft" asi que en el fondo no son tan ditintos, solo es cuestion de gustos, no creo que haya algo que se pueda hacer en uno y no en otro.
si se van a poner a discutir sobre uso de memoria cualquiera podria decir "un programa escrito en ASM va mas rapido y consume menos memoria"

, si algo no les preocupa a los que desarrollaron JAVA y .NET es que sean super veloces y no consuman nada de memoria.
hay una gran lista de aplicaciones hechas en C o C++ y no solo aplicaciones simples, en este momento estoy en gentoo linux que usa un sistema en donde todo se compila y el 95% del software es C/C++ lo que queda es perl python ruby o algo asi.
en el ambiente linux:
KDE -> C++
Gnome -> C
Apache -> C
kernel linux -> C
kernel de cualquier BSD -> C
openOffice -> C++
todos los drivers de linux -> C
mysql -> C
postgres -> C
las versiones de windows -> C/C++
la mayoria de los compiladores -> C
las maquinas virtuales....
videojuegos.....
antivirus....
esto no es alarde de nada porque notaran que la mayoria de los ejemplos tienen una relacion con alguna parte del harware o necesidad de rendimiento.
pero si vemos aplicaciones bancarias y de gran envergadura probablemente todas esten entre java y C# ( aunque las aplicaciones bancarias que tienen mucho tiempo la mayoria estan en COBOL )
una cosa mas es el problema de microsoft que cuando no le interesa mas una cosa la deja sin soporte y todos los usuarios de ese producto quedan a la deriva ej VB 6.0 IE para Mac etc.
si mañana cambian .NET por algo que "revolucionara la forma de desarrollar aplicaciones" los que usaron .NET van a tener que empezar de nuevo.
otra cosa es el costo de cualquier producto microsoft en tanto java es gratis ( NO LIBRE ).
en conclusion no vote porque si voto votaria por C# como lenguaje pero Java como oportunidad laboral.