si utiliza .net tendrá problemas con los cambios de versiones del .net...
Por supuesto esto es totalmente falso. Hoy por hoy existen aplicaciones corriendo .NET 2.0 sin ningun problema. La diferencia entre .NET y java es que java se quedó en 1999, mientras .NET sigue evolucionando. Ayer nomas salió .NET 4.7
tendrá que pagar licencias
.NET es una plataforma open source, totalmente gratuita, con licencias permisivas. java, por el contrario, es una trampa mortal de oracle con la cual, por ejemplo, sufre Google, que por haber hecho Android ya lleva muchos años de juicios con oracle por cuestiones de licencias. Es una falacia total que java sea "gratuito" o "abierto", cuando tenemos el caso de Google, mientas que nunca jamás nadie, en ningún lugar, ha sido enjuiciado por usar .NET.
se casa con el sistema operativo
Falso. En este momento, .NET es de hecho más cross-platform que java. Se puede usar C# o F# (tremendo lenguaje) para programar aplicaciones multiplataforma nativas para Android e iOS, mientras que java NO corre en iOS, y a gatas corre en Android en una versión muchísimo más limitada que la real.
Yo creo que Java es mejor opción
Te faltó mencionar la parte donde java está 10 años atrasado con respecto a cualquier lenguaje moderno como C#, F#, Scala, Swift o Kotlin, y usarlo es una pérdida de tiempo enorme donde uno tiene que lidiar constantemente con las incapacidades y limitaciones del lenguaje en lugar de dedicarse a programar.
Te faltó mencionar también la parte donde java, lo único que hizo a nivel de diseño del lenguaje en los últimos 10 años, y lo único que seguirá haciendo por lo menos hasta la versión 10 (según el roadmap que ellos mismos han dado) es un patético y lamentable intento fallido por parecerse a C# 3.0 del año 2007.
multiplataforma
Falso. Como te mencioné java no corre en iOS. .NET, por otro lado, tiene su versión oficial .NET Core corriendo en Linux y OSX desde hace rato.
sin limites
Sin limites es la cantidad de código inútil y ruido idio.ta que se necesita para hacer cualquier cosa en java. Todavía no tienen una forma de hacer queries a una base de datos de manera decente.
sin cambios de versión que te dejan tu aplicación desactualizada
No, claro, si java vive en 1999, como va a cambiar la versión. Eso se llama EVOLUCION, algo de lo que java carece por completo. Te recuerdo por otra parte que la historia de compatibilidad hacia atrás de java es totalmente patética, y por eso hay muchas empresas que tienen sus productos atascados en versiones totalmente arcaicas como java 5.
Es solamente mi opinión
Te convendría tener una opinión basada en hechos reales y no en supuestos irrelevantes que dejaron de ser ciertos hace 10 años. Ese es el problema con la gente que programa en java, viven en 1999. El resto del mundo por supuesto vivimos en 2017.
El problema que veo con Microsoft, es que hace lenguajes de programación de alta calidad, como C#, F# y TypeScript, y no deshechos arcaicos del siglo pasado como java.
llevo muchos años programando
Yo también, 20, para ser exacto, pero a diferencia de los que programan en java yo no me quedé en 1999, sino que seguí buscando nuevas y mejores tecnologías constantemente.