Bien bien, un post mas que interesante, enhorabuena
Yo he programado tanto para JAVA como para .Net varios años, y puedo decir que .Net actualmente es bastante superior a JAVA, y repito, actualmente...y comentar que no necesitas el FW2.0 para trabajar con visualStudio, con el 1.1 vale, otra cosas es que quieras utilizar componentes del VS05 en cuyo caso como es lógico habrá que actualizar.
Voy a intentar rebatir los argumentos de #5 aer que tal queda la cosa
Tu puedes crear tu súper aplicación con .NET pero solo la podrás hacer correr bajo un Windows, con Java la puedes hacer correr donde te de la gana mientras haya la maquina virtual.
Bueno esto no es del todo cierto, por un lado para que Java te corra en cualquier máquina como bien dices, necesitas instalarte el JRE por lo que su multiplataformidad es muy similar a la de .Net ya que este necesita del FW para furrular. Por otra parte con .Net no solo puedes hacer aplicaciones q corran bajo windows, tb puedes hacer componentes a muy bajo nivel, para usar en distintos sistemas operativos, así como cualquier tipo de componente Harware
Eso de que .NET gestiona mejor los recursos... te falto poner los recursos de Windows, porque de los demás no gestiona nada.
Nose a que te refieres con "los demas", de todas formas te recuerdo que sin entrar a hablar de aplicaciones bajo pools de hilos o multithreads, a la hora de ejecutar un programa en .net, la gestión de recursos si que existe, ya que los fw de windows traen integrados el GarbageCollector, o recolector de basura, que va eliminando todos los procesos que no estan siendo usados, a parte de que tienes la posibilidad de configurarlo, puedes guardar x procesos que se vayan a usar en un momento determinado o no, por otro lado tb tienes el distinto proceso que se realiza a la hora de ejecutar o compilar un programa, en .net el sistema es bastante más optimo que en java. Ya que se utilizan tres tipos de lenguajes a la hora de hacer correr una aplicación, por un lado el codigo fuente de la aplicación propiamente dicho, por otro un código IL que es la traducción de dicho código a otro más básico interpretado por el compilador y luego el codigo final ejecutado.... Al haber tanto proceso, de traducción de un lenguaje a otro se podría pensar que esto consumiría mucho recurso, pero no es así, ya que solo se van compilando (traduciendo), los trozos de código imprescindibles para pasar de una rutina a otra.
Lo que dices de pasar base de datos Access a SQL, es tan fácil como crear una nueva conexión y grabar un select bajo el mismo nombre de tabla, vamos que todos los lenguajes de programación actuales tienen asistentes para hacerlo. Es mas el propio AQL tiene herramientas para importar base de datos Access.
Bueno la verdad es que esta parte de distintas formas de acceso a distintos tipos de datos es bastante similar, ya que cada lenguaje tiene sus propios providers incorporados que te lo hacen todo solito. La única pequeña diferencia es que .Net en su visual studio te trae unas 923847 ya incorporados, dejando la posibilidad de incorporar futuras nuevas versiones.
Java Dispone de entornos de ventanas con las 400 propiedades o controles que mencionas, sólo que no será posible ejecutar ese programa en SO que no sean Windows.
En cuanto a controles, propiedades y demás, no hay punto de comparación, puedo asegurarte que la plataforma .net puede tener 10 veces más de propiedades y controles que todo JAVA, no olvidemos que es ms el que está detrás implementando y completando másy mas controles, y por no hablar de la facilidad a la hora de crearte tu propio control, propiedades etc...
La Herencia del .NET es realmente una ñapa que no saben ni como ha salido, ya que, te permite heredear de lo que quieras aunque no tengan nada que ver. Han intentado coger la parte que soluciona la Herencia de Java y la Herencia de C para obtener una Herencia caótica y sin estructura.
Aquí me he perdido, me estas diciendo que la herencia de .net es una ñapa pq puedes heredar de cualquier clase??, eso será si el que hace la clase lo permite, sino NO. Por otro lado dices que no tiene estructura??, te propongo que te veas algun esquema de las librerías de .net, cuando lleves 5 horas viendo todas las relacionies que tiene una simple clase, vuelve a reflexionar, sobre eso de que no hay estructura
Un programa en Java va a funcionar aunque la maquina virtual se actualice, ya veras que gracia te va a hacer cuando salga el .NET Framework 3.5 y todo el software del 2.0 se quede obsoleto porque han cambiado la parte de interpretar la herencia por ejemplo.
Esto es falso, si tu haces una aplicación con el FW 1.1 te va a funcionar tanto en la version 2.0 como en la 3.0; otra cosa es que hagas una aplicación con componentes nuevos de la versión 3.0 y los hagas rular con un fw 1.1 como es lógico no funcionará, estamos hablando de componentes nuevos que antes no existian y ahora si... Y eso que dices de que cambiará la forma de heredar, bueno, eso habrá que verlo tampoco soñemos con lo insoñable, que yo sepa por el momento esa posibilidad es inexistente, pero repito, que yo sepa
pd: (Opinión personal) El entorno de programación .NET es bastante rancio, la pantalla de programación por ejemplo, donde se escribe el código, no se puede poner a pantalla completa o hacerla mas grande, todas sus pijadas ocupan demasiado espacio en el fondo de trabajo.
1º Si que puedes ponerlo a pantalla completa
2º Las pijadas pueden esconderse
3º Puedes configurar al 110% el entorno de trabajo
4º En cuando a IDE de desarrollo, en serio, o no has trabajado mucho con ello, o simplemente no te has puesto a mirar la total personalización que te ofrece vs
P.D:
La verdad es que a mi java me parece una plataforma bastante interesante en cuanto a una segunda opción, si es que no te gusta usar VS simplemente pq eres un radikal de la programación y odias todo lo que tenga que ver con Micrososft...
Aun así no quiero mostrarme pro-defensor de .net, pienso que java tiene sus cosas buenas como son los recursos de SERVIDOR necesarios para rular una aplicación WEB, cosa que se está acabando con la nueva generación de windows servers, sql05, etc..
P.P.D: Sorry por el rollo, pero hoy tengo tiempo libre xd