A Meta, controladora do Facebook, migrou o código Java de seu aplicativo Android para Kotlin. Esta é uma linguagem de programação mais atual que também depende da Java Virtual Machine, ou JVM. Sendo assim, a Meta substitui linguagem de programação Java pela Kotlin.
Criado pelo fabricante de ferramentas de software JetBrains, o Kotlin estreou em 2011 e em 2016 atingiu sua versão 1.0. No ano seguinte, foi adotada pelo Google como uma linguagem de primeira classe (suportada) para desenvolvimento Android e foi colocada sob a gestão de sua própria fundação, financiada pela JetBrains e Google.
Até então, a maioria dos aplicativos Android eram escritos em Java. Em maio de 2019, em sua conferência de desenvolvedores, o Google começou a incentivar os desenvolvedores do Android a favorecer o Kotlin em vez do Java. No final do ano, a gigante das buscas disse que 60% dos 1.000 principais aplicativos Android continham código Kotlin.
Meta substitui linguagem de programação Java pela Kotlin
A lógica do Google para usar o Kotlin é que ele é mais conciso, seguro, suporta simultaneidade estruturada para facilitar o código assíncrono e é interoperável com Java. Também pode ter algo a ver com a Oracle, administradora de Java, que passou mais de uma década perseguindo (e acabou perdendo) uma reivindicação de violação contra o Google pelo uso de APIs Java no Android.
Meta parece estar igualmente intrigado com Kotlin e, como explica o engenheiro de software do Facebook Omer Strulovich, o negócio de anúncios sociais que virou grande apostador de VR vem substituindo o código Java em vários de seus populares aplicativos Android – Facebook, Instagram, Messenger, Portal e o Missão – com Kotlin.
Adequadamente para uma empresa fundada como uma rede social, Meta quer sair com o público popular.
“O Kotlin é geralmente considerado uma linguagem melhor que o Java, com classificações de favorabilidade mais altas do que o Java na pesquisa anual de desenvolvedores do Stack Overflow”, disse Strulovich, observando que o Kotlin se tornou uma linguagem popular para o desenvolvimento do Android “[s] então só faz sentido que mudaríamos nosso desenvolvimento Android na Meta para Kotlin…”
Vantagens da nova linguagem
Mas além de sua popularidade no ecossistema Android – que Strulovich admite que no mercado mais amplo fica aquém do Java, em algum lugar entre as três principais linguagens de programação, dependendo de quem você pergunta – Kotlin tem algumas vantagens práticas.
Isso inclui: nulidade, para ajudar a evitar erros de referência nula ao oferecer suporte a tipos que não podem ter um valor nulo; suporte para programação funcional via funções inline e expressões lambda; código mais conciso; e suporte para Domain Specific Languages ??(DSLs), linguagens de programação de escopo limitado para tarefas específicas.
A transição também teve desvantagens. Bases de código mistas podem ser difíceis de manter e o Kotlin, que existe há menos tempo que o Java, tem um conjunto de ferramentas menos maduro. Redex, otimizador de bytecode Android do Facebook, precisava ser atualizado. O mesmo aconteceu com Pygments, um marcador de sintaxe. Além disso, algumas bibliotecas internas para otimizar o bytecode durante a compilação não funcionavam com Kotlin e precisavam ser atualizadas. E novas ferramentas como Ktfmt, um formatador Kotlin determinístico, tiveram que ser construídas.
Nossos aplicativos Android para Facebook, Messenger e Instagram têm mais de 1 milhão de linhas de código Kotlin, e a taxa de conversão está aumentando
A Meta poderia ter decidido escrever apenas um novo código em Kotlin, mas optou por converter todos os seus aplicativos Android.
“Hoje, nossos aplicativos Android para Facebook, Messenger e Instagram têm mais de 1 milhão de linhas de código Kotlin, e a taxa de conversão está aumentando”, disse Strulovich. “No total, nossa base de código Android tem mais de 10 milhões de linhas de código Kotlin.”
Strulovich não disse quando a Meta começou essa transição – os desenvolvedores da empresa discutiram o uso de Kotlin em larga escala em uma conferência no ano passado – ou qual porcentagem de seu código de aplicativo Android foi convertida.
Dez milhões de linhas de Kotlin nesta transição, Meta percebeu alguns benefícios. Por exemplo, embora o código Kotlin seja mais curto, talvez não seja tanto quanto o esperado.
“Em média, vimos uma redução de 11% no número de linhas de código dessa migração”, disse Strulovich. “Vimos números muito mais altos citados online, mas suspeitamos que esses números sejam derivados de exemplos específicos”.
Parte da redução de código insatisfatória é que muito do código do aplicativo que está sendo traduzido consiste em definições de interface do usuário, que permanecem as mesmas em Java ou Kotlin.
Strulovich também disse que não houve regressões de velocidade, então pelo menos os aplicativos convertidos mantiveram seu desempenho. O tamanho da compilação dos aplicativos em Kotlin também não provou ser um problema, embora os tempos de compilação tenham sofrido – isso era esperado, já que a compilação Kotlin não recebeu tanta atenção quanto a compilação Java.
A migração do Meta está em andamento e acelerando, disse Strulovich. Enquanto isso, a popularidade do Java, em pelo menos uma medida, caiu 4,7% nos últimos cinco anos.
“O Kotlin ainda carece de algumas das ferramentas e otimizações com as quais nos acostumamos ao trabalhar com Java”, disse Strulovich. “Mas estamos trabalhando para fechar essas lacunas. À medida que progredimos e essas ferramentas e bibliotecas amadurecem, também trabalharemos para liberá-las de volta à comunidade.”