Ir al contenido principal

Lo nuevo en Kotlin

Un poco de historia

Inicios

La empresa JetBrains, la empresa creadora y dueña de Kotlin, tenía la meta de tener un lenguaje mejor que Java. Bajo la dirección de Andrey Breslav terminó desarrollando un lenguaje de programación que tomó lo mejor de Java y descartó lo que no servía. Pero no olvidemos que al final de cuentas depende de la JVM.

Kotlin se inspira de otros lenguajes como Java (obvio), Scala, Groovy, C# y hasta Gosu.

Además es multi paradigma. Por ejemplo, puede emplear la programación orientada a objetos y la funcional de manera indiscriminada.

También es importante que el tipado estático es una de sus características, aquí no aplica el dicho de "una variable es una variable". Si declaras una variable String ésta no podrá tener un valor tipo Int.

Andrey Breslav sabía que el programador Java se iba a sentir familiarizado con el lenguaje. Quienes usaban Groovy o Scala también sentirían lo mismo.

Conflicto con Google

Kotlin es uno de los lenguajes dependientes de la JVM que realmente le han dado batalla a Java. Anteriormente para programar aplicaciones Android el desarrollador usaba Java.

Eso creaba cierta dependencia.

Por lo que Google, la empresa responsable de Android, desarrolló su propio JDK. Algo que no fue del gusto de Oracle, la empresa que compró a Sun MicroSystems, los creadores de, entre otras cosas, del poderoso lenguaje Java. Pues consideraban que Google les debía más que las gracias por usar su lenguaje de manera gratuita (sic).

El conflicto entre ambas empresas parecía que iba a durar bastante tiempo. No fue así.

Es aquí donde entra Kotlin. Un lenguaje que prometía tener lo mejor de Java y otras cosas más. Los desarrolladores optaron por usar Gradle y como lenguaje base a Kotlin. El conflicto terminó sin derramamiento de sangre (sic).

Muchos desarrollos hechos en Java fueron migrados a Kotlin.

Los desarrolladores Android consideraban a Kotlin (junto con Gradle) una mejor combinación para crear sus aplicaciones.

No fue una moda.

No fue un reclamo hacia Java (o eso queremos creer).

Solo fue que éste lenguaje era más cómodo para el desarrollo.

Además existe la interoperabilidad entre éstos lenguajes, Java y Kotlin, lo que permitía tener ambos mundos.

Un módulo podría ser escrito en Kotlin, y otro en Java. No había cabida al conflicto o a errores. Java y Kotlin pueden coexistir.

Comparativa con otros lenguajes

Con el advenimiento de nuevos lenguajes de programación el lenguaje Kotlin ha tendido que transformarse y evolucionar. Resuelve el verbo excesivo de Java (boilerplate) introduciendo Null Safety nativa y corrutinas y además se ha convertido en el estándar preferido por Google para Android y una de las opciones más populares para backend moderno. Un punto fuerte es la interoperabilidad con Java y la curva de aprendizaje (comparado con otros lenguajes como Rust o Scala).

Mientras Rust esta diseñado para sustituir a C++, Kotlin viene siendo un soporte a los desarrollos Java.

Mientras Groovy es una alternativa a lenguajes como Python o Ruby, Kotlin se enfoca más al desarrollo de aplicaciones móviles o backend.

Junto con Golang se ha convertido en una alternativa para el desarrollo de microservicios. Basta con ver el proyecto Ktor u otros similares.

fun main() {
	embeddedServer(Netty, port = 8000) {
		routing {
			get ("/") {
				call.respondText("Hola, mundo!")
			}
		}
	}.start(wait = true)
}

Cada vez es más común ver desarrollos en Spring Boot con Kotlin como lenguaje base.

Kotlin en 2026

El lenguaje ha evolucionado en gran medida a la consolidación de su compilador K2, su ecosistema multiplataforma y mejoras de sintaxis para simplificar el código.

Evolución del Lenguaje y Sintaxis

  • Parámetros de contexto (Context Parameters): Diseñados para sustituir y limpiar los viejos receptores de contexto (context receivers), facilitan pasar dependencias de forma explícita pero limpia a través del ámbito sintáctico, sin necesidad de inyección de dependencias pesada. 
  • Nuevas directivas de resolución contextual: La resolución de tipos en expresiones complejas se ha vuelto más inteligente, deduciendo miembros implícitos sin necesidad de calificadores repetitivos. 
  •  Detección de valores de retorno no utilizados: Un nuevo verificador en el compilador alerta cuando una función retorna un valor que el desarrollador ha olvidado manejar, previniendo errores lógicos en tiempo de compilación. 
  •  Intercalación de cadenas con dólares múltiples (Multi-dollar string interpolation): Facilita la creación de plantillas de código o JSONs dentro de cadenas de texto sin tener que escapar el carácter $ repetidamente. 
  •  Cláusulas de guarda en bloques when: Soporte completo y estable para añadir condiciones lógicas directas:
(when (x) { is Foo if x.isValid -> ... })

Madurez Multiplataforma (KMP) y Herramientas

  • Exportación directa a Swift (Swift Export): Kotlin Multiplatform (KMP) ya no traduce código a Objective-C como paso intermedio; genera APIs nativas de Swift directamente, eliminando sintaxis extraña al consumirlo desde iOS. 
  • Adopción de Kotlin/Wasm: El objetivo de compilación para WebAssembly cuenta con soporte maduro en navegadores modernos, con menor tamaño de binarios y mejor manejo de excepciones. 
  • Compilador K2 por defecto: Ofrece un rendimiento hasta un 40% más rápido en tiempos de compilación e inspección en el IDE respecto a las versiones anteriores (K1).

Ecosistema, IA y Alianzas Estratégicas

  • Iniciativas "AI Native": Integración de herramientas como Koog (el marco de agentes IA de JetBrains) para interactuar directamente desde el código Kotlin en el IDE. 
  • Alianza con Spring: Integración profunda con Spring Boot, donde Kotlin ya es tratado como lenguaje de primera clase (utilizado por casi el 30% de sus desarrolladores). 
  •  Expansión de la Kotlin Foundation: Incorporación de grandes tecnológicas (como Meta) al soporte oficial de Kotlin Multiplatform para aplicaciones a escala masiva.

Kotlin en el futuro

El lenguaje tiene el apoyo de toda una compañía, la cual lo ha visto más que un simple lenguaje. Es un ecosistema que va creciendo, evolucionado y adaptandose a la nueva era. Con un enfoque hacia el futuro próximo.

Quizás en el futuro se autogestionen los desarrollos, pues es el objetivo de la I.A.: la automatización de todo.

Mientras llega el futuro, cada vez es más necesario actualizar su conocimientos sobre lenguajes de programación, patrones de desarrollo, paradigmas, etc.



Enlaces:

https://kotlinlang.org/
https://sg.com.mx/buzz/el-juicio-oracle-vs-google-y-sus-posibles-consecuencias
https://es.wikipedia.org/wiki/Kotlin_(lenguaje_de_programaci%C3%B3n)






Comentarios

Entradas populares de este blog

Rocket: un framework web para Rust

Rocket Framework es: Un framework web escrito en Rust.   Inspirado en Rails, Flask, Bottle y Yesod.  Admite el manejo de solicitudes HTTP, Web Sockets, JSON, plantillas y más. Creando un proyecto con Rocket Framework En primer lugar, verificamos la instalación de Rust en nuestras máquinas: rustc - - version Continuamos con la configuración de Rust nightly como nuestra cadena de herramientas predeterminada ejecutando el comando: rustup default nightly Si lo prefieres, una vez que configuremos un directorio de proyecto en la siguiente sección, puedes usar anulaciones por directorio para usar la versión nocturna solo para tu proyecto Rocket ejecutando el siguiente comando en el directorio: rustup override set nightly Creamos nuevo proyecto `` hola-rocket `` y nos ubicamos en el directorio creado: cargo new hola - rocket - - bin cd hola - rocket Con Cargo, agregamos la dependencia de rocket: cargo add rocket Abrimos el archivo `` Cargo.toml `` Ca...

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...