Como dijo Elizabeth Barrett Browning: ¿Cómo te amo? Déjame contar las formas.
Disculpe el aspecto cualitativo (y cuantitativo) de esta publicación.
Comparar estos 2 idiomas (y sus tiempos de ejecución asociados) es muy difícil. Las comparaciones pueden realizarse en muchos niveles y enfocarse en muchos aspectos diferentes (como el desarrollo de la GUI mencionado en publicaciones anteriores). La preferencia entre ellos suele ser personal y no solo técnica.
C# se basó originalmente en Java (y el CLR en el JRE) pero, en mi humilde opinión, ha ido, en general, más allá de Java en sus características, expresividad y posiblemente utilidad. Al ser controlado por una compañía (frente a un comité), C# puede avanzar más rápido que Java. Las diferencias van y vienen a través de lanzamientos con Java a menudo jugando catch up (como la reciente adición de lambdas a Java que C# ha tenido durante mucho tiempo). Ninguno de los dos idiomas es un súper conjunto del otro en todos los aspectos, ya que ambos tienen características (y debilidades) que el otro no tiene.
Una comparación detallada lado por lado probablemente tome cientos de páginas. Pero mi opinión es que para la mayoría de las tareas de programación relacionadas con negocios modernos, son similares en potencia y utilidad. La diferencia más importante es, probablemente, en la portabilidad. Java se ejecuta en casi todas las plataformas populares, que C# ejecuta principalmente en plataformas basadas en Windows (ignorando Mono, que no ha tenido mucho éxito). Java, debido a su portabilidad, podría decirse que tiene una comunidad de desarrolladores más grande y, por lo tanto, más compatibilidad con bibliotecas y marcos de terceros.
Si siente la necesidad de seleccionar entre ellos, su mejor criterio es su plataforma de interés. Si todo su trabajo se ejecutará solo en sistemas Windows, en mi humilde opinión, C#/CLR, con su lenguaje más rico y su capacidad para interactuar directamente con las API nativas de Windows, es un claro ganador. Si necesita portabilidad de sistema cruzado, Java/JRE es un claro ganador.
PS. Si necesita más habilidades de trabajos portátiles, entonces IMHO Java también es un ganador.
+1; No puedo entender por qué esta pregunta tiene 3 votos a favor. –
+1; gran pregunta, realmente necesita más votos! – Shire