
Kotlin, overview da nova linguagem para Android
Em meados de 2009, eu começava a trilhar, lentamente, meu caminho no desenvolvimento de aplicações para celulares. Ainda na época do J2ME, e em seguida no Java Android, sentia a necessidade de uma linguagem menos verbosa e que a curva de aprendizado não fosse tão íngreme (especialmente no caso do J2ME). Foi um longo caminho até o ingresso do Kotlin na minha vida, mas definitivamente foi a melhor linguagem que conheci até hoje.
Em 2010 que um grupo de engenheiros da JetBrains iniciou o desenvolvimento da linguagem Kotlin com o intuito de suprir as carências da empresa que eram originadas de outras linguagens, com exceção da linguagem Scala. Contudo, o tempo de compilação da Scala sempre foi uma deficiência óbvia.
Em Fevereiro de 2016, a linguagem foi lançada sob a alcunha de Kotlin v1.0, sendo o primeiro lançamento oficial e estável. Pouco mais de um ano após o lançamento, o Google anunciou no evento Google I/O o suporte oficial da linguagem para Android.
Quando iniciei os estudos em Kotlin, tinha a noção das dificuldades que surgiriam no caminho, mas me surpreendi com a rápida curva de aprendizado da linguagem e neste artigo, trago um pouco desse conhecimento adquirido.
Interoperabilidade com Java
Para começar, o Kotlin é 100% interoperável com Java, o que significa que é possível ter as duas linguagens conversando em um mesmo projeto. Outra grande vantagem é o plugin do Android Studio que converte o código Java para o seu respectivo em Kotlin.

Simplicidade
Para quem programa há muito tempo linguagens verbosas como o Java, tratar com naturalidade a grande quantidade de linhas de código para executar funções, muitas vezes, simples. Contudo, quando colocamos as duas linguagens (Java/Kotlin) lado a lado, vemos o quanto um programador Java digita a mais do que um programador Kotlin para que a aplicação realize a mesma função.


Como podemos ver nas figuras 3 e 4, Kotlin possui uma dinâmica de programação mais concisa, e graças a isso torna mais fácil o entendimento.
Null-safety
Um dos maiores problemas na linguagem Java, se não o maior, são os NullPointerExceptions, carinhosamente apelidados de NPE. Em Java, para cada acesso em um objeto, o programador deve verificar se o mesmo é nulo. Já o Kotlin disponibiliza uma forma mais eficiente de fazer a verificação pois a própria linguagem distingue referências que podem ser nulas (nullable references) de referências não nulas (non-null references).


Na figura 4, temos a declaração de uma variável que não pode ser nula. Quando tentamos atribuir nulo para essa variável, o compilador informa a inviabilidade dessa ação. Já na figura 5, já declaramos a variável como possível nulo. Nesse caso, ao atribuirmos nulo à variável, o aplicativo é compilado normalmente.
Extensions
Uma das funcionalidades mais interessantes do Kotlin é a utilização de extensions para adicionar novos métodos a uma classe sem a necessidade de herdar (isso inclui implementar todos os métodos) da mesma. Pensando dessa forma, qual a motivação por trás dessa abordagem? A resposta é simples: evitar a verbosidade característica das chamadas em Java.



Existem outras vantagens e também limitações do Kotlin em relação ao Java que podem ser encontradas no próprio site do Kotlin. Finalizo dizendo que a utilização do Kotlin como linguagem principal no desenvolvimento de aplicações Android, não só me trouxe um gás novo no sentido de aprendizado como também tornou minha vida de desenvolvedor mais simples e menos verbosa.
By: André de Lima