Notícias
- Notícias
- Acessos: 482
Linguagens de programação: por que a Meta está movendo seus aplicativos Android de Java para Kotlin
Aqui está o que os desenvolvedores do Meta aprenderam ao mover sua base de código da linguagem de programação Java para Kotlin.
Os engenheiros da Meta, controladora do Facebook, detalharam seu esforço de vários anos para converter as bases de código de seus vários aplicativos Android da linguagem de programação Java para Kotlin.
Essa é uma grande tarefa para uma empresa com milhares de desenvolvedores e muitos grandes aplicativos Android, incluindo Facebook, Instagram, Messenger, Portal e seu headset Quest VR.
"Mudar do Java, que usamos atualmente para o desenvolvimento do Android, e passar para o Kotlin não é uma tarefa trivial ", observa Omer Strulovich, engenheiro de software do Facebook.
A migração para Kotlin está em andamento, com os repositórios de aplicativos Android da Meta já consistindo em 10 milhões de linhas de código Kotlin.
"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. No total, nossa base de código Android tem mais de 10 milhões de linhas de código Kotlin", observou Strulovich.
Java é uma das três principais linguagens de programação, graças ao seu domínio em aplicativos corporativos, enquanto Kotlin é uma linguagem de programação menos popular, mas ainda top 20 . A mudança da Meta de Java para Kotlin para o desenvolvimento de aplicativos Android é um marco, dada a escala da Meta e o tamanho de seus aplicativos.
Mas, apesar dos benefícios do Kotlin que motivaram a mudança do Meta, Strulovich descreve várias desvantagens significativas que tornam a mudança arriscada, pelo menos para aplicativos grandes.
Em primeiro lugar, a grande diferença de popularidade entre Java e Kotlin deixa o último com menos ferramentas, e essas ferramentas, tendo que levar em conta a interoperabilidade Kotlin-Java, são complexas. Apesar da interoperabilidade de 100% das linguagens, o Meta descobriu que não pode remover todo o Java.
"Kotlin é uma linguagem popular, mas comparado com Java, a lacuna de popularidade é clara. Java é a segunda ou terceira linguagem mais popular do mundo (dependendo de como se mede isso). Isso significa que menos ferramentas estão disponíveis. Pior do que isso, todas as As ferramentas Kotlin precisam levar em conta a interoperabilidade Kotlin e Java, o que complica sua implementação", observa Strulovich.
Mas a maior preocupação do Meta são os tempos de compilação mais lentos em Kotlin versus Java.
"Sabíamos desde o início que os tempos de compilação do Kotlin seriam mais longos do que os do Java. A linguagem e seu ecossistema são mais complicados, e o Java teve duas décadas de vantagem para otimizar seu compilador. Como possuímos vários aplicativos grandes, as consequências de os tempos de construção podem afetar negativamente a experiência de nossos desenvolvedores."
Nesse último ponto, Strulovich aponta para tempos de compilação depois que o projeto do cliente HTTP, OkHttp , mudou de Java para Kotlin em 2019. OkHttp é pequeno, com apenas 24.000 linhas de Kotlin. Seu tempo de compilação em Java foi de 2,4 segundos em comparação com 10,2 segundos em Kotlin.
Meta engenheiros decidiram converter quase todo o seu código em Kotlin em vez de escrever um novo código usando Kotlin e deixar a maior parte do código existente em Java (a segunda abordagem é como o projeto do kernel Linux e o Android Open Source Project estão introduzindo Rust em suas bases de código ) .
Uma notícia potencialmente boa para a adoção de Kotlin em outros lugares é que a Meta lançou várias ferramentas internas de conversão de Kotlin no GitHub que outras pessoas podem usar diretamente ou, pelo menos, inspirar outras pessoas a encontrar maneiras de automatizar a conversão.
Como os engenheiros do Facebook detalharam no ano passado, embora a adoção do Kotlin possa ser suave, é difícil em escala. O Facebook usa seu próprio sistema de compilação Buck versus o IntelliJ/Android Studio IDE, que usa Gradle.
Strulovich descreve várias ferramentas Kotlin de código aberto para as quais o Meta contribuiu, como a biblioteca "Pygments" que está usando para "trazer a experiência a par com Java". A Meta também criou o Ktfmt, um plug-in para IntelliJ e Android Studio que fornece um "formatador Kotlin determinístico baseado no código e na filosofia do formato google-java".
Strulovich diz que, até agora, o Meta teve, em média, uma redução de 11% no tamanho de sua base de código. A equipe do Google Home relatou uma redução de 33% no tamanho da base de código de seu aplicativo ao migrar o desenvolvimento de novos recursos para Kotlin .
"Vimos números muito mais altos citados online, mas suspeitamos que esses números sejam derivados de exemplos específicos", disse Strulovich. "Ainda estamos felizes com esse número, pois as linhas removidas geralmente são código clichê, que é menos implícito do que sua contraparte Kotlin mais curta."
O Kotlin foi desenvolvido pela JetBrains, fabricante de ferramentas de desenvolvimento ou IDEs como o IntelliJ. O Google usa Kotlin para aplicativos Android desde 2017 e a dupla oferece suporte conjunto à linguagem Kotlin por meio da Kotlin Foundation desde 2018.
Em 2019, a equipe Android do Google adotou a abordagem 'Kotlin-first'. O Google tem mais de 70 aplicativos Android construídos pelo menos parcialmente com Kotlin, incluindo Maps, Home, Play, Drive e Messages. Comparado ao Java, o Google diz que o Kotlin é mais eficiente, produz código mais seguro e uma base de código menor e é 100% interoperável com a linguagem Java – facilitando a mudança das bases de código Java, permitindo que elas coexistam.
O gerente de produto Kotlin do Google, James Ward, saudou a mudança da Meta: "O Android tem sido o primeiro Kotlin por três anos, pois oferece nossa melhor experiência de desenvolvedor possível ao construir e interoperar com Java e seu ecossistema", disse ele ao ZDNET. "Estamos empolgados em ver o Meta mudar para Kotlin e felizes por terem tido sucesso. Muitas equipes do Google também passaram por uma jornada semelhante de Java para Kotlin para Android e para o lado do servidor, culminando em mais de 11 milhões de linhas do código Kotlin (em outubro de 2022). Ter outros projetos de grande escala em uma jornada semelhante reafirma o caminho que escolhemos."
Fonte:ZDnet.com