En efecto, muchos de los "problemas" a los que nos tiene acostumbrados Microsoft estuvieron en los softwares que se hicieron con Visual Basic.
Ahora quisieron "corregir" tal metida de pata y ampliar las posibilidades creando una versión casi copiada de Java llamada .Net.
Ahora algunas personas eligen .Net en vez de Java, la respuesta es porque todo está aquí un poco más fácil. Te dan la solución rápida pero te generan más necesidades
El problema es a la larga durante las modificaciones y cambios de versiones (Ejemplo: "me falto la dll", "no me corre en windows XP Home", "que no tengo acceso que antes tenía", etc). Y por coincidencia para solucionar estas novedades sacan .Net 2005 o 2007?
No digo que sea malo, sino q te hace dependiente. Yo prefiero Java, un poquito más pesado pero si quieres tener nivel, debes aceptarlo, verás que sólo es cosa de poner las cosas donde deben estar.
Un programa en Java lo podrías ejecutar desde una pentium mmx (claro a la velocidad de la epoca) hasta una pentium D o más, en Windows 95 o Windows Vista (Con XP sobra y basta) , Linux u otros.
También un programa Java se puede comunicar con otras plataformas, delphi, Lotus, C++ etc. claro tienes q trabajarlo,
Diferencia:
Java es un Lenguaje de Programación
Visual .Net es una herramienta que contiene a un lenguaje de programación.
Con Java puedes usar como plataforma de edición n programas: NetBeans, Eclipse, JCreator, etc. Tu eliges.
Con .Net siempre tendrás que usar .Net y no podrás hacer traslados.
Java es gratis y no tienes q pagar nada, .Net algunos cientos de dólares.
Te recomiendo la Biblia de Java 2 para empezar de Anaya Multimedia (la he visto en pdf en el Emule)
Salu2