Ha salido Kotlin 2.1: qué ha cambiado en el lenguaje de programación
JetBrains ha anunciado oficialmente el lanzamiento de la versión estable de Kotlin 2.1. Esta es la primera gran versión después de la 2.0, lanzada en mayo de 2024. La nueva versión trae numerosas mejoras que afectan tanto a la sintaxis básica como a la infraestructura para el desarrollo multiplataforma. Analicemos las novedades más significativas.
Cambios clave en el lenguaje
Los desarrolladores se han centrado en aumentar la estabilidad y ampliar las capacidades del lenguaje. Las principales novedades:
- Modo estable de non-local break y continue. La función anteriormente experimental para lambdas inline se ha vuelto definitiva. Ahora se pueden interrumpir bucles externos desde dentro de expresiones lambda (por ejemplo, en
forEach) sin envoltorios adicionales. Esto simplifica la escritura de código limpio. - Subtypes of discriminated unions (experimental). Se ha introducido soporte para subtipos de clases e interfaces sealed. Ahora se pueden declarar interfaces sealed y heredarlas en clases, manteniendo la verificación estricta de las expresiones when.
- Soporte mejorado para Java 21. El compilador de Kotlin ahora maneja correctamente las nuevas construcciones de Java, como
record patternsyswitchcon patrones. Esto es especialmente importante para proyectos que migran a versiones recientes de Java.
Actualizaciones en Kotlin Multiplatform
Kotlin 2.1 continúa el desarrollo del ecosistema multiplataforma:
- Kotlin/Wasm estable. El soporte para WebAssembly se ha vuelto definitivo. Ahora se puede compilar código a Wasm, ejecutarlo en el navegador o en el servidor a través de Wasmtime.
- Aceleración de la compilación para Kotlin/Native. Se ha optimizado el trabajo con LLVM. Según estimaciones de JetBrains, el tiempo de compilación para proyectos nativos se ha reducido entre un 15 y un 20%.
- Nuevo artefacto para Android. Se ha añadido soporte para Android Gradle Plugin 8.7 y se ha mejorado la compatibilidad con las bibliotecas de Jetpack Compose.
Cambios en la biblioteca estándar
En stdlib han aparecido varias funciones útiles:
- Función
buildMapybuildSet. Ahora se pueden crear colecciones inmutables con un builder, de manera similar abuildList. Esto hace que el código sea más seguro y expresivo. - Nuevos métodos para trabajar con fechas. Se han añadido
LocalDate.daysUntilyLocalDate.monthsUntil. Simplifican el cálculo de la diferencia entre fechas sin necesidad de bibliotecas externas. - Mejor manejo de tipos nullable. La función
?.letahora maneja correctamente las llamadas anidadas sin crear variables temporales.
Rendimiento y mejoras para desarrolladores
JetBrains también ha prestado atención a las herramientas para desarrolladores:
- Autocompletado inteligente en IntelliJ IDEA. El plugin de Kotlin se ha actualizado a la versión 2.1. Ahora el IDE ofrece opciones de autocompletado más relevantes basadas en el contexto.
- Optimización del compilador K2. Se ha acelerado el análisis de código y la visualización de errores. Esto es especialmente notable en proyectos grandes con miles de archivos.
- Nuevo inspector de rendimiento. El analizador integrado sugiere,