21

May

Publicado por: Jordi Targa | Android | ios | kotlin | lenguajes de programación | software development

Beneficios del lenguaje de programación multiplataforma Kotlin.

Constantemente salen a la luz nuevos frameworks, arquitecturas y lenguajes que obligan reorganizar el modo en que trabajamos y priorizar las mejores técnicas. En nuestra profesión, la investigación y capacitación continua hacia nuevas herramientas y metodologías es algo obligado.Buscar soluciones que agilicen procedimientos e invertir el tiempo en aprender sobre nuevas tecnologías que realmente nos aporten un beneficio y que estas sean capaces de ahorrarnos esfuerzos es una constante.

De ahí la importancia de compartir conocimiento con compañeros de profesión y personas del sector digital. Por ello, en este artículo intentaré ofrecerte algunas claves sobre sobre Kotlin, un lenguaje de programación para aplicaciones multiplataforma modernas, 100% interoperable con Java™, Android™ y, en breve, con iOS™.

Con Kotlin puedes construir aplicaciones para el servidor, aplicaciones Android, navegador o nativo, y además presenta una curva de aprendizaje relativamente rápida. Así pues,en este articulo desgranaré las ventajas de Kotlin en distintos aspectos. ¡Vamos a ello!

Kotlin para el servidor.

Usar Kotlin te permitirá crear un código más conciso y expresivo. Además, mantiene una compatibilidad completa con las tecnologías basadas en Java.

Entre las características positivas de Kotlin se destacan:

  • Es expresivo. Esto significa que si se utilizan nombres de funciones bien definidas como constructores, en combinación con funciones literales con receiver, se pueden crear constructores type-safe y statically-typed.

El concepto de receiver, implica que cualquier bloque de código en Kotlin puede tener uno (o incluso múltiples) tipos como receptor, haciendo que las funciones y propiedades del mismo estén disponibles en ese bloque de código sin tener que calificarlo.

  • Además, Kotlin soporta co-rutinas que influyen positivamente en la construcción de aplicaciones de servidor. Esto te permitirá escalar a un número elevado de clientes con unos requerimientos de hardware modestos.

A este punto, debo destacar que la rutinas aún estarían en una fase experimental, pero con ellas se puede evitar que algunas API inicien operaciones de larga ejecución (como accesos de red, entradas y salidas de ficheros, trabajo intensivo de CPU o GPU, etc.) y, habitualmente, estas llamadas se bloquearán hasta que estén completas. Las co-rutinas proporcionan una forma de evitar el bloqueo de un hilo y reemplazarlo por una operación más económica y controlable: la suspensión de una co-rutina.

Las rutinas simplifican la programación asincrónica al ubicar la complejidad en las librerías. La lógica del programa se puede expresar secuencialmente en una co-rutina, y la librería subyacente descubrirá la asincronía.

La librería puede incluir partes relevantes del código de usuario en devoluciones de llamada, suscribirse a eventos destacados, programar la ejecución en diferentes hilos, incluso en diferentes máquinas. El código seguirá siendo tan simple como si se hubiera ejecutado secuencialmente. Suena bien, ¿verdad?.

  • Otra ventaja es que Kotlin es 100% compatible con todos los frameworks basados en Java, así te permitirá mantenerte en tu stack tecnológica mientras aplicas progresivamente los beneficios de un lenguaje más moderno.
  • Que sea interoperable aporta otro beneficio, es más fácil migrar de Java a Kotlin, ya que tiene la posibilidad de migrar gradualmente grandes aplicaciones. El proceso de migración empieza al escribir el nuevo código en Kotlin, mientras mantiene algunas partes del sistema en Java y las va migrando progresivamente.
  • También, tiene una gran variedad de herramientas. Con IntelliJ se tienen soportes de todas las herramientas de Kotlin, aunque muchos IDEs como Spring también lo soportan.

Para los desarrolladores de Java, empezar con Kotlin será tarea fácil. La conversión automática de Java a Kotlin te permitirá iniciar de una forma muy rápida un proyecto y te aportará un aprendizaje.

Kotlin y Android.

Al ser Kotlin un lenguaje más moderno aporta enormes ventajas para Android. Estas son algunas de ellas:

  • Kotlin es 100% compatible con JDK6, esto brinda seguridad desde el minuto cero. Kotlin puede ejecutarse en dispositivos “viejos” sin lanzar errores. En cuanto a usabilidad, Android Studio e IntelliJ son totalmente compatibles con Kotlin.
  • En cuanto al rendimiento, está demostrado que una aplicación Kotlin funciona tan rápido como una Java equivalente, esto es debido a la estructura de código de bytes que trabaja de forma similar. Con el soporte de Kotlin para las funciones en línea, el código que usa lambdas suele ejecutarse incluso más rápido que el mismo código escrito en Java.
  • Kotlin es totalmente interoperable con Java, lo que permite usar todas las bibliotecas de Android existentes en una aplicación de Kotlin. Esto incluye el procesamiento de anotaciones, lo que habilita el libre funcionamiento de Databinding y Dagger.
  • Kotlin dispone de una biblioteca de tiempo de ejecución muy compacta, que se puede reducir aún más mediante el uso de ProGuard. En una aplicación real, el tiempo de ejecución de Kotlin agrega solo unos cientos de métodos y menos de 100 KB al tamaño del archivo formato “.apk”.
  • Kotlin soporta la compilación incremental, por lo que si existiera una sobrecarga adicional para compilaciones limpias, las compilaciones incrementales serían iguales o más rápidas que con Java, lo que nos aporta un beneficio con relación al tiempo.

Kotlin/Native, un lenguaje para “todo”.

En el 2017, Kotlin realizó un evento llamado KotlinConf, en el que habló sobre el desarrollo de aplicaciones multiplataforma, y como sorpresa, anunció un nuevo soporte para iOS. Desde entonces podemos apreciar el verdadero potencial de Kotlin: Un mismo lenguaje de programación para “todo”. Esto provocó una gran expectación.

Y eso gracias a que Kotlin/Native compila directamente al código de máquina. El compilador Kotlin/Native produce ejecutables independientes que se podrán llevar a cabo sin ninguna máquina virtual.

Las plataformas que soporta actualmente son:

  • Mac OS X 10.10 y posterior (x86-64)
  • x86-64 Ubuntu Linux (14.04, 16.04 y posterior)
  • Apple iOS (arm64), cross-compiled en MacOS X
  • Raspberry Pi, cross-compiled en Linux

Debemos suponer que poco a poco irán añadiendo más plataformas. Pero hasta el momento, con las que están habilitadas ya podemos empezar a pensar en un futuro prometedor para este lenguaje de programación.

El único punto negativo es que Kotlin/Native aún está en gestación, por lo que todavía podremos encontrar algunas limitaciones que se irán eliminando en diferentes fases.

Kotlin y web.

Kotlin ofrece la posibilidad de segmentar JavaScript. Lo hace transpilando Kotlin a JavaScript. La implementación actual apunta a ECMAScript 5.1, pero también hay planes de, eventualmente, orientar ECMAScript 2015.

Kotlin compila a Javascript de varias formas, aunque para esto es recomendable hacerlo mediante Gradle, pero si deseas, puedes crear proyectos directamente desde IntelliJ, Maven o compilar el código manualmente.

Estos son los beneficios que aporta Kotlin para la web:

  • El tamaño de la salida es óptimo.
  • Los ficheros de salida se pueden leer en Javascript.
  • Interoperabilidad con módulos existentes.
  • Proporciona la misma funcionalidad en la librería estándar, ya sea que se oriente a JavaScript o a la JVM (dentro de las posibilidades).

Con las aproximaciones anteriores, queda claro que se podrán crear proyectos multiplataforma con Kotlin, sin la necesidad de usar varias tecnologías a la vez. Ejemplo: Java para el backend, Angular5 para el front y etc…

CTA-careers-geenral-justdigital

 

Barcelona
Passeig Gaiolà 13
+34 933 801 144
Lleida
Carrer Agustins 7
+34 973 988 222
Andorra
(Escaldes-Engordany)
Parc de la Mola 10, AD700
Bogota
Carrera 9A #99-07 Piso 9. Despacho 02
Torre la Equidad