JetBrains presenta el nuevo compilador Kotlin K2, Kotlin para WebAssembly y más

En su reciente evento Premier Kotlin 2021 , JetBrains hizo una serie de anuncios importantes, incluido K2, el nuevo compilador Kotlin más rápido, soporte para WebAssembly, el procesador de símbolos Kotlin, un nuevo complemento de cobertura de código y un análisis estático mejorado.

El nombre de lo que ahora se considera la montaña más alta del mundo, K2 tiene como objetivo proporcionar una nueva base para la evolución futura de Kotlin y una base común para todas las plataformas compatibles. Además, es más rápido y trae una nueva API para crear extensiones de compilador.

Posiblemente, el cambio más convincente aportado por K2 es la adopción de nuevos backends basados ​​en IR, mientras que el compilador antiguo generaba el código de destino directamente desde el árbol de sintaxis y la información semántica sin utilizar una representación intermedia. Este es un movimiento de gran alcance que permite a K2 compartir algo de lógica en sus diferentes backends, a saber, JVM, JS y backends nativos. Por ejemplo, todas las optimizaciones ahora se pueden aplicar a nivel de IR, que es común para todas las plataformas de destino. Del mismo modo, el proceso de agregar nuevas funciones al lenguaje y admitirlas en todas las plataformas de destino también se beneficiará de esto.

K2 no solo incluye nuevos backends para plataformas compatibles, sino que también proporciona un nuevo frontend, que está destinado principalmente a mejorar el rendimiento y un mejor soporte para funciones IDE avanzadas, como coloración de sintaxis, verificación de sintaxis, etc. La nueva interfaz está construida alrededor de una representación intermedia de interfaz (FIR) que está optimizada para la resolución de llamadas y se encarga de eliminar el azúcar de una serie de construcciones de lenguaje en representaciones simplificadas. Por ejemplo, +, +=y otros operadores están desazucaradas en llamadas a funciones explícitas, forse desazucaradas en una whilecuando se utiliza un repetidor, etc.

Como se mencionó K2, es significativamente más rápido que el antiguo compilador. Según los puntos de referencia de JetBrains, podría esperar una aceleración 2x.

La integración entre Kotlin y el espacio web está consiguiendo un nuevo jugador con Kotlin / Wasm .

Kotlin para WebAssembly proporcionará a los usuarios una poderosa herramienta para escribir código que está optimizado para la eficiencia del tiempo de carga, el tamaño y las velocidades predecibles. Le permitirá utilizar su lenguaje favorito, Kotlin, y sus conceptos familiares para escribir código que pueda interactuar con aplicaciones JavaScript.

Si bien Kotlin / JS sigue siendo la tecnología necesaria para integrar Kotlin en una aplicación web, Kotlin / Wasm tiene como objetivo proporcionar una nueva herramienta que se adaptará a un escenario más específico en el que desee realizar algunas tareas computacionalmente costosas.

Kover es el nuevo complemento de Kotlin para la cobertura de código, que se puede utilizar para el código creado con el compilador Kotlin / JVM. La herramienta se puede utilizar como una tarea de Gradle, localmente en la máquina de un desarrollador o integrarse en una canalización de CI. También funciona con Kotlin Multiplatform y es compatible con la biblioteca de cobertura de código Java JaCoCo .

Si está interesado en la metaprogramación, seguramente apreciará el trabajo que JetBrains y Google han estado haciendo en torno al procesamiento de símbolos de Kotlin (KSP). JetBrains dice que KSP puede verse como un preprocesador de programas de Kotlin, solo que realmente los entiende. Esto significa que KSP representa explícitamente construcciones como clases, miembros de clase, funciones y parámetros asociados y los hace accesibles a los procesadores de una manera estructurada. Sin embargo, KSP no permite que los procesadores modifiquen el código de un programa, que se trata como de solo lectura. Kotlin KSP ahora es estable y proporciona la base para Room y Moshi, dos procesadores de anotaciones y varios otros complementos.

Como nota final, la mayoría de los programadores de Kotlin darán la bienvenida a Qodana para Kotlin, un analizador estático para programas de Kotlin. Qodana, que también admite idiomas adicionales, puede ejecutarse como una herramienta independiente o integrarse en su canal de CI. Además, puede integrarse con acciones de GitHub y puede utilizar linters de terceros.

EXTRAIDO