Kotlin

Artículo

Kotlin: conociendo el lenguaje

¿Qué es Kotlin ?

Kotlin es un lenguaje de programación de tipado estático para Java, Android, el navegador y próximamente LLVM, 100% interoperable con Java, creado por Jetbrains, la compañía responsable, entre otros, de Intellij Idea.

Compatibilidad con Java: 100%

Kotlin es compatible con todos los frameworks Java, teniendo soporte concreto en alguno de ellos como Spring tanto por parte del framework como con plugins específicos en IntelliJ.

La migración de una aplicación Java existente a Kotlin se puede realizar de manera gradual, desarrollando el código nuevo, o cambiando gradualmente partes del código en Kotlin mientras se mantiene el código antiguo Java.

La curva de aprendizaje de Kotlin es pequeña para un desarrollador acostumbrado a Java

Kotlin para Android

Debido a la compatibilidad completa con Java, Kotlin ha podido ser utilizado para desarrollar para Android desde su aparición, aunque sin soporte oficial por parte de Google.

Esto cambió en Mayo de 2017, cuando Google hizo oficial el soporte de Kotlin.

Kotlin no se limita a ofrecer simplemente la opción de cambiar código Java por Kotlin, sino que ofrece una serie de herramientas para ofrecer funcionalidades extra:

Kotlin Android Extensions es una extensión del compilador que permite sustituir las llamadas a findViewById() por propiedades generadas en tiempo de compilación automáticamente.

Anko es una librería compuesta por cuatro modulos:

• Anko Commons - Presenta las API’s de Android de una manera más cercana a Kotlin

• Anko Layouts - Ofrece una alternativa a los ficheros .xml de layout

• Anko SQLite - Métodos auxiliares para facilitar el trabajo con SQLite

• Anko Coroutines - Métodos auxiliares para trabajar con threads

Native Kotlin

En desarrollo se encuentra la funcionalidad de compilar Kotlin en codigo nativo, actualmente para las siguientes plataformas:

Windows (x86_64), Linux (x86_64, arm32, MIPS, MIPS little endian), MacOS (x86_64), iOS (arm64), Android (arm32 y arm64) y WebAssembly (wasm32)

Kotlin a Javascript

Kotlin permite generar código Javascript, aunque actualmente únicamente soporta ECMAScript 5.1.

Ofrece una serie de interfaces para interactuar con el DOM o API’s del navegador.

Permite trabajar con frameworks o librerías como Jquery o React, o incluso Angular e importar ficheros de tipado de Typescript.

Kotlin y otros lenguajes - El santo grial para las empresas

Kotlin comparte muchas características y sintaxis los lenguajes Swift y Typescript, lenguajes de desarrollo iOS y web respectivamente.

En el mundo front la barrera del lenguaje queda prácticamente eliminada, limitándose a conocer las API’s y diferencias entre las plataformas. De la misma manera, los lenguajes de front y backend serán también muy similares.

Todo esto hará que el cambio de plataforma sea mucho menos drástico para los desarrolladores, ya sea a la hora de aprender una nueva plataforma o de proyectos de desarrollo en paralelo de distintas plataformas, por ejemplo un caso típico: desarrollo de aplicaciones móviles nativas, webapp y un backend compartido por las tres.

De la misma manera, por su similitud de sintaxis y manera de hacer las cosas, actualmente ya existen herramientas que permiten transformar código entre los tres lenguajes y esto no puede más que aumentar con el tiempo.

Conclusiones

Java está intentando modernizarse y sobre todo tener un ciclo mucho más ágil y rápido de versiones y mejoras, pero parece complicado que consiga igualar lo conseguido por Kotlin en el corto o medio plazo.

Menor cantidad de código, más claro, con menos posibilidades de bugs, y todo con una curva de aprendizaje pequeña y gran similitud a otros lenguajes altamente extendidos. Todo son ventajas con Kotlin.

Y todas estas ventajas para el desarrollador se traducen directamente en ventajas para la empresa, ya sea esta una consultora, una factoria de software o un cliente final.

Desde mi punto de vista Kotlin es el presente y futuro del mundo Java, y debería ser el lenguaje de referencia en cualquier nuevo desarrollo.

Y lo siento por Java, con el que he pasado buenos momentos en el pasado, pero se ha quedado anticuado para los tiempos que corren y lo que el mercado del software requiere.

No te pierdas la segunda parte de este articulo donde profundizaremos técnicamente en el lenguaje.

Ángel Hernández Fernández

Ángel es analista senior del área de tecnología de Deloitte con más de 6 años de experiencia. Se incorporó a Deloitte en 2011 dentro del área de DxD. Su carrera ha estado enfocada desde el inicio en el ámbito front-end formando parte de la iniciativa de la compañía desde su creación. Ha participado en proyectos que abarcan desde portales web, aplicaciones web SPA y aplicaciones móviles tanto hibridas como nativas en ambas plataformas, trabajando con las arquitecturas y frameworks más comunes en el mercado.