Te contamos sobre Kotlin, un lenguaje joven originario de San Petersburgo, que está desbancando a Java en el desarrollo móvil y de backend.
Kotlin lleva ya tres años consecutivos entre los lenguajes favoritos de los programadores según la encuesta de Stack Overflow. Google lo soporta oficialmente, lo usan Jira y Adobe, y los desarrolladores de aplicaciones Android de primer nivel están reescribiendo sus productos en Kotlin. Analizamos qué hace que este lenguaje sea tan bueno, qué características tiene y cuánto ganan los programadores.
¿Qué es Kotlin?
Kotlin es un lenguaje de programación creado por la empresa JetBrains. Lo desarrollaron en 2011 como reemplazo de Java, que en la empresa consideraban demasiado verboso. El nuevo lenguaje resultó ser un 40% más compacto que su predecesor, lo que ayudó a acelerar el trabajo en el producto principal de JetBrains: el entorno de desarrollo IntelliJ IDEA. A pesar de esto, Kotlin es totalmente compatible con Java, porque se ejecuta en su máquina virtual (JVM).

Si se quiere dar una definición formal, Kotlin es un lenguaje orientado a objetos con tipado estático. ¿Qué significa esto?
Los lenguajes orientados a objetos son aquellos en los que todas las operaciones se realizan con objetos: bloques de código donde se pueden «guardar» varios valores. Un objeto puede ser cualquier entidad con un conjunto definido de características. Por ejemplo, un personaje en un juego online o una pegatina de Bob Esponja en Telegram. Todos los objetos se diseñan según plantillas especiales, que se llaman clases.
El tipado estático significa que los tipos de variables los define el desarrollador antes de ejecutar el programa. Si declaraste una variable de entero, ya no podrás colocar texto en ella: el compilador indicará el error inmediatamente. Esto ralentiza el desarrollo en la etapa inicial, pero agrega confiabilidad.
Si quieres saber más sobre el tipado y sus tipos, lee nuestro artículo de tipificación: allí todo está explicado de forma sencilla y accesible, lo entenderás enseguida.
Por cierto, las raíces de la ahora internacional JetBrains están en San Petersburgo. Y llamaron a su lenguaje en honor a una isla en el Golfo de Finlandia. Además de la referencia a San Petersburgo, este nombre también resalta la conexión con Java (tanto Java como Kotlin son islas).
¿Qué se puede programar con Kotlin?
Potencialmente, Kotlin se puede usar en cualquier lugar donde funcione Java, es decir, en backend, web, desktop y muchas otras tareas. Como dice Andrey Breslav, el creador del lenguaje, «Kotlin es un lenguaje para todas las plataformas«. Y hay una gran parte de verdad en eso.
Sin embargo, cada lenguaje tiene su nicho: el área donde lo utilizan más programadores. Kotlin tiene dos por ahora: el desarrollo de servidores y el desarrollo móvil. Aunque cada vez se puede encontrar más en otras áreas, como la ciencia y la ciencia de datos.
Campo de aplicación | Ejemplos de uso |
---|---|
Desarrollo móvil | Aplicaciones Android, creación de aplicaciones para dispositivos móviles |
Desarrollo web | Utilizado junto con frameworks, por ejemplo, Spring para crear aplicaciones web |
Aplicaciones de escritorio | Aplicaciones multiplataforma (TornadoFX) |
Cálculos científicos | Utilizado en cálculos matemáticos y procesamiento de datos |
Desarrollo de backend | Utilizado para escribir aplicaciones de servidor en la plataforma JVM |
Servicios en la nube | Microservicios, soluciones en la nube (Spring Boot) |
Desarrollo de juegos | Desarrollo de juegos utilizando Kotlin/Native o libGDX |
Automatización | Scripting, automatización de tareas rutinarias |
IoT | Programación para dispositivos de Internet de las cosas |
Ciencia de datos | Análisis de datos y aprendizaje automático |
Tecnologías financieras | Desarrollo de aplicaciones y servicios financieros |
Procesamiento de imágenes | Procesamiento de imágenes, visión artificial |
Desarrollo de API | Creación de API utilizando Kotlin y frameworks. |
Analicemos todas las áreas en orden.
Aplicaciones para Android
Hasta 2017, el lenguaje oficial para las aplicaciones Android era Java, pero luego Google declaró a su sistema operativo móvil «Kotlin-first»:
- Parcialmente, debido al largo juicio con Oracle por el uso de algunas mecánicas de Java;
- Parcialmente, porque a los desarrolladores les gustó el nuevo lenguaje, comenzaron a escribir aplicaciones móviles en él espontáneamente y a presionar regularmente a la corporación: «¡Van a soportar Kotlin, verdad? ¡Díganlo oficialmente! ¡Es genial!»
Hoy en día, el 80% de las aplicaciones más descargadas en Play Store están escritas en Kotlin, incluidas las aplicaciones de Netflix, Twitter, Reddit y el mismo Google.

Aplicaciones de servidor
Gracias a la compatibilidad con JVM, Kotlin se puede ejecutar en cualquier servidor donde funcione Java. Por lo tanto, se utiliza a menudo para crear backend: la parte de los sistemas que se ejecuta en el servidor y no es visible para el usuario común. Por ejemplo, los servicios en la nube de Jira y algunos productos de Adobe ya funcionan con Kotlin.
Este nicho es uno de los prioritarios para el equipo de Kotlin. Y a pesar de la popularidad de Kotlin en el desarrollo móvil, los equipos de DevRel de JetBrains hablan de su lenguaje exclusivamente en el contexto del desarrollo de servidores, sin mencionar el móvil.
Aplicaciones web (frontend)
Además del backend, existe el frontend: la parte «de cara al público» de internet. Son los diferentes botones, menús desplegables y ventanas con los que interactúan los usuarios. Casi todo el frontend se escribe en un solo lenguaje: JavaScript.
Kotlin puede compilarse en JavaScript, y esa versión se puede usar para crear frontend. Es decir, es totalmente posible escribir tanto la lógica como la interfaz: una aplicación web completa.
Aplicaciones móviles multiplataforma
Supongamos que necesitamos escribir una aplicación móvil para alquilar patinetes. Debe funcionar igual de bien en iPhones y en teléfonos inteligentes con Android.
En este caso, nos puede ayudar el desarrollo multiplataforma: cuando escribimos el código una vez y luego lo adaptamos a varios sistemas. Kotlin tiene una tecnología que permite hacer esto, llamada Multiplatform. Ya la utilizan muchas empresas, como Yandex.
Ciencia y big data
Si has trabajado con ciencia de datos, seguramente conoces Jupyter Notebook. Es un entorno de desarrollo que puede ejecutar código por partes y dar resultados instantáneamente. Se utiliza a menudo en aprendizaje automático, estadística y visualización de datos. Antes, en Jupyter solo se escribía en Python, Ruby y R, pero ahora también se puede usar Kotlin. Basta con conectar un par de bibliotecas, y puedes crear tu propio Siri o Alexa.
Los científicos también están adoptando activamente Kotlin, por ejemplo, físicos y matemáticos. Actualmente, se está desarrollando rápidamente una biblioteca especial, KMath, que aporta matemáticas avanzadas a Kotlin y proporciona integración con TensorFlow.
Kotlin vs Java
Como hemos mencionado anteriormente, Java y Kotlin son lenguajes funcionalmente compatibles. Son realmente muy similares: ambos tienen tipado estático, admiten la programación orientada a objetos y funcionan en JVM. En algunos entornos de desarrollo, incluso se pueden mezclar sus funciones y clases. Ahora veamos en qué se diferencian estos lenguajes.
Criterio | Kotlin | Java |
---|---|---|
Sintaxis | concisa, moderna, más expresiva | más voluminosa, menos expresiva |
Seguridad | admite tipos Nullable, reduce la probabilidad de NullPointerException | Nullable solo con el uso de anotaciones, alto riesgo de NullPointerException |
Interoperabilidad | 100% compatible con Java, utiliza bibliotecas y frameworks de Java | menos integrado con las capacidades lingüísticas modernas de Kotlin |
Extensiones | las funciones de extensión permiten añadir funcionalidad a las clases existentes sin herencia | no hay funciones de extensión, es necesario utilizar la herencia |
Programación asincrónica | las corrutinas proporcionan una programación asincrónica cómoda | uso de callbacks o bibliotecas para la programación asincrónica |
Gestión de la memoria | gestión automática de la memoria | es necesaria una gestión explícita de la memoria (recolección de basura) |
Desarrollo en Android | oficialmente soportado por Google para el desarrollo de Android | uso histórico en el desarrollo de Android, pero Kotlin se está convirtiendo en el preferido. |
También lee: Java o Kotlin: ¿Qué Elegir para un Desarrollador Android Principiante?
Legibilidad
Cuando Java apareció, era mucho más simple y conciso que sus competidores, como C y C++. Y todavía tiene una sintaxis bastante clara y lógica, aunque para los estándares actuales, este lenguaje ya parece demasiado verboso y algo anticuado. Esto no es de extrañar: en Java todo gira en torno a la compatibilidad con versiones anteriores, que es tan importante para las empresas, donde el lenguaje «café» es el estándar.
Los creadores de Kotlin apostaron inicialmente por la compacidad: cuanto menos código innecesario, más fácil es trabajar para el programador y más rápida es la creación. Como resultado, con una línea en Kotlin se puede describir lo que en Java llevaría dieciocho. Compara cómo se ven de manera diferente las clases de datos en los dos lenguajes.
Creación de la clase Person en Java:
public class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Declaración de la misma clase en Kotlin:
data class Person(val name: String, val age: Int)
Velocidad
Aquí, parece que Java lleva la delantera. Está mejor adaptado a JVM, por lo que las aplicaciones se compilan un 15-20% más rápido en comparación con Kotlin. Sin embargo, existe algo llamado compilación incremental: cuando no se vuelve a compilar todo el proyecto, sino solo las partes donde el programador realizó cambios.
Si se conecta a Kotlin un plugin especial que proporciona dicha compilación, la compilación puede ser incluso más rápida que en Java. Así que en este punto es un empate.
Popularidad
Junto con Python y C, Java es uno de los lenguajes de programación más populares del mundo. En el ranking TIOBE de marzo de 2022, Java ocupa el tercer lugar, mientras que Kotlin solo ocupa el 31. Sin embargo, es importante recordar que Kotlin es un lenguaje nuevo y su área de aplicación está creciendo constantemente. Al mismo tiempo, Java se utiliza cada vez más para mantener proyectos antiguos, y no para crear nuevos.
Seguridad
La seguridad es la forma en que el lenguaje protege al programador de sus propios errores. En los lenguajes con tipado estático, como Java y Kotlin, el compilador se asegura de que no se mezclen tipos de datos incompatibles, como una cadena y un número.
Kotlin incluye varias funciones que simplifican el trabajo con tipos; por ejemplo, el lenguaje puede convertir las variables a un tipo único si la lógica del código lo requiere. Esta función se llama smart cast o «conversión inteligente».
Otras características interesantes de Kotlin
Aquí hay algunas características más que dan a Kotlin una ventaja en velocidad, seguridad y rendimiento.
Coroutines
Las coroutines (corrutinas) son un medio que proporciona paralelismo para que el programa pueda realizar varias operaciones simultáneamente. Cuando es necesario, la ejecución de una función se pausa con el mantenimiento de los datos, y comienza a funcionar otra función.
Supongamos que necesitamos crear una aplicación: un diario electrónico para que un estudiante pueda iniciar sesión, ver sus calificaciones y ver las tareas.
Si descargas todos los datos del servidor secuencialmente, la aplicación tardará mucho en abrirse. En cambio, los datos innecesarios por ahora (por ejemplo, las noticias), se pueden sacar a una coroutine y poner su carga en pausa mientras se carga la interfaz principal.
Las coroutines permiten establecer prioridades en el trabajo del programa. Este mecanismo se parece a la multitarea, pero consume menos recursos del procesador, razón por la cual se aprecian, por ejemplo, en el desarrollo móvil.
Funciones de extensión
En los lenguajes de programación con soporte de OOP, todos los objetos se construyen según plantillas especiales, que se llaman clases. Contienen información básica sobre cómo debe verse y funcionar el objeto.
A veces, durante la ejecución del programa, necesitamos ampliar la clase y agregarle nuevos parámetros. En Kotlin, esto se puede hacer de forma fácil y elegante con funciones de extensión especiales. Se ve así:
// Agregamos la función Titanic al objeto Introduce. El nombre del objeto se incluye en el prefijo
fun Introduce.Titanic(): String{
return "I am " + this
}
// Luego llamamos a la función
val Leo= "the king of the world"
println(Leo.Titanic())
Null safety
Aquellos que programan en Java a menudo se encuentran con una excepción llamada Null Pointer Exception. Es algo que aparece durante la ejecución del programa si el proyecto contiene una línea que hace referencia a una variable con un valor nulo.
En proyectos grandes y complejos, la búsqueda de la línea con el error puede llevar mucho tiempo y ser muy estresante. En Kotlin no existe este problema, porque todas las variables no son nulas por defecto. El compilador dejará de compilar el proyecto inmediatamente si el valor de alguna línea es nulo, y el error no aparecerá en el programa terminado.

fun main() {
‼️ val kotlin: String? = null
println(kotlin)
}
‼️ Null can not be a value of a non-null type String
Ventajas e inconvenientes de Kotlin
Debido a su sintaxis concisa, el LP se está difundiendo rápidamente. Sin embargo, algunos programadores consideran que Kotlin tiene una complejidad excesiva debido a la abundancia de funciones y posibilidades. Pero esto es una evaluación subjetiva.
Ventajas | Desventajas |
---|---|
Compatibilidad con Java | Ecosistema no tan amplio como el de Java |
Sintaxis corta y expresiva | Faltan algunas bibliotecas |
Sistema de tipos fiable | Compilación lenta en comparación con Java |
Conversión automática de tipos (Smart Casts) | Pequeña comunidad de desarrolladores en comparación con Java |
Soporte para la programación funcional | Falta de soporte nativo para Android al iniciar el proyecto |
Coroutines para la programación asincrónica | Puede llevar tiempo dominar nuevos conceptos |
Interoperabilidad con Java | |
Funciones de extensión (extension functions) | |
Seguridad nula (null safety) | |
Extensibilidad y facilidad de uso | |
Multiplataforma |
Cuestiones económicas
Programar en Kotlin aún no lo hacen muchos desarrolladores, por lo que las empresas están dispuestas a ofrecer buen dinero incluso a los principiantes. En la lista global de los lenguajes mejor pagados, Kotlin se encuentra aproximadamente en el medio, superando a JavaScript, SQL, PHP y Java, pero inferior a los líderes: Perl, Go y Scala (datos de Stack Overflow).
Si dominas bien el inglés, puedes intentar conseguir un trabajo remoto en una empresa estadounidense o europea. Allí también se necesitan desarrolladores de Kotlin, y su trabajo está bastante bien remunerado: a partir de 4000 dólares para empezar.
Pero antes de eso, te recomendamos trabajar al menos un poco en el mercado de tu país: es prácticamente imposible que los junior sin experiencia obtengan un puesto en el extranjero.
Profesiones en las que se demanda el conocimiento del LP Kotlin:
- Desarrollador Android;
- Arquitecto Android;
- Ingeniero Android;
- Desarrollador Backend;
- Desarrollador Full-stack;
- Desarrollador Kotlin;
- Desarrollador Java (en el contexto del uso de Kotlin junto con Java);
- Desarrollador de aplicaciones de servidor;
- Desarrollador Frontend (al utilizar Kotlin/JS para el desarrollo web);
- Ingeniero DevOps;
- Arquitecto de software;
- Desarrollador de frameworks y bibliotecas.
¿Por dónde empezar?
Kotlin es un lenguaje muy conciso, no tiene operaciones formales, comprobaciones de tipo innecesarias y otras cosas molestas. Es fácil de aprender incluso para principiantes, pero primero tendrás que sumergirte profundamente en el tema.
Comienza a estudiar Kotlin con la documentación: en el sitio web de JetBrains solo está disponible en inglés. Puedes leer el libro «Kotlin in Action» de los creadores del lenguaje, Dmitry Jemerov y Svetlana Isakova. Allí se explican de forma bastante clara y accesible los fundamentos del lenguaje. También en JetBrains Academy puedes realizar un curso gratuito sobre los fundamentos de Kotlin, aunque en inglés.
Google también tiene guías gratuitas sobre Kotlin: tanto para principiantes como para aquellos que ya saben programar en Java. También solo son adecuadas para aquellos que al menos tienen cierta familiaridad con el inglés: no pudimos encontrar una traducción de acceso público.
Los programadores tienen un truco para aprender más rápido y de forma más interesante. Debes inventar tu propio proyecto y empezar a hacerlo durante el aprendizaje. Puede ser cualquier programa sencillo: por ejemplo, un gestor de tareas, un analizador de noticias o un bot en Telegram. La ventaja de un proyecto propio es que puedes incorporar una abstracción compleja y ver inmediatamente cómo funciona. Además, puedes incluirlo en tu portafolio y luego mostrárselo a los empleadores.
Al principio, un compilador online de Kotlin Playground es una buena opción para practicar. Cuando estés listo para escribir una aplicación, necesitarás una herramienta más seria, como el entorno de desarrollo Android Studio de Google o IntelliJ IDEA de JetBrains.
Si te interesa iniciarte en el desarrollo de Android, puedes elegir el curso «Java y Kotlin desde cero«. Al finalizar, obtendrás un diploma: podrás administrar el hardware de los dispositivos Android, crear apps con soporte multilenguaje e incluirla en tu portafolio.
Lo que necesita un principiante
Los requisitos de los empleadores para los principiantes dependen mucho del nicho. Si te diriges al backend, estudia los frameworks de Kotlin para trabajar con el servidor: por ejemplo, Spring, Ktor y Vert.x. Además de ellos, deberás dominar el protocolo HTTP, los formatos XML y JSON, aprender a trabajar con consultas SQL y una de las bases de datos populares, como PostgreSQL.
Para el desarrollo en Android, un junior debe conocer el Android SDK, saber trabajar con Git y Android Studio (o IntelliJ IDEA), comprender cómo funcionan las coroutines y la multitarea. También te preguntarán sobre los patrones de diseño: MVC, MVP y MVVM.
Si quieres aprender a programar, pero sientes que no tendrás suficiente tiempo o paciencia, busca cursos con profesores experimentados. De esta manera, seguro que no te desviarás del camino y empezarás a trabajar en equipo ahora mismo.