Las funciones de cierre de .NET son populares entre muchos desarrolladores y Java parece implementarlas pronto. Por supuesto, esta es una función del lenguaje, no una función de tiempo de ejecución. Creo que cuál de los dos eliges en última instancia depende de tus preferencias personales y de las oportunidades profesionales locales. Las funciones de cierre de .NET son populares entre muchos desarrolladores y Java parece implementarlas pronto. Por supuesto, esta es una función del lenguaje, no una función de tiempo de ejecución. Creo que cuál de los dos eliges en última instancia depende de tus preferencias personales y de las oportunidades profesionales locales.
1.¿Qué pasará cuando Java SE 7 encuentre .NET CLR?
Como puede ver en la lista de funciones de Java SE 7, ha mejorado mucho en comparación con versiones anteriores. Entonces, ¿es un punto de inflexión? No lo creo. En los últimos años, ha habido numerosas mejoras tanto en JVM como en .NET CLR. Muchas cosas que en el pasado solo podían lograrse por programadores muy hábiles ahora están dentro de las capacidades de los programadores comunes gracias a las mejoras en JVM; y el .NET CLR obtener.
Aunque JVM y .NET CLR no implementaron la misma idea al mismo tiempo, si aparece una buena idea en un lado, el otro lado la seguirá rápidamente. Esto no solo se refleja en el nivel de tiempo de ejecución. Por ejemplo, para Java, después de que el proyecto Hibernate lograra un gran éxito, .NET también lanzó rápidamente NHibernate. Las funciones de cierre de .NET son muy populares entre muchos desarrolladores y Java parece implementarlas pronto. Por supuesto, esta es una característica del lenguaje, no una característica de tiempo de ejecución.
Los cierres de .NET son un éxito y Java pronto hará lo mismo
2. ¿Un tiempo de ejecución derrotará por completo al otro en el futuro previsible?
Aunque JVM y .NET CLR son muy similares a nivel técnico, cada uno tiene su propio mercado y ninguno es muy flexible. Si uno ha creado su infraestructura alrededor del servidor .NET e IIS, no hay forma de que pueda despertarse al día siguiente y migrar todo eso a Java, y viceversa. Incluso si una empresa decide cambiar su plataforma de desarrollo, es posible que deba reemplazar a todo su equipo de desarrollo o capacitarlos desde cero. Incluso después de completar la capacitación, todavía existen serias deficiencias en las habilidades; después de todo, es imposible que un desarrollador senior de .NET se convierta repentinamente en un desarrollador senior de Java después de 3 meses de capacitación.
Además, la empresa necesita retener el personal técnico existente para mantener el código existente. ¿Cree que estos empleados se quedarán sentados y verán cómo se eliminan sus puestos o cómo sus habilidades se vuelven inútiles o se devalúan? Para una empresa, cambiar completamente de Java a .NET o cambiar completamente de .NET a Java es un acto suicida. Como máximo, los empleados serán reeducados a través de un proyecto de varios años. La migración de VB6 a .NET ha tardado 8 años desde que se lanzó .NET.
La transformación de programadores y proyectos lleva tiempo
3. ¿El costo del desarrollo de Java es más económico que el del desarrollo de .NET? Si es así, ¿la gente recurrirá a Java para ahorrar inversión?
Si sólo estás mirando las herramientas, mi respuesta es "tanto correcta como incorrecta". De hecho, puedes ejecutar Java en un paquete de código completamente abierto si lo deseas. Puede tomar una combinación de Linux/Tomcat/MySQL/Java o usar una combinación de SpringSource en el lado del servidor y Eclipse o NetBeans en la computadora del desarrollador. Pero es importante señalar que no serás un gran admirador de las alternativas de código abierto por cualquier motivo, y no estoy diciendo que las alternativas sean malas, si ese es el caso, el precio de las herramientas Java en comparación con las; Herramientas .NET bastante, y en muchos casos incluso más caras. Y si observamos lo que están haciendo empresas como Oracle e IBM, queda claro que muchas empresas sienten la necesidad de pagar por herramientas Java patentadas. En términos de precio, Microsoft es casi siempre el proveedor empresarial con el precio más bajo en cualquier segmento del mercado.
Además, hay que considerar cuánto dinero se ahorraría la empresa si no hubiera costes de cambio. El costo de una copia de Visual Studio es mucho menor que el salario semanal y la prima de seguro de un desarrollador de ingresos moderados. Además, el tiempo que le lleva a un mismo desarrollador aprender Java y alcanzar el nivel en el que es bueno en .NET es mucho más de una semana.
Para ser justos, este análisis también se aplica al paso de Java a .NET. En comparación con el dolor de cambiar de plataforma, el costo de las herramientas de desarrollo es realmente insignificante. Por supuesto hay dos excepciones. La primera situación es crear una nueva empresa, por lo que no hay problemas de costos de migración. En este caso, Java todavía no tiene ventaja de costos, porque Microsoft también lanzó una versión gratuita de Visual Studio (versión Express), y si tu empresa es una empresa nueva, puedes obtenerla gratis durante tres años a través de BizSpark. Planifique con licencia MSDN y Microsoft, no están mal. Otra excepción es una empresa con una relación servidor-desarrollador muy alta, como Google o Yahoo. Estas empresas pueden tener muchos desarrolladores trabajando en una aplicación que se ejecuta en miles de servidores. En este caso, las herramientas de desarrollo no son el principal factor de ahorro de costes, pero sí el espacio del servidor. Para las empresas que enfrentan esta situación, Java (y otras tecnologías de código abierto) puede tener una ventaja de costos decisiva.
4. ¿Cuánto lenguaje de scripting necesita saber un desarrollador de Java para lograr eficiencia en .NET?
Primero, ¿está trabajando en desarrollo web? Si es así, es posible que desee conocer algo de JavaScript y familiarizarse con los marcos correspondientes. Para el trabajo de backend, no es obligatorio ni obligatorio conocer un lenguaje dinámico o de secuencias de comandos. No obstante, existen muchas buenas opciones para este propósito en el espacio Java. Para alguien que actualmente no es desarrollador de Java, no tengo ninguna experiencia real en esta área, pero he escuchado muchas buenas críticas sobre Groovy y Scala. Si desea elegir algunas de las tecnologías más convencionales, JRuby y Jython son buenas opciones.
Hay varias formas de mejorar el rendimiento de las aplicaciones Java.
En los últimos años, JVM ha comenzado a admitir un gran número de lenguajes distintos de Java y los desarrolladores ahora tienen muchas opciones. Aprender uno de estos definitivamente lo ayudará a convertirse en un mejor desarrollador (incluso si no los usa en proyectos de producción reales) y puede brindarle una dirección alternativa cuando su proyecto se estanca.
¿Java reemplazará a .NET? Es demasiado pronto para decirlo. Al mismo tiempo, .NET no acabará con Java. Ambos tienen sus propias ventajas y desventajas. Creo que cuál de los dos eliges en última instancia depende de tus preferencias personales y de las oportunidades profesionales locales.