La tecnología y la formación que ofrecemos para cubrirla siempre van de la mano. De vez en cuando, salen a la luz algunos elemento que prometen un fuerte impacto en ambas, a veces a corto plazo, a veces a medio plazo. Creo que estamos en presencia de una.
Ha aparecido un lenguaje que destaca, además de por sus propias características, por haber recibido respaldo oficial como “ciudadano de pleno derecho” nada menos que por Spring Framework y Android.
Android reina en el mundo de la telefonía móvil y Spring en la creación de sistemas basados en servidor para la plataforma Java.
Existe hoy en día una postura, opinión, tal vez tendencia pero no acuerdo unánime, de que Java es a la vez un problema y una solución.
El problema: Java es una lenguaje antiguo (nacido en 1995), para muchos candidato a un bien ganado retiro, que obliga a escribir demasiado código para poder trabajar con él. Los intentos de Oracle de mejorar las cosas con Java 8, 9 y 10 parecen pasos en la dirección correcta, pero aún queda un largo camino por recorrer.
La solución: la plataforma de ejecución de programas Java (JVM, Java Virtual Machine) es un entorno extremadamente eficiente y potente, de todas todas candidato para el despliegue en producción de sistemas reales.
Así las cosas, no es sorprendente que proliferen lenguajes con una concisión mucho mayor que la que tiene Java capaces de ejecutarse en la JVM. Este es el truco: escribimos mucho menos código y lo ejecutamos como si fuera un programa Java estándar.
Hay muchos de estos lenguajes hoy en día, pero voy a mencionar dos, el uno como antecedente y el otro como consecuente.
Scala y Kotlin
Bien, Scala es todo lo que Java podría llegar a ser, mientras que Kotlin es todo lo que Java debería ser, para optimizar al máximo su uso en proyectos reales.
Kotlin es un excelente equilibrio entre la orientación a objetos y la programación funcional, los dos grandes paradigmas del desarrollo en este momento, con una curva de aprendizaje más que suave para aquellos que conozcan el lenguaje Java. Su integración con éste y el software escrito para ello (482K repos en GitHub) es absoluta.
Así que ahora escribir una app bajo Android no sólo necesita la mitad de código aproximadamente, sino que se pueden hacer cosas que bajo Java son complejas o directamente imposibles. Como os podéis imaginar, más de uno y más de dos están dispuestos a aprender Kotlin.
Supongamos ahora que necesitamos y decidimos crear un sistema servidor o, de hecho, de cualquier tipo con Spring Framework. Podemos hacerlo en Kotlin con las mismas ventajas que en Android. Por eso, el equipo de Spring se ha molestado es ofrecer soporte completo en la versión 5, cosa que nunca había ocurrido hasta ahora.
Por otra parte, hay una herramienta llamada Spring Boot que ha cambiado por completo cómo creamos aplicaciones para Spring, en mi opinión lo ha revolucionado. El motivo es muy sencillo: la parte más compleja de Spring, su configuración, se lleva a cabo automáticamente, con una intervención humana mínima. Hoy, con Spring 5 + Kotlin es más rápido que nunca poner sistemas en el mercado, especialmente el típico lado servidor que expone un API RESTful a la que accedemos con clientes ligeros desarrollados en Angular2+, React, Android o similar.
A mi juicio, tenemos dos palabras que no hay que olvidar: Spring-Boot y Kotlin, especialmente trabajando juntos con Android. Creo que este tándem va a afectar profundamente al desarrollo y a la formación que impartimos para dar soporte a los profesionales.
Espero que este artículo de opinión os resulte útil e interesante.
¡Hasta pronto!