Kotlin
A concise multiplatform language developed by JetBrains
Lançamento do Kotlin 1.4 com foco na qualidade e no desempenho
Hoje, estamos lançando o Kotlin 1.4.0! Nos últimos anos, temos trabalhado muito para tornar o Kotlin uma linguagem de programação divertida, agradável e produtiva. Para continuarmos nossa jornada em busca dessa meta com esta versão do Kotlin, colocamos muita energia e esforço para melhorar o desempenho e a qualidade do Kotlin e de suas ferramentas. Também temos o prazer de anunciar suporte para vários novos recursos da linguagem, incluindo as tão esperadas conversões de SAM para interfaces Kotlin.
Para ajudar você a tirar o máximo proveito das mudanças e melhorias introduzidas no Kotlin 1.4, estamos convidando todos para o Evento Online Kotlin 1.4, no qual você terá a oportunidade de aproveitar quatro dias de conferências sobre o Kotlin, participando de sessões de perguntas e respostas com a equipe do Kotlin e muito mais – sem pagar absolutamente nada.
Comunidade e ecossistema
Mais de 5,8 milhões de pessoas editaram o código Kotlin nos últimos 12 meses, e os números estão crescendo cada vez mais:
Estamos muito satisfeitos em ver o quão popular o Kotlin está se tornando! O número de usuários ativos – explicaremos essa métrica com mais detalhes em uma postagem futura no blog – tem sido especialmente encorajador. Aqui, estamos vendo um aumento de 1,5 vezes em relação aos números do ano anterior.
De acordo com a StackOverflow Developer Survey 2020, o Kotlin subiu para o 13º lugar entre as linguagens de programação mais populares para desenvolvedores profissionais, e estamos felizes em ver que o Kotlin é uma das 5 linguagens mais adoradas.
Muitas empresas escolheram o Kotlin como linguagem preferencial e a estão usando com sucesso em todas as plataformas. Estamos felizes em ver essa tendência e imensamente gratos por tantas dessas empresas terem disponibilizado estudos de caso para a comunidade ler e aprender com elas. Aqui estão apenas alguns exemplos incríveis de softwares desenvolvidos recentemente em Kotlin:
- No lado do servidor: Atlassian, Adobe, ING Bank;
- Android: Google Home, Duolingo, Zomato;
- Multiplataforma para celular: VMware, PlanGrid e CashApp, Trikot da Mirego;
- Web: Space da JetBrains, Karhoo, VisionForge do Laboratório de Metódos de Física Nuclear MPIT.
Nossas comunidades Kotlin também estão crescendo rapidamente. Mais de 30.000 desenvolvedores de Kotlin estão agora trocando conhecimento e apoiando uns aos outros no Slack e Reddit, e mais de 90.000 pessoas seguem nossa conta oficial no Twitter em busca de dicas, truques e anúncios. Com mais de 200 grupos de usuários em todo o mundo, a comunidade Kotlin está prosperando e crescendo. Agradecemos a todos por ajudar a divulgar, compartilhar seu conhecimento e apoiar seus colegas desenvolvedores de Kotlin. A atmosfera calorosa e acolhedora que você cria é o que torna o ato de explorarmos o Kotlin juntos uma experiência tão agradável. Não seria a mesma coisa sem você.
Evento Online Kotlin 1.4
Queremos ter certeza de que você terá uma ótima experiência com o Kotlin 1.4 e gostaríamos que você tivesse uma boa ideia sobre para onde levaremos a linguagem a partir daqui. É por isso que temos o prazer de convidar a todos para o nosso Evento Online Kotlin 1.4!
São quatro dias repletos de conhecimento sobre Kotlin, o futuro da linguagem e seu ecossistema: Discutiremos as novas mudanças e melhorias que fizemos com o Kotlin 1.4 e compartilharemos nossos planos futuros para a linguagem. Os membros da nossa equipe Kotlin responderão às suas perguntas em sessões diárias de perguntas e respostas. Envie suas perguntas com antecedência por tweet, usando a hashtag #kotlin14ask ou este formulário.
O Evento Online Kotlin 1.4 será transmitido de 12 a 15 de outubro, e você pode se inscrever gratuitamente aqui:
Inscreva-se no Evento Online Kotlin 1.4
Estamos ansiosos para ver todos vocês lá!
Com foco na qualidade
Nosso foco principal para essa versão foi melhorar a experiência geral de desenvolvimento com o Kotlin, incluindo melhor desempenho e estabilidade do IDE. Nossa meta é trazer o máximo de produtividade para os usuários do Kotlin e nosso foco está em melhorar as coisas que são mais importantes para esses usuários, para que eles se sintam ainda mais satisfeitos ao usar o Kotlin!
Revisamos e corrigimos mais de 60 problemas de desempenho, incluindo muitos que estavam causando congelamentos do IDE ou vazamentos de memória. Durante a fase EAP do Kotlin 1.4.0, coletamos muitos comentários positivos indicando que a experiência geral agora ficou muito mais agradável!
Quando você está trabalhando com um projeto e abre um arquivo Kotlin grande pela primeira vez, agora vê seu conteúdo com realce muito mais cedo. Na maioria dos casos, o realce agora é 1,5 a 4 vezes mais rápido:
Também melhoramos significativamente o tempo necessário para a visualização das sugestões de complementação automática. O gráfico a seguir mostra uma visão geral do tempo médio de resposta do preenchimento automático para usuários do Kotlin. O número de casos em que a complementação leva mais de 500 ms foi reduzido quase pela metade:
Observe que essas alterações mais recentes, incluindo o realce de código mais rápido, requerem o IntelliJ IDEA 2020.1+ e o Android Studio 4.1+.
As melhorias de desempenho são um processo contínuo, e temos muitos outros aprimoramentos planejados, como continuar a trabalhar para eliminar o congelamento e tornar a digitação mais suave. Já iniciamos a integração com o novo compilador de front-end experimental do Kotlin, que irá acelerar significativamente o IDE. Essa é uma tarefa enorme que requer que muitas partes do plug-in sejam reescritas, mas aumentará o desempenho em muitas áreas do IDE, incluindo complementação de código, realce de sintaxe e relatório de erros do compilador.
Nova funcionalidade do IDE
Nossa missão na JetBrains é tornar o desenvolvimento de software uma experiência mais produtiva e agradável. Portanto, naturalmente queremos assegurar que as ferramentas em torno do Kotlin são excelentes e tornam a codificação do Kotlin o mais fácil possível.
Para facilitar o trabalho com co-rotinas e, especialmente, para identificar bugs na sua aplicação concorrente, apresentamos o Coroutine Debugger. Vamos expandir seu conjunto de recursos inicial para fornecer a funcionalidade mais necessária para a comunidade. Portanto, compartilhe seus comentários conosco usando um dos nossos canais ou na seção de comentários abaixo.
Também estamos apresentando um novo Assistente de projetos do Kotlin flexível. Esse novo assistente fornece um local único para você criar e configurar projetos Kotlin de diferentes tipos, o que torna ainda mais fácil começar a trabalhar, até mesmo com estruturas mais complexas, como projetos multiplataforma.
Mais de 40 novas correções rápidas , intenções e inspeções foram adicionadas com o Kotlin 1.4.0 e estarão disponíveis exatamente quando você precisar delas – quando você modifica seu código e pressiona Alt + Enter para ver o que está disponível no seu contexto específico.
Novo compilador
Já faz algum tempo que estamos trabalhando em um novo compilador Kotlin que irá promover a evolução do Kotlin em termos de desempenho e extensibilidade. As principais metas para o novo compilador são que ele seja realmente rápido, unifique todas as plataformas que o Kotlin suporta e forneça uma API para extensões do compilador. Estamos introduzindo novas peças gradualmente, para que cheguem ao usuário o mais rápido possível. Com o Kotlin 1.4.0, estamos lançando várias partes desse esforço contínuo:
- Um novo e mais poderoso algoritmo de inferência de tipo está habilitado por padrão. Ele infere tipos automaticamente em mais casos de uso, oferece suporte a conversões inteligentes mesmo em cenários complicados, melhora a inferência para propriedades delegadas e muito mais.
- Novos back-ends JVM e JS estão disponíveis no modo Alpha. Uma vez estabilizados, eles se tornarão o novo padrão.
Estamos trabalhando ativamente em uma nova implementação de front-end, que fornecerá o maior aumento de desempenho possível no pipeline do compilador. O front-end é a parte do compilador que analisa o código, resolve nomes, executa a verificação de tipos e muito mais, portanto, afeta o desempenho do IDE também. Uma prévia dele estará disponível em lançamentos futuros. Portanto, fique atento!
Recursos da linguagem
O Kotlin 1.4 vem com muitos novos recursos:
- Conversões de SAM para interfaces Kotlin
- Modo de API explícito para autores de bibliotecas
- Combinando argumentos nomeados e posicionais
- Vírgula final
- Melhorias de referências chamáveis
- Usando
break
econtinue
dentro dewhen
em loops
Melhorias de biblioteca
Nossa prioridade geral para a biblioteca padrão é melhorar a consistência, tanto em diferentes plataformas quanto entre as próprias operações. Nesta versão, a biblioteca padrão Kotlin recebe novos operadores de coleção, melhorias nas propriedades delegadas, a implementação de fila dupla ArrayDeque
e muito mais.
Você pode usar a biblioteca padrão em código “comum” – o código compartilhado entre diferentes plataformas, sejam elas Android e iOS ou JVM e JS. Estamos gradualmente estendendo a biblioteca comum e adicionando ou movendo funcionalidades ausentes para ela.
Também não é mais necessário declarar uma dependência no stdlib
em qualquer projeto Gradle Kotlin, não importa se você almeja uma única plataforma ou está trabalhando em um projeto multiplataformas. A partir do Kotlin 1.4.0, essa dependência é adicionada por padrão.
Estamos trabalhando em outras partes do ecossistema Kotlin:
- Estamos evoluindo gradualmente para kotlinx.coroutines com base em seus comentários.
- A biblioteca de serialização está se aproximando da maturidade. Estamos lançando a versão kotlinx.serialization 1.0.0-RC hoje!
- Já lançamos a demonstração da API DateTime, a biblioteca kotlinx-datetime, em um estado experimental.
Kotlin/JVM
Incentivamos você a experimentar o novo back-end do Kotlin/JVM Alpha para seus projetos regulares e a compartilhar seus comentários! Junto com a unificação dos pipelines do compilador, esse esforço nos ajudará a trazer extensões do compilador como o Jetpack Compose para a comunidade Kotlin mais rapidamente.
Recursos da linguagem específicos para Kotlin/JVM:
- Adicionamos novas maneiras experimentais para gerar métodos padrão em interfaces no bytecode (para o destino Java 8).
- Introduzimos tipos de exceção unificados para a verificações de null.
- O Kotlin agora pode gerar anotações de tipo no bytecode JVM, de modo que se tornem disponíveis no Java reflection em tempo de execução. Isso funciona para versões de destino 8 e superiores, e por enquanto foi lançado em modo experimental.
Kotlin/JS
O Kotlin 1.4.0 vem com um novo Gradle DSL e uma versão Alpha do novo back-end do compilador Kotlin/JS, entre outros recursos.
- O novo Gradle DSL adiciona suporte para configuração de CSS e carregadores de estilo a partir do DSL, que inclui várias melhorias relacionadas ao gerenciamento de dependências do npm e melhora o controle sobre a integração com o Dukat.
- O back-end do compilador Kotlin/JS dá uma amostra do futuro para o Kotlin/JS. Inclui otimizações e recursos, como a geração automática de definições TypeScript a partir do código Kotlin, binários e pacotes menores, uma maneira modernizada de expor a funcionalidade do Kotlin ao JavaScript e muito mais.
Kotlin/Native
O Kotlin/Native recebeu um número significativo de novos recursos e melhorias, incluindo:
- Melhorias no desempenho geral da compilação e execução do Kotlin/Native.
- Interoperabilidade aprimorada entre Kotlin/Native e Swift/Obj-C.
- Gerenciamento simplificado das dependências CocoaPods.
A implementação do gerenciamento automático da memória atual no Kotlin/Native tem limitações quando se trata de concorrência, e estamos trabalhando em uma substituição para ela.
Um foco importante para o Kotlin/Native é torná-lo perfeito para o Kotlin Multiplatform Mobile, mas ele não se limita a isso.
Kotlin Multiplatform
Fazer do Kotlin uma ótima solução multiplataformas é uma das nossas principais prioridades. Prometemos algumas melhorias importantes na KotlinConf e estamos felizes em comunicar o que disponibilizamos:
- Graças à estrutura hierárquica do projeto, agora você pode compartilhar o código entre um subconjunto específico de destinos, como o destino de dispositivos iOS ARM64 similares e o destino do simulador x64.
- Você pode usar bibliotecas dependentes de plataforma a partir de código comum compartilhado entre vários destinos nativos.
- Você pode especificar uma dependência apenas uma vez no conjunto de origem compartilhada em vez de especificar dependências em diferentes variantes da mesma biblioteca em conjuntos de origens compartilhadas e específicas de plataforma.
- Continuamos trabalhando no formato de biblioteca Kotlin, o Klib, que é usado nos bastidores para compartilhar as bibliotecas multiplataforma.
Estamos trabalhando em um plug-in do Android Studio para executar, testar e depurar o código Kotlin em dispositivos iOS e simuladores. A primeira prévia pública será lançada em breve, portanto, fique ligado.
Em breve, lançaremos vários materiais criados com a ajuda de membros da comunidade Kotlin, explicando como você pode usar a tecnologia Kotlin Multiplatform Mobile (KMM) com foco especificamente em casos de uso para dispositivos móveis em que o código é compartilhado entre o Android e o iOS.
Apesar de o foco principal agora estar em destinos móveis, o destino Web para o Kotlin Multiplatform já é usado ativamente pela JetBrains para construir e entregar o JetBrains Space. A Web continua sendo um importante investimento estratégico para Kotlin.
Mais detalhes
Você pode encontrar descrições detalhadas dos novos recursos na página de novidades e na documentação do Kotlin 1.4 e ler mais sobre como migrar para o Kotlin 1.4.
Como em todos os lançamentos principais, alguns ciclos de descontinuação de alterações previamente anunciadas estão chegando ao fim com o Kotlin 1.4. Todos esses casos foram analisados cuidadosamente pelo comitê da linguagem e estão listados no Guia de compatibilidade para o Kotlin 1.4.
Como nos ajudar a melhorar o Kotlin
O plug-in do Kotlin no IntelliJ IDEA e Android Studio pode coletar estatísticas anônimas sobre o uso das funcionalidades. Pedimos gentilmente que você aceite a coleta dessas estatísticas!
Esses dados anônimos nos ajudam muito a entender melhor nossa base de usuários, ver o que funciona, o que está causando dificuldades e para onde devemos direcionar nosso foco. Para ativar as estatísticas, vá para Preferences, abra Appearance & Behaviour | System Settings | Data Sharing e marque a caixa de seleção Send usage statistics.
Os principais relatores de issues desde o Kotlin 1.3
Gostaríamos de agradecer a todos os membros da comunidade que nos ajudaram a tornar esse lançamento ainda melhor, relatando issues no YouTrack! Fizemos uma lista dos 20 principais relatores e gostaríamos de agradecê-los especificamente:
Igor Wojda (145 issues); Louis CAD (87 issues); Marc Knaup (86 issues); AndroidDeveloperLB (83 issues); Robert Stoll (68 issues); Morgan Bartholomew (62 issues); Victor Turansky (54 issues); Guan Tianyi (51 issues); Scott Pierce (38 issues); Andreas Malik (37 issues); Steven Schäfer (37 issues); Björn Kautler (36 issues); Róbert Papp (34 issues); Toshiaki Kameyama (30 issues); Nicholas Bilyk (29 issues); Michael Bailey (26 issues); Jake Wharton (25 issues); Lamberto Basti (24 issues); Serge Pro (23 issues) e Egor Andreevici (21 issues).
Comece a usar o Kotlin 1.4 agora mesmo
Como sempre, você pode experimentar o Kotlin online em play.kotl.in.
No Gradle e no Maven, use 1.4.0 como a versão do compilador. Consulte os documentos para o Gradle e para o Maven.
O IntelliJ IDEA e o Android Studio solicitam automaticamente que você atualize o plug-in Kotlin para a versão 1.4.0. Você também pode abrir Preferences | Plugins e atualizar o plug-in do Kotlin manualmente.
O compilador de linha de comando pode ser baixado na página de lançamento do GitHub.
Você pode usar as seguintes versões das bibliotecas que foram publicadas junto com este lançamento:
- kotlinx.coroutines versão:
1.3.9
- kotlinx.serialization versão:
1.0.0-RC
- ktor versão:
1.4.0
- kotlinx.atomicfu versão:
0.14.4
- kotlinx.html versão:
0.7.2
- kotlinx-nodejs versão:
0.0.6
As versões das bibliotecas do kotlin-wrappers
(kotlin-react
etc.) podem ser encontradas no repositório correspondente.
As melhorias de desempenho do IDE mais recentes, incluindo o realce de código mais rápido, requerem o IntelliJ IDEA 2020.1+ e o Android Studio 4.1+.
Se tiver problemas com a nova versão, você poderá encontrar ajuda no Slack (receba um convite aqui ) e reportar issues no nosso YouTrack.
Obrigada!
Somos muito gratos a todos que experimentaram e nos deram feedback sobre os EAPs e os recursos experimentais do Kotlin. Estamos desenvolvendo a linguagem Kotlin junto com você e tomando muitas decisões de design com base na sua contribuição inestimável. Manter esse ciclo de feedback rápido e eficaz em andamento com a comunidade é muito importante para ajudar o Kotlin a melhorar continuamente!
Gostaríamos de deixar um grande obrigado a todos os nossos colaboradores externos cujas solicitações pull foram incluídas neste lançamento. Vocês nos ajudaram a fazer esse lançamento acontecer!
Somos muito gratos a todos os membros da nossa comunidade que estão criando tantas coisas incríveis com o Kotlin. Kotlin 1.4: Um por todos!