Java no estaba muerto (y no, tampoco estaba tomando cañas). De hecho, ningún lenguaje de programación muere realmente (ahí sigue nuestro amigo COBOL, aún dando guerra y con el mundo redescubriéndolo por su importancia en la lucha contra el Covid). Pero sí que Java había perdido brillo y parecía un lenguaje destinado a seguir con una importante cuota de mercado pero destinado a pervivir en grandes aplicaciones empresariales hechas en los tiempos de gloria de Java EE).

Sobretodo gracias al tirón de la Inteligencia Artificial, python está más de moda que nunca y, para todo lo demás tenemos a JavaScript (en el cliente, en el servidor, ¡donde quieras!). Aunque no es que estos dos lenguajes sean más “jóvenes” que Java. Y sí, yo también me sorprendí al ver estos números (ya digo que hay que empezar a enseñar historia de la programación):

Además, Java, como lenguaje, se había quedado al margen de las tendencias de los últimos años. Y le empezaron a salir “enanos” por todas partes: Groovy, Scala, Clojure o más recientemente Kotlin. Todos ellos utilizan la máquina virtual de Java (JVM) pero ofrecen conceptos y enfoques de programación diferentes a los de Java.

Esto, que en principio parecía una mala noticia (para Java) ha sido el revulsivo que Java necesitaba para despertar y volver a primera línea. Por un lado, todos estos competidores tenían mucho interés en que la JVM funcionara de una forma óptima con lo que han ayudado a mejorarla. Por otro, Java ha visto de primera mano como se podían incorporar otros paradigmas de programación (como por ejemplo, el estilo más funcional de Scala) o simplificar el lenguaje (como proponía Kotlin). Y lo que ha hecho es justamente inspirarse en ellos para integrar en el propio Java aquellos nuevos conceptos que le han parecido interesantes.

Por ejemplo, una vez que Java incluye Lambda Expressions y Streams, pocas razones hay para pasarse a Scala. Y en las últimas versiones vemos una “Kotlinization de Java”, con planes concretos para eliminar muchas de las razones que aducen por ahora los fans de Kotlin.

Y si lo que más os importa es que vuestro lenguaje tenga un buen soporte para aplicaciones de ML, bueno pues ahí todavía Java no está al nivel de python pero sí que por ejemplo podéis utilizar ya TensorFlow en Java o directamente utilizar la Deep Java Library (con el soporte de Amazon) para mezclar funcionalidades inteligentes en aplicaciones más tradicionales. Sin ir más lejos, con Xatkit puedes crear chatbots en Java utilizando una FluentAPI.

Java no es, ni de lejos, un lenguaje perfecto. Pero ninguno lo es. Y Java sigue ofreciendo muchas ventajas respecto a otros experimentos más nuevos. Y mejorando rápidamente con nuevas versiones cada 6 meses. ¡Si es que ahora hasta tiene a Microsoft detrás!

Tenemos Java para rato. Yo de vosotros lo tendría como un firme candidato para cualquier proyecto de desarrollo futuro. Para leer más sobre este nuevo futuro de Java, os recomiendo el post “A new future for Java” y la presentación “Modern Java for Cloud developers”

Imagen de cabecera por Daniel Jensen en Unsplash