Profile Software Services

Descubriendo Kotlin

En este post te voy a hablar de un lenguaje de programación emergente que está dando mucho que hablar desde que en 2016 la empresa JetBrains -conocida por ser la desarrolladora de famosos IDEs como IntelliJ o PhpStorm- liberara la primera versión. ¡Hablamos de Kotlin!

¿Qué es Kotlin?

Kotlin es un lenguaje de programación para la JVM (Máquina Virtual de Java), interoperable 100% con Java, que pretende convertirse en referencia tanto en desarrollo backend como en Android. De hecho, en 2017 Android lo adoptó como lenguaje oficial de desarrollo.

Características de Kotlin

Algunos rasgos que caracterizan a Kotlin son:

Sencillez y concisión

Kotlin es realmente conciso respecto a Java, reduciendo en gran medida la escritura de código.

¡Veamos un ejemplo! En Java, un clásico bean con un atributo tendría este aspecto:

public class User {
	private String username;
	public User(String username) {
    	this.username = username;
	}
	public String getUsername() {
    	return username;
	}
	public void setUsername(String username) {
    	this.username = username;
	}
	@Override
	public boolean equals(Object o) {
    	if (this == o) return true;
    	if (o == null || getClass() != o.getClass()) return false;
    	User user = (User) o;
    	return Objects.equals(username, user.username);
	}
	@Override
	public int hashCode() {
    	return Objects.hash(username);
	}
	@Override
	public String toString() {
    	return "User{" +
            	"username='" + username + '\'' +
            	'}';
	}
}

En Kotlin, el código equivalente sería el siguiente:

data class User(val username: String)

Con este sencillo ejemplo nos vamos dando cuenta de todo el código que nos puede ahorrar Kotlin en las cuestiones más básicas.

Seguridad

En este caso no nos referimos al hacking ni nada por el estilo, sino a la seguridad que te proporciona Kotlin haciendo que las variables no puedan ser nullables por defecto, evitando así los errores en tiempo de ejecución que provocan los valores nulos.

var output: String
output = null   // Compilation error

Interoperabilidad 100% con Java

Como ya hemos señalado al inicio, Kotlin es 100% interoperable con Java, lo que te permite usar librerías de uso extendido que están escritas en Java en tus programas de Kotlin con total libertad.

Dado que es un lenguaje basado en Java, comparte muchas de sus estructuras y maneras de trabajar y mejora mucha de sus deficiencias. Por eso la curva de aprendizaje para los «javeros» es mucho más pequeña y asumible.

Kotlin: un lenguaje en crecimiento

El anuncio de Kotlin como lenguaje oficial de Android en mayo de 2017 suscitó un interés masivo por este nuevo lenguaje e hizo que muchos programadores empezaran a usarlo. Después, la popularidad de Kotlin ha ido creciendo de manera constante.

Evolución del interés por Kotlin según Google Trends
Evolución del interès por Kotlin según datos de Google Trends

Decimos que es un lenguaje en crecimiento continuo no como frase hecha, sino porque hay datos que lo respaldan. Según podemos ver en la siguiente gráfica, Kotlin ha sido el lenguaje que más ha crecido en 2018, según un análisis que hizo GitHub sobre 96 millones de repositorios de código alojados en sus servidores.

Pero no es solo Android donde Kotlin encuentra dónde hacerse hueco. El desarrollo backend es otro de los grandes beneficiados por la aparición de Kotlin.

Sin ir más lejos, el popular framework Spring a partir de su versión 5 habilitó la compatibilidad con Kotlin para desarrollar aplicaciones, lo que también ha provocado que se haya popularizado entre la comunidad de desarrollo en servidor.

Además, es importante destacar el uso que se está haciendo de Kotlin en otro de los ámbitos que más está de moda últimamente en el mundo del desarrollo de software, la programación funcional.

Dada su fisonomía, Kotlin proporciona muchas herramientas para llevar a cabo programación funcional y esto también hace que se desarrollen tecnologías a su alrededor que faciliten esa labor. Es el caso de Arrow, una librería específica para programación funcional escrita en Kotlin y desarrollada por la empresa 47 Degrees.

Para concluir el asunto de la popularidad de Kotlin, me gustaría recuperar los resultados de la encuesta de Stack Overflow 2018, de la que ya hablamos en este post sobre los lenguajes de programación más populares. Kotlin se colocaba en el top 3 tanto en la categoría de los lenguajes más amados (aquellos que ya se están usando y en los que se quiere continuar) como en la categoría de los más queridos (aquellos que los desarrolladores aún no usan, pero les gustaría aprender).

Mi experiencia personal con Kotlin

A nivel profesional, en Profile ya hemos hecho uso de Kotlin en alguno de nuestros clientes. Por ejemplo, hemos empleado Kotlin junto con Arrow en la implementación del Portal del Desarrollador de una importante aseguradora nacional.

Por mi parte, de manera personal, llevo cerca de un año siguiendo este lenguaje. En este tiempo he podido desarrollar algunos proyectos personales. He invertido bastante tiempo en leer sobre Kotlin y, sobre todo, en escribir código en Kotlin, que es lo que realmente te da la visión correcta sobre un lenguaje.

Concretamente, me encargué de realizar una API de adaptación de la librería de AWS para S3 (el servicio de Amazon de almacenamiento de archivos en la nube), que consiste en facilitar el uso de ese SDK a los desarrolladores en Spring Framework. Realicé el desarrollo en Java y en Kotlin, y como podréis observar en el repositorio de GitHub, casi todas las clases de Kotlin tienen menos líneas que las de Java, y se obtiene un código más legible.

También he desarrollado una API de adaptación para enviar emails en Spring. Aquí podéis ver todo el código.

Con estos precedentes puedo destacar algunos aspectos positivos:

Por un lado, quiero hacer hincapié en el importante ahorro de código gracias a la propia sintaxis del lenguaje, lo que te permite escribir mucho más limpio y ordenado y sobre todo entendible para los demás.

Por otro, el aprendizaje me ha resultado muy cómodo, teniendo en cuenta que vengo de desarrollar mucho tiempo en Java. Así que si eres javero, ¡no le tengas miedo! porque vas a acabar aficionándote a escribir código en Kotlin.

En conclusión, creo que es un buena elección iniciarse en su aprendizaje, dada su facilidad y la mejora en la productividad que proporciona. ¡Merece mucho la pena!

Salir de la versión móvil