Java vs Kotlin: Vantagens, Desvantagens e Performace

No items found.
2/8/2019
Deusemar Junior
Senior Software Engineer

Programador apaixonado por viagens, música e esportes.

A Linguagem Java é líder de mercado no mundo corporativo e foi também a única forma de desenvolver aplicações nativas para Android. Em 2010, foi criada a linguagem de Programação Kotlin (que também roda na JVM - Java Virtual Machine) para resolver alguns problemas que os desenvolvedores enfrentam usando apenas a linguagem Java. 

O objetivo deste artigo é comparar as duas linguagens, Java vs Kotlin, para te ajudar a decidir qual a melhor opção. 

Quando e como surgiu Kotlin? 

A JetBrains, empresa de desenvolvimento de software famosa por desenvolver ferramentas para desenvolvedores, como a IDE Intellij, estava procurando uma linguagem que tivesse algumas funcionalidades que Java não possuia. 

Na época, uma solução pensada foi a linguagem Scala, que roda na JVM, mas ela logo foi descartada, pois sua compilação é muito lenta. Em 2010, a JetBrains criou o Kotlin e em 2016 - 2017 a linguagem se tornou pública e foi sendo adotada por vários desenvolvedores.

No campo do Android a evolução foi ainda maior da linguagem, o Android Studio começou a usar a plataforma do Intellij e o Google adotou o Kotlin como linguagem padrão para desenvolvimento Android.

Quais as vantagens do Kotlin?

java vs kotlin

JetBrains nos bastidores

A jetbrains é uma excelente empresa e seus produtos são de qualidade inegável. Eles estão diariamente propondo algo novo, empenhados em melhorar a linguagem e aumentar a popularidade do Kotlin e o uso do AndroidStudo, motivando a ainda pequena comunidade de usuários do Kotlin.

Interoperabilidade

A interoperabilidade é o objetivo principal de Kotlin. 

Desde o início, a intenção do projeto foi usar o conhecimento e a experiência existentes para disponibilizar todas as bibliotecas aos programadores da Kotlin. Os desenvolvedores podem simplesmente escrever módulos no Kotlin que funcionam perfeitamente dentro do código Java existente. Ao emitir o Bytecode, um compilador Kotlin permite que os dois idiomas trabalhem em uníssono no mesmo projeto.

Sintaxe Limpa e Expressiva

Kotlin introduz várias melhorias que causam um impacto significativo na legibilidade do código, aumentando a produtividade e trazendo mais facilidade para manutenção do código gerado. 

Para mencionar alguns:

  • Ponto e vírgula são opcionais.
  • Chaves "{}" são opcionais nos casos em que não são úteis.
  • Getter/Setters são opcionais.
  • Tudo é objeto - primitivos são usados nos bastidores automaticamente, se necessário.
  • Mais consistente e menos verboso - Em algumas situações é possível ter o mesmo comportamento que no Java usando muito menos código, o exemplo abaixo a diferença é bem grande.

<p> CODE: https://gist.github.com/maluaraujo/c919d7855ab10506a9c04c6c38ead6fe.js</p>

<p> CODE: https://gist.github.com/maluaraujo/cee7a2232e9cd33af262c636faf9920f.js</p>

Kotlin is null safe por padrão

As variáveis não são nulas por padrão, permitindo a verificação nula durante o tempo de compilação, o que reduz bastante a ocorrência do temido NullPointerException durante o tempo de execução. 

Se você quiser uma referência anulável, será necessário adicionar um ponto de interrogação ao seu tipo de dados da seguinte forma: var secret: String? nomedocampo = null.

Coroutines

É uma ótima maneira de escrever código assíncrono de forma mais natural. Eles são essencialmente threads mais claras e concisas. 

Em Java, você normalmente criaria threads de segundo plano para gerenciar operações intensivas. Isso muitas vezes levou ao aumento da complexidade e da frequência das dores de cabeça. Coroutines também permitem muitas outras possibilidades, como simultaneidade, atores e muito mais. 

Se você não tentou programação assíncrona em Java, pode não estar pulando de alegria, mas é louvável o excelente trabalho que a equipe da JetBrains decidiu adicionar corrotinas a Kotlin!

Leia também > Flutter: tudo sobre o queridinho do google!

Quais as desvantagens de usar o Kotlin?

kotlin


Experimentado e Testado

Existe uma comunidade extensa e engajada de desenvolvedores construindo todos os tipos de sistemas e aplicativos com Java há mais de 20 anos. O primeiro lançamento oficialmente estável do Kotlin foi no início de 2016, já o Java tem estabilidade e resistiu ao teste do tempo.

Podemos dizer o mesmo para o Kotlin?

Contratação de profissionais Kotlin

A contratação de profissional Sênior Java não é uma tarefa fácil, em muito dos casos. 

A dificuldade de encontrar um programador Kotlin será muito maior e inevitavelmente uma opção é contratar um profissional de Java e aguardar uma leve curva de aprendizado para que ele consiga ser produtivo no Kotlin.

Java é muito mais que Android

Java continua sendo uma das principais linguagens para o desenvolvimento de servidores e aplicativos da web. Pesquisa do Google, Facebook, Amazon, YouTube, Gmail e Netflix são alguns dos sites populares que usam Java em sua pilha de tecnologia. 

O amplo alcance e a flexibilidade do Java são particularmente valiosos para os desenvolvedores, pois podem mudar para o desenvolvimento de aplicativos da Web e do servidor se decidirem que o desenvolvimento do Android não é para eles.

Velocidade de compilação

Desenvolvedores informaram sobre a flutuação na velocidade de compilação de códigos Kotlin. Em alguns casos, é muito rápido e, em outros casos, é significativamente mais lento, mas não chegando a ser tão ruim quanto a linguagem Scala.


Java vs Kotlin Performance

Aqui, Kotlin e Java são praticamente iguais. Nós sentimos que a diferença no desempenho e tempo de compilação não é grande o suficiente para ser um fator decisivo, mas vamos aos detalhes:

Patrick Schwermer, em sua tese, fez comparações benchmark sobre o desempenho de dois aplicativos idênticos e os estudos mostram que “Existem diferenças em eficiência de tempo de execução e consumo de memória entre implementações Java e Kotlin, Java também é mais performático no funcionamento do Garbage Collection”

Leia aqui a tese completa. 

Conclusão

Em Maio  de 2017, Kotlin foi definido pela Google como a linguagem principal para desenvolvimento Android e a ideia não foi comprada só por ela. A comunidade também está comprando a ideia de usar Kotlin e seu ganho de produtividade me faz ser tendencioso na escolha dele para o desenvolvimento Mobile, sem  descartar a possibilidade de continuar com o Java por causa da grande dificuldade de contratação de novos profissionais.

Para desenvolvimento do lado do servidor sou muito reticente em adotar o Kotlin em larga escala por não estar maduro o suficiente e sem tantas integrações com diversos frameworks.

O Java também está evoluindo atualmente na sua versão 11 LTS (Long Team Suport) e também é disponibilizado em versões semestrais. Devemos avaliar também a possibilidade de atualizar a versão do Java em vez de migrar para Kotlin. 

E você, entre java e kotlin, com qual você fica? Conta pra gente nos comentários o que você acha sobre cada um e suas vantagens! 


Vagas em tecnologia

Aqui na Zup, nós acreditamos em profissionais fora da curva e que querem crescer exponencialmente. Você gosta de desafios? Veja nossas vagas em tecnologia.




O que você achou deste conteúdo?
Quer receber nossos conteúdos?
Seu cadastro foi efetuado com sucesso! Enviaremos as novidades no seu email.
Oops! Something went wrong while submitting the form.