Kotlin e Swift são os novos players (já não tão novos) do desenvolvimento móvel nativo. Kotlin para Android e Swift para o desenvolvimento de iOS, respetivamente.
Por Patric Cunha, Tech Leader, DXspark

Já passou tempo suficiente desde que, ambas as linguagens se tornaram oficiais para o desenvolvimento de aplicações para o seu sistema operativo móvel (Kotlin em 2017 e Swift em 2014), e assim ter-se uma boa ideia de como é que estas linguagens foram recebidas pela comunidade de desenvolvimento em geral, e particularmente em Portugal.
Uma breve introdução das tecnologias em questão.
Kotlin é uma linguagem de programação moderna, orientada a objetos e funcional, desenvolvida pela Jetbrains em 2011. Foi introduzida principalmente como uma alternativa ao JAVA para a JVM, estando presente tanto no desenvolvimento de servidores como de aplicações e sendo adotada pela Google como uma linguagem oficial para o desenvolvimento do Android em 2019.
Swift é também uma linguagem de programação orientada a objetos e Statically typed. Desenvolvido pela própria Apple (dispensa apresentações), com a intenção principal de substituir o antigo e antiquado Objective-C. Lançada em 2014 e open-source em 2015, foi ainda expandida em 2019 quando a Apple anunciou a SwiftUI, uma nova forma declarativa de estruturar as UIs utilizando a linguagem Swift.
Numa breve análise às linguagens e quando estas começaram a ganhar tração, pareceu-nos que a sua evolução seria semelhante à das suas precedentes. Swift, tal como Objective-c, beneficia de uma comunidade de programadores muito focada, onde a maioria da informação disponível será direcionada para o ambiente exato para o qual se está a desenvolver, iOS e o ecossistema Apple em geral. Kotlin vê uma adoção mais generalizada em diferentes paradigmas, tal como o Java, mas tem uma base de conhecimento mais dispersa, uma vez que muito do desenvolvimento de Kotlin provavelmente não visa o Android.
Um dos melhores recursos para se ter uma visão geral das tendências atuais de desenvolvimento é o Stack Overflow Developer Survey. A edição deste ano diz-nos que, Kotlin é uma linguagem mais popular do que Swift, o que não constitui uma surpresa tendo em conta, a nossa análise anterior sobre a sua maior diversificação. Kotlin também ostenta uma visão mais positiva junto dos programadores, mas essa vantagem tem vindo a diminuir ao longo dos anos.
De acordo com o relatório Developer Nation Q3 2021, Kotlin é utilizado por mais de 62% dos programadores Android, enquanto Swift é utilizado por mais de 39% dos programadores iOS, o que é uma clara indicação de que Kotlin tem tido uma adoção mais rápida no mercado móvel nativo. Para além destes valores, o relatório apresenta um número curioso, o termo “iOS” é pesquisado cerca de 189 703 vezes, enquanto que a procura por “Android” é muito menor, apresentando cerca de 51 951 perguntas. Considerando que nenhuma outra estatística parece confirmar esta realidade, podemos assumir então que, este resultado se deve à forma como as perguntas são categorizadas no StackOverflow. Podemos contudo concluir que ambas as linguagens têm comunidades muito ativas.
Sendo assim, o que significam estes dados para a seleção da linguagem de desenvolvimento escolhida no início de um futuro Projeto Mobile?
Toda a comunicação oficial da Google e da Apple diz-nos que não só é seguro, como é fortemente encorajado, iniciar novos projetos utilizando Kotlin ou Swift.
O apoio da comunidade é enorme e está a crescer, ao mesmo tempo que a comunidade vai lentamente abandonando as linguagens mais antigas. Ambas suportam uma interoperabilidade com as suas alternativas mais antigas – se for realmente necessário, é possível reutilizar o código de uma base de códigos mais antiga quando absolutamente necessário. Um detalhe onde o Swift e o Kotlin diferem, é que, o Swift não suporta versões muito antigas de iOS (em teoria iOS 7, na prática qualquer versão anterior ao iOS 13), no entanto, isto não é uma questão impeditiva uma vez que os utilizadores de iOS tendem a ter os seus dispositivos atualizados.
Tudo isto
dá-nos uma visão global interessante, mas há alguns detalhes que só a
experiência do dia a dia pode esclarecer. Passando pelo processo de entrevistar
candidatos a posições de desenvolvimento mobile nos últimos anos, tornou-se
bastante evidente que, a maioria dos candidatos com Kotlin ou Swift nos seus
currículos acabam por ter perfis mais júniores. Também é possível notar que, cada
vez menos candidatos júnior se interessam em aprender Java ou Objective-C,
especialmente Objective-C.
Tendo tudo isto em consideração, a resposta resume-se realmente à
disponibilidade de programadores e à estratégia da empresa. Questões
relacionadas com o nível de antiguidade requerido para o projeto, se existem os
perfis com senioridade necessários para desenvolver as soluções nas linguagens
correspondentes, se os programadores sénior Java/Objective-C da equipa podem
apoiar os perfis mais juniores, entre outras questões. Importa notar que, a motivação
dos programadores como o planeamento a longo prazo acabam por ser fatores
fundamentais que favorecem a aprendizagem das linguagens mais recentes.
Mas como acontece com a maioria das questões, não há uma resposta única e simples. O importante é continuar a tentar responder às questões que nos vão aparecendo.