Como todos los desarrolladores de Java saben, Oracle compró Sun y el futuro de Java parece bastante poco claro, especialmente porque Oracle quiere monetizar la JVM. Java como lenguaje también ha sido obsoleto en los últimos años, la no inclusión de cierres es un ejemplo (que podría incluirse en Java 1.8) Al mismo tiempo, se están utilizando algunas nuevas tecnologías como Ruby, Scala y Groovy para entregar sitios complejos.
Me pregunto si hay empresas u organizaciones que están hablando, haciendo picos o comenzando a usar una tecnología diferente, con la idea de dejar de usar Java para proyectos de campo verde, de la misma manera que hace 15 años las empresas migraron de C ++, perl y otras tecnologías a Java. También me interesa saber cuáles son las impresiones de esto, por ejemplo: planear migrar a una tecnología diferente en 2 años.
Para ser claros, no estoy preguntando qué tecnología es mejor. Le pregunto si su organización está pensando en dejar Java para otra tecnología.
Respuestas:
Para nada, de hecho, estoy invirtiendo mucho en Java como plataforma en mi empresa (una startup que desarrolla aplicaciones y herramientas SaaS para la minería de datos).
Aquí están las razones:
Elegir Java como plataforma no significa que deba usar Java como lenguaje. Usamos Clojure como el lenguaje principal de desarrollo de aplicaciones, ocasionalmente cayendo en Java donde sea necesario. Pero otros lenguajes JVM como Scala y Groovy también son geniales.
Personalmente no estoy preocupado por Oracle . La implementación principal de Java seguramente seguirá siendo de código abierto ( OpenJDK ) y estará disponible de forma gratuita. Si Oracle hizo algo estúpido, entonces otras grandes compañías (creo que IBM y Google en particular) han invertido demasiado en Java para dejar que se salga con la suya, y podrían continuar desarrollando Java sin la ayuda de Oracle.
La JVM es un excelente entorno de ejecución . Multiplataforma, muy alto rendimiento, tecnología JIT de optimización extremadamente buena. Está lo suficientemente cerca de la velocidad nativa que no me importa la cantidad fraccional que es más lenta que C / C ++, y esta sobrecarga está más que compensada por la recolección de basura adecuada y un entorno de ejecución de código de bytes administrado, etc.
Java tiene un gran ecosistema de bibliotecas de código abierto . De hecho, diría que es el mejor ecosistema en general de cualquier idioma. Esto significa que la mayor parte del "trabajo pesado" en términos de infraestructura ya se ha realizado, con una calidad extremadamente alta. Y el hecho de que la mayoría de las cosas que necesita son de código abierto significa que no tiene el costo (tanto en términos de dinero como de tiempo de administración) para obtener licencias.
Eclipse es un gran IDE y proporciona una cadena de herramientas fantástica para el desarrollo de aplicaciones empresariales robustas. Utilizamos la integración de Maven, JUnit, Git / SVN y una serie de otras herramientas que están disponibles como complementos de Eclipse. Todo "simplemente funciona".
Finalmente, ¿cuáles son las otras opciones?
.NET es la única plataforma con capacidades comparables y personalmente me gusta C #, pero te encierra en tecnologías de Microsoft (peor que Oracle / IBM IMHO) y no tiene la misma amplitud de ecosistema de código abierto. Está bien para las tiendas de Microsoft, pero no si quieres controlar tu propio destino tecnológico. Y sí, Mono es lindo, pero no puedo permitirme apostar mi negocio en una plataforma que puede o no mantener un nivel de compatibilidad de trabajo con la corriente principal de .NET.
Luego están todos los otros lenguajes geniales que son muy buenos en lo que hacen (por ejemplo, Ruby, Python, PHP, Javascript) pero que no ofrecen un equivalente convincente e integral a la plataforma Java. El riesgo es que tienes que empezar a pegar muchas cosas en una arquitectura un poco menos que hermosa. No es un problema para crear sitios web, aplicaciones rápidas y sucias, pero menos atractivo para el desarrollo de productos a largo plazo.
C / C ++ es excelente para la programación de sistemas y juegos, pero es demasiado complejo / costoso / inflexible para el desarrollo moderno de aplicaciones web.
Y luego están los hermosos idiomas que amo como Haskell, que son fantásticos desde una perspectiva académica pero que simplemente no tienen la adopción / ecosistema de la industria necesarios para convertirlos en una opción de plataforma creíble. También puedo obtener la mayoría de los beneficios de la programación funcional moderna ejecutando Clojure en la JVM .....
Entonces sí, es una decisión compleja. Pero tomé la decisión de Java sobre todas las demás opciones después de mucha investigación y consideración considerable. Todavía tomaría la misma decisión hoy.
ACTUALIZAR
Algunas palabras sobre la elección de Clojure en la JVM como opción de idioma. Las principales motivaciones para esto fueron:
fuente
Todo depende del cliente.
Java siempre tendrá su propio nicho en el que las personas van a gravitar por una u otra razón, por las mismas razones por las que las personas gravitan a .php o .net, pero en última instancia, depende de los requisitos y preferencias del cliente.
Si un cliente dice ... Quiero que esta aplicación esté en Java ... ¿vamos a decir que no? probablemente no ... si dicen que realmente no nos importa ... ¿lo vamos a escribir en java? probablemente no, pero eso es solo especulación.
Tenemos aplicaciones escritas en Java que tienen una larga historia, pero parece que el cliente está reemplazando meticulosamente TODO con la marca Windows ... Oracle para SQL Server ... Unix / Linux con el servidor 2008 ... y PHP y Java con .net.
Si eso sucede, entonces sí ... a menos que un nuevo cliente entre y diga hola ... queremos que esto esté escrito en Java ... usaremos .net.
fuente
Primero una premisa, no trabajo en una empresa de software.
Ok, usamos Oracle como nuestra base de datos principal con toda nuestra información importante almacenada en ella. Debido a esto, planeamos continuar usando Java para cualquier cosa que tenga que ver con Oracle. La adquisición de Sun por parte de Oracle es un impulso para que continuemos usando Java para todo lo relacionado con Oracle.
Pero, cualquier aplicación de escritorio está escrita en C # ya que todo está basado en Windows.
fuente
Para contestar tu pregunta. No.
En las empresas de cualquier tamaño significativo, generalmente no son los desarrolladores quienes deciden cuestiones como si la empresa debería alejarse de Java hacia otra cosa. Y para los tipos que toman estas decisiones, son importantes otros factores además de los que usted enumeró.
Por el contrario, creo que el futuro está claro. La evolución de Java continuará a un ritmo lento pero constante, y las tecnologías centrales SE y EE continuarán siendo gratuitas. Para mí, la única área real de incertidumbre es lo que sucederá con el enfrentamiento entre Oracle y Google. Pero de una forma u otra, espero que Android / Davlik prospere como una alternativa a Java ME ... pero solo para plataformas móviles.
Esto puede irritar a los desarrolladores, pero el "estancamiento" es en realidad una consecuencia de que Sun / Oracle preste atención a lo que la empresa quiere ... un lenguaje / plataforma con estabilidad a largo plazo.
Una vez más, desde la perspectiva de la administración, el jurado está decidiendo si estas tecnologías son mejores en todos los ámbitos.
Una decisión a nivel de la empresa de cambiar a un nuevo idioma tiene costos y riesgos significativos, especialmente si hay una cantidad significativa de código existente en el lenguaje "heredado".
fuente