Con C# puedes programar aplicaciones nativas para Windows, MAC OS, iOS, iPad, WP y Android, y usar la máquina virtual Mono para GNU/Linux. También puedes usar Mono con las otras plataformas.
Lo cierto es que sea nativo o con Mono, irá más rápido, ya que la máquina virtual Mono —la cual tiene una libre implementación— está más optimizada que Dalvik (la de Android) y que la desktop de Oracle.
El inconveniente es que es carísimo comprar Xamarin (compilador que permite desarrollar para tantas plataformas diferentes compartiendo gran parte del código, poniéndole Mono al programa o compilándolo nativamente).
Con lo que respecta a Java, es lento, es incómodo de programar (tiene cuarentamil clases que tienes que instanciar), y no incluye tecnologías importantes como la sobrecarga de operadores o las estructuras, por no hablar de la sintaxis que tiene...
Y tú, ¿qué opinas? :rolleyes: