
Kotlin, visión general del nuevo lenguaje para Android
A mediados de 2009, yo empezaba a caminar, lentamente, mi camino en el desarrollo de aplicaciones para teléfonos móviles. En la época de J2ME, y luego en Java Android, sentía la necesidad de un lenguaje menos estructurado y que no tuviera una curva de aprendizaje tan exigente (especialmente en el caso de J2ME). Fue un largo camino hasta que Kotlin entrara en mi vida, pero definitivamente fue el mejor lenguaje que he conocido hasta ahora.
En 2010, un grupo de ingenieros de JetBrains inició el desarrollo del lenguaje Kotlin buscando suplir las carencias de la empresa que provenían de otros lenguajes, con la excepción del lenguaje Scala. Sin embargo, el tiempo de compilación de Scala siempre fue una deficiencia obvia.
En febrero de 2016, el lenguaje fue lanzado bajo el sobrenombre de Kotlin v1.0, siendo el primer lanzamiento oficial y estable. Poco más de un año tras el lanzamiento, Google anunció en el evento Google I/O el soporte oficial del lenguaje para Android.
Cuando comencé a estudiar Kotlin, tenía la noción de las dificultades que surgirían en el camino, pero me sorprendió la rápida curva de aprendizaje del lenguaje. En este artículo, traigo un poco de ese conocimiento adquirido.
Interoperabilidad con Java
Para empezar, Kotlin es un 100 % interoperable con Java, lo que significa que es posible tener los dos lenguajes conversando en un mismo proyecto. Otra gran ventaja es el plugin de Android Studio que convierte el código Java a su respectivo en Kotlin.

Simplicidad
Para quienes programan desde hace mucho tiempo lenguajes estructurados como Java, tratan con naturalidad la gran cantidad de líneas de código para ejecutar funciones, a menudo, simples. Sin embargo, cuando colocamos los dos lenguajes (Java/Kotlin) lado a lado, vemos cuánto más un programador Java escribe que un programador Kotlin para que la aplicación realice la misma función.


Como podemos ver en las figuras 3 y 4, Kotlin tiene una dinámica de programación más concisa, y gracias a ello hace más fácil la comprensión.
Seguridad contra nulidad
Uno de los mayores problemas en el lenguaje Java, si no el mayor, son los NullPointerExceptions, cariñosamente llamados NPE. En Java, para cada acceso en un objeto, el programador debe comprobar si este es nulo. Kotlin ofrece una forma más eficiente de hacer la verificación porque el propio lenguaje distingue referencias que pueden ser nulas (nullable references) de referencias no nulas (non-null references).


En la figura 4, tenemos la declaración de una variable que no puede ser nula. Cuando intentamos asignar nulo a esta variable, el compilador informa de la imposibilidad de esta acción. En la figura 5, ya declaramos la variable como posible nulo. En este caso, al asignar nulo a la variable, la aplicación es compilada normalmente.
Extensiones
Una de las características más interesantes de Kotlin es el uso de extensiones para agregar nuevos métodos a una clase sin la necesidad de heredar (esto incluye implementar todos los métodos) de esta. Pensando así, ¿cuál es el incentivo por detrás de este enfoque? La respuesta es simple: evitar la estructuración característica de las llamadas en Java.



Hay otras ventajas y también limitaciones de Kotlin con relación a Java que pueden ser encontradas en la propia página web de Kotlin. Termino diciendo que el uso de Kotlin como lenguaje principal en el desarrollo de aplicaciones de Android, no sólo me trajo beneficios en el sentido de aprendizaje, sino que también hizo mi vida de programador más simple y menos estructurada.
By: André de Lima
