- O compilador Kotlin K2 se tornou versão estável. Em comparação com o compilador anterior, oferece melhor desempenho, maior velocidade no desenvolvimento de novos recursos da linguagem e melhorias estruturais para projetos multiplataforma
- Houve melhorias no smart cast em variáveis locais e escopos mais amplos, verificação de tipo com operador lógico or, funções
inline, propriedades do tipo função, tratamento de exceções, operadores de incremento/decremento e mais
- Em projetos multiplataforma, a compilação do código-fonte comum e do código-fonte de plataforma passou a ser estritamente separada. Declarações
expect/actual agora podem ter níveis de visibilidade diferentes
- O Kotlin/Wasm recebeu melhorias como suporte padrão a otimização com Binaryen, suporte a named export, suporte a tipos primitivos sem sinal em funções
@JsExport e suporte a captura de exceções de JS
- O Kotlin/JS recebeu melhorias como novo alvo de compilação
es2015, compilação de funções suspend para geradores ES, passagem de argumentos para a função main, compilação por arquivo, melhorias de interop com coleções e o plugin js-plain-objects
- O Kotlin Multiplatform recebeu melhorias como configuração de opções do compilador via Gradle DSL, integração do plugin do compilador Compose, alteração da pasta de dados do Kotlin e download do compilador Kotlin/Native apenas quando necessário
- Na biblioteca padrão, a função genérica
values de classes enum foi substituída, e a interface AutoCloseable e funções de extensão comuns passaram a ser estáveis
1 comentários
Este é um benchmark simples (e extremo) de desempenho do compilador.
https://github.com/ganadist/kotlin_build_performance
Cada projeto inclui 200 classes, e cada classe contém 2000 campos
java : 2 segundos
kotlin 1.9.24 : 1 minuto e 20 segundos
kotlin 2.0.0 : 1 minuto e 1 segundo
Confirmado em um Macbook Pro M1 Max.
O projeto acima é um caso um pouco extremo e, em geral, parece que a velocidade de compilação do Kotlin 2.0 é cerca de 2x maior em comparação com o Kotlin 1.9.