El desinterés de Oracle por Java es una discusión recurrente en la comunidad de desarrolladores desde casi el primer día de su compra. La impresión de no querer fomentar la innovación, pendiente más de sus negocios de cloud computing y sus luchas de patentes fomentan esas dudas. Aunque tengamos ya fecha para la llegada de Java 9 en 2016 parece que no es suficiente.
A esto se suma la irrupción de otros lenguajes más atractivos como Scala o Go, por decir solamente un par, que están sustituyendo poco a poco a Java en ámbitos dónde era indiscutible. El único bastión que lidera Java es Android, pero sigue pendiente de un hilo de que Google de el paso y anuncie un sustituto, una dura estocada si se produce.
La evolución de Java en manos de Oracle
El camino de Java bajo la mano de Oracle siempre ha ido acompañado de que “aún no era el momento de matar a Java, ya tendrá tiempo de hacerlo”.
IBM fue la primera compañía en flirtear con la compra de Sun, pero fue finalmente Oracle la que se hizo en junio de 2009 con Sun y lo que ello conllevaba, Java. Esta compra llegó en el declive paulatino de una de las compañías más innovadoras de la década de los 90 y principios del 2000. Con un stack tecnológico clave en muchas compañías. Oracle cerraba en cierta forma el círculo de su estrategia empresarial ofreciendo un stack completo.
A pesar de la situación que favoreció la compra de Sun, Java estaba en auge en ese momento, salvo disputas con la comunidad libre saldadas con el lanzamiento de OpenJDK para la liberación del código y su implementación libre.
Mientras los ingenieros de Sun se acoplaban en sus nuevos puestos en Oracle, OpenJDK seguía creciendo, incluso haciendo cambiar de idea a muchos detractores de Java en proyectos Open Source con una licencia en Java 7 GNU GPL a penas dos años después de la compra. Oracle mantuvo la promesa de Sun y propició que la JVM fuera el germen para el nacimiento de otros tantos lenguajes JRuby, Groovy, Scala o Clojure.
2010 fue un año negro para Oracle debido a los problemas de seguridad de Java y los continuos problemas con los instaladores de Java. Abusando de la publicidad embebida y de malas integraciones del plugin de su entorno de ejecución en los ordenadores “domésticos”.
El camino de Java bajo la mano de Oracle siempre ha ido acompañado de que “aún no era el momento de matar a Java, ya tendrá tiempo de hacerlo”. Oracle ha ido cepillándose a distintas tecnologías cercanas a Java como Hudson propiciando el fork de Jenkins, dejando de lado servidores como Glassfish, incluso marchitando IDEs como Netbeans en favor de Eclipse. Java ha ido perdiendo paulatinamente el rico ecosistema de Sun dentro de Oracle.
¿El desinterés actual de Oracle por Java?
Oracle dejó claro que no estaba por la labor de colaborar en una de las mayores innovaciones en torno al lenguaje Java como fue y sigue siendo Android.
Planear una obsolescencia programada de Java es algo demasiado aventurado. Infoworld alertaba sobre como numerosos expertos cercanos al entorno de la compañía comentaban con preocupación como Oracle estaba pivotando hacia un negocio centrado en el Cloud Computing olvidándose de Java.
Aunque Oracle no está en un punto de pasarlo mal económicamente, está viendo como su mercado más tradicional está siendo engullido por otros actores en el mercado principalmente centrados en la nube (Salesforce, Amazon, Google o Microsoft). Las empresas que surgen a día de hoy dejan de adquirir costosas licencias de las bases de datos de Oracle o sus productos por soluciones más flexibles. ¿Entonces, Java es un lastre en lo nuevos planes de Oracle?
Desde septiembre hemos ido contemplando como un goteo incesante la fuga de los llamados “Java Evangelist”, algunos con un largo recorrido que han pasado casi 20 años entre Sun y Oracle. Una de las razones de este cese de “ventas” del lenguaje viene justificada por su madurez ¿Es necesario seguir vendiendolo a la comunidad? Quizás las pregunta debería ser planteada en por qué ya no es tan seductor: claramente, la falta de innovación.
A día de hoy, parece que Oracle no quiere compartir sus innovaciones, algo que reforzaría a sus competidores. No está interesada en seguir trabajando con Java EE ni siquiera apoyar o promover las iniciativas propuestas el Java Community Process para definir futuras especificaciones del lenguaje. Recordemos que Java fue liberado en 2006 por Sun con una licencia GNU GPL, pero aún asi Oracle cuando lo compró recibió bastante reticencias. Sin hablar de las disputas con Google acerca de ciertas patentes de APIs de Java.
Oracle ha tenido algunos movimientos muy poco acertados en cuanto al lenguaje, incluso, la que se podría considerar como una versión “rota”, como Java 8 que salió a la luz mirando a los lenguajes funcionales pero sin atreverse del todo. Java 9 es la esperanza de los decepcionados, aún por llegar.
Problemas de compatibilidad hacen que muchos sigan programando en Java 7, en lugar de su última versión como Java 8. Agrietado por el tiempo que paso entre una versión y otra, casi 8 años.
Sin hablar de los problemas de seguridad mal llevados con continuos parches o la mala imagen que dió la dichosa barra de navegación de Ask instalada junto a Java hace unos meses en millones de navegadores. Y, por supuesto, el Day-Zero de seguridad que llevó a una alarma social de la necesidad de tener instalado Java en el navegador con la gran cantidad de software malintencionado que podría atacar los applets con versiones comprometidas de Java.
Oracle ha tenido muy poco claro cómo sacar dinero directamente de Java, quizás la única forma que contempló fue la de demandar a Google por su uso en Android. Dejó claro que no estaba por la labor de colaborar en una de las mayores innovaciones en torno al lenguaje java como fue y sigue siendo Android.
El futuro de Java, según Oracle
Oracle parece querer recuperar Java ME para meterlo si puede en la batalla del Internet de las cosas.
Todas estas argumentaciones previas, totalmente clásicas, acerca de la relación entre la comunidad Java y Oracle, fueron en cierta forma minimizadas. Mejor dicho, adormecidas con las novedades propuestas en la reciente Java One, la gran conferencia anual de la comunidad Java auspiciada por Oracle.
La relevante intervención de Scott McNealy dentro de los homenajes al 20 aniversario del nacimiento de Java recordó la ausencia en la compañía de James Gosling (creador principal de Java) dejando entrever la falta de ese guía.
Pero Oracle a parte de homenajes aprovechó para desvelar sus planes acerca del lenguaje quitándose de encima este yugo de querer abandonar Java a su suerte. Sus principales puntos al respecto fueron la anunciada llegada de Java 8 EE en 2017, enfocada a HTML5, capacidad en cloud, fácil uso, asi como el uso de framework MVC directamente o la mejora en el tema de la seguridad. Terreno que Spring ha liderado utilizando Java antes que Oracle se lance en especificaciones oficiales de la plataforma.
Mientras eso aterriza en el terreno más empresarial de Java, el ansiado Java 9 SE llegará en 2016. Su principal baza es desmontar el monolítico núcleo de Java para convertirlo en un lenguaje modular capaz realmente de funcionar realmente en cualquier sitio sin tener que arrastrar componentes innecesarios.
Existen dos proyectos en la trastienda que trabajan en paralelo para futuras versiones de Java 10 y Java 11: Proyecto Vanhalla y el proyecto Panama, que incorporará novedades tanto a nivel sintáctico como funcional en el acceso de datos nativos y de código, aunque aún queda por ver en qué queda todo ello.
Y Oracle parece querer recuperar Java ME para meterlo si puede en la batalla del Internet de las cosas. Intel es su aliado en ello dando soporte a Java en su IoT Developer Kit. La respuesta al origen inicial de Java, poder funcionar en cualquier dispositivo por pequeño que sea. Java está por si sólo lejos de un declive cercano
Java está lejos de desaparecer
Formar parte del stack principal de muchísimas compañías lo hace difícil de sustituir tan a la ligera.
A día de hoy, Java es ejecutado en el 90% de los ordenadores, casi 3 mil millones de dispositivos móviles funciona bajo Java, Android tiene mucho que ver. Y sigue siendo el TOP 1 de los lenguajes en TIOBE. Este indice incluye a Scala, Groovy y Clojure.
El apoyo de las principales empresas de internet es claro, Netflix, Twitter, Linkedin, Square y Google. Se puede consultar decenas de proyectos en torno a su propio ecosistema.
Aunque Java esté lejos de desaparecer, el futuro es políglota y muchos de los lenguajes JVM nacidos de él le irán sustituyendo según las necesidades. Los desarrolladores están cada vez más capacitados para elegir la correcta herramienta para hacer su trabajo lo más eficiente posible.
En definitiva, Java es más que un lenguaje. Es una plataforma, un API, y una comunidad. A pesar de lo que pueda ocurrir con Oracle en un futuro a medio plazo, la madurez, fiabilidad y seguridad seguirá haciendo posible crear productos innovadores. Formar parte del stack principal de muchísimas compañías lo hace difícil de sustituir tan a la ligera.
Ver 80 comentarios