• slidebg1

KOTLIN: El nuevo lenguaje para Android


¿Qué es?

Kotlin es un lenguaje de programación de tipado estático para la JVM, Android y el navegador. Es un lenguaje funcional creado por Jetbrains,  la empresa que está detrás de IntelliJ, uno de los mejores IDEs y cuyo lema es “Develop with pleasure!”.

Lambas, null safety, extension functions  y un montón de nuevas características hacen que el desarrollo de Android sea más sencillo y fácil. De hecho, a veces, al hablar de Kotlin se lo describe como “the Swift of Android”.

 

¿Qué aporta?

Tal y como se detalla en su sitio oficial http://kotlinlang.org/,  kotlin presenta muchas razones para fijarse en él. Veamos un pequeño resumen de las más importantes y después entraremos más en detalle:

 

  • Conciso: Reduce drásticamente la cantidad de código que se debe escribir. Se ha evitado que sea un lenguaje extremadamente complicado con miles de opciones, para convertirse en uno que permita expresar mucho con la menor cantidad de código posible, y a la vez que reduzca lo máximo posible la curva de aprendizaje de desarrolladores Java.

 

  • Seguro: Evita errores como los NPE (Null Pointer Exception). Kotlin está dirigido a eliminar el peligro de referencias nulas del código, también conocidas como  The Billion Dollar Mistake

 

  • Versátil y ligero: Construya aplicaciones del lado del servidor, aplicaciones de Android o código de frontend en ejecución en el navegador. Se ha trabajado para que Kotlin no fuera un lenguaje muy pesado, con el fin de que pudiera crearse código que corriera en cualquier dispositivo. Desde el principio vieron el potencial que podría aportar sobre Android, así que a ello se unió la premisa de que tenía que ser compatible con Java 6.

 

  • Interoperable: Aproveche los frameworks y librerías existentes de la JVM con Interoperabilidad 100% Java. Se puede utilizar sin problemas todas estas librerías y también se pueden utilizar ambos lenguajes a la vez para un mismo proyecto. Esto lo hace ideal para empezar a utilizar kotlin partiendo, por ejemplo de un proyecto ya hecho. Esto último lo diferencia del resto de lenguajes JVM. 

Origen

En JetBrains se plantearon la necesidad de un lenguaje que les permitiera escribir un código más mantenible, legible y adecuado a las condiciones actuales del desarrollo. Pensemos que los que desarrollamos software, empleamos mucho más tiempo leyendo y entendiendo código que escribiendo. Java se estaba quedando atrás debido al requisito de conservar su retrocompatibilidad, y esto les suponía un problema en su día a día.

Buscaban un lenguaje que corriera sobre la JVM, y que fuera extremadamente interoperable con Java en ambas direcciones, ya que no podían rehacer toda su base de código.

Al final viendo que no tenían otra alternativa que les cubriera todas sus necesidades, se lanzaron a crear su propio lenguaje. Y lo que han hecho es entre otras cosas coger lo mejor de los lenguajes actuales. Esto hace que desarrollar en kotlin, sea más agradable. 

Evolución

El lenguaje fue evolucionando, y es allá por 2015 cuando, movido en parte por Jake Wharton, y su documento donde comparaba las distintas opciones a la hora de desarrollar Apps en Android, Kotlin comienza a ganar popularidad. En este documento ya se exponían motivos por los que este lenguaje era una gran alternativa para desarrollar en Android.

A finales de 2015 se publicó la beta de la versión 1.0 de Kotlin, dejando claro que aquello iba en serio, y animó a mucha más gente a dar el salto. En 2016 Kotlin lanza su versión 1.0 final y hace apenas unos días se ha liberado la versión 1.1.1 

Cómo empezar a usar Kotlin en Android

Es muy fácil. Sólo tienes que seguir estos pasos:

  • Descarga el plugin de Kotlin de las secciones de plugins de IDE
  • Crea una clase Kotlin en tu módulo
  • Utiliza la opción "Configurar Kotlin en Project..." (Puedes usar la opción para buscar acciones: comando + shift + A)
  • ¡Y a disfrutar! 

Más razones para utilizar Kotlin

Tal y como explica Antonio Leiva, un apasionado de Kotlin, tenemos muchas razones para dar este salto. Estas creo que son las más interesantes:

 

  • El lenguaje y el entorno están maduros: A diferencia de otros lenguajes como Swift, el lanzamiento de Kotlin ha pasado por muchas etapas de maduración antes de liberar la versión 1.0 final. Esto quiere decir que no vas a encontrarte problemas al trabajar con Kotlin, todo funciona como cabría esperar. El plugin del IDE funciona perfectamente, y ya permite muchas de las funcionalidades que existen para Java.

 

  • Facilita mucho el desarrollo en Android: Creo que es la única alternativa viable a Java para desarrollar grandes aplicaciones en Android. Otras alternativas como Scala son tremendamente pesadas, y los tiempos de compilación y las herramientas no son comparables. La compilación en Kotlin a día de hoy ya es equiparable a la de Java y la librería necesaria para usarlo es muy pequeña, por lo que no genera problemas con el límite de métodos en Android.

 

  • Está perfectamente integrado con Android Studio: Puede parecer una tontería, pero el que todo funcione tan bien desde el minuto cero para Android es una ventaja potencial. Ya lo habrás visto si lo has probado, pero sin saber nada de Kotlin puedes tener un proyecto montado y listo para trabajar en menos de 10 minutos sin ningún problema. Y a partir de ahí todo funciona igual que si estuvieras trabajando con Java: puedes ejecutar desde el IDE, depurar sin problema, hacer refactors, utilizar instant run… Todo lo que imagines sigue ahí y se sigue pudiendo usar.

 

  • Si eres desarrollador Android, necesitas reciclarte: Trabajar con Java 6 nos vuelve programadores obsoletos. Una vez utilizas un lenguaje moderno, tu mente empieza a pensar de otra manera. Y esto consigue plasmarse en tu código incluso aunque no cambies de lenguaje. Conceptos como las lambdas, las funciones de extensión, operaciones funcionales sobre colecciones, sealed classes, data classes… con un nombre u otro, te los vas a acabar encontrando en casi todos los lenguajes. Así que sólo necesitas mapear la conversión de un lenguaje a otro en tu cabeza, y podrás moverte con facilidad. Aunque adores Android, el estar más preparado para dar el salto a otro lenguaje u otra plataforma te da un plus enorme como desarrollador.

 

  • Es muy sencillo de aprender: Una de las grandes ventajas de Kotlin es que un desarrollador Java puede entender la mayor parte del código sin haber escrito nunca una línea de Kotlin. Esto es porque la gente de Jetbrains se preocupó mucho de que la transición desde Java fuera sencilla, con un lenguaje que se asemeja mucho a lo que ya conoces. Unas dos semanas pueden bastar para sentirse cómodo escribiendo código en Kotlin. Kotlin te abre un nuevo mundo de posibilidades para ser creativo, para resolver problemas de forma muy distinta a como lo habías hecho hasta ahora.

 

   

 

¿Qué podemos esperar de Kotlin en el futuro? 

Es verdad que existe aún mucho gente que no conoce o que es reacia a utilizar este nuevo lenguaje, pero también es verdad que Kotlin tiene el potencial de convertirse en el lenguaje de referencia para el desarrollo de Apps en Android y sólo por esto merece la pena ser revisado.

Kotlin es un lenguaje muy joven, pero maduro en cuanto a sus funcionalidades y estabilidad, por lo que es un buen momento para empezar a utilizarlo y descubrir todas sus ventajas. De hecho ya se está utilizando en muchos sistemas en producción.

¿Quieres aprender Kotlin?

SI quieres aprender Kotlin, te recomendaría en primer lugar que vieras algún que otro video introductorio para motivarte. Estos dos están muy bien:

https://www.youtube.com/watch?v=-BvN0X5tqjw
https://www.youtube.com/watch?v=0BiPmgk3nyw

Y después pasaría por la referencia oficial para aprender kotlin, aquí encontrarás un montón de recursos, libros recomendados, ejemplos, etc:

https://kotlinlang.org/docs/reference/

Y por último para ponerse manos a la obra, seguiría con los “Kotlin Koans” que puedes encontrar tanto en versión online, como plugin para IntelliJ o como proyecto de android studio en github, en este enlace los encontrarás:

https://kotlinlang.org/docs/tutorials/koans.html

Enlaces referenciados:

http://kotlinlang.org/

https://medium.com/@octskyward/why-kotlin-is-my-next-programming-language-c25c001e26e3

https://www.genbetadev.com/java-j2ee/sera-2017-el-ano-de-kotlin-repasamos-su-evolucion-y-por-que-deberias-darle-una-oportunidad

https://devexperto.com/12-razones-usar-kotlin-android/

https://code.tutsplus.com/es/articles/coding-functional-android-apps-in-kotlin-lambdas-null-safety-more--cms-27964

https://www.toptal.com/android/kotlin-boost-android-development

Públicado el 04/04/2017

Comparte este post: