O Java 16 acaba de ser lançado, que inclui 17 aprimoramentos em comparação com a sua antecessora, sendo que já estamos falando sobre o Java 17! Porém, recentemente me peguei achando isso muito curioso, já que eu estava utilizando o Java 8 em um projeto.
Ainda mais que se pararmos para pensar, o Java 8 foi lançado em março de 2014, ou seja, nestes sete anos tivemos oito novas versões sucessoras com grandes melhorias, assim como novidades pertinentes. Então, por que seria relevante usar nos dias de hoje uma versão um tanto antiga do Java?
É isso que vamos ver nesse artigo!
Entendendo um pouco o Java 8
Desde o seu primórdio em 1996, o Java mantém a reputação de ser uma das linguagens de programação mais seguras, confiáveis e com a possibilidade de ser aplicável a uma infinidade de tipos de projetos.
Sem dúvidas, na época de seu lançamento, a versão 8 foi de grande valor para a sua comunidade. Assim, o Java 8 se tornou a mais popular, sendo altamente usada no mundo corporativo ao desenvolverem seus produtos.
Características do Java 8
Mas porque o Java 8 é tão amado até hoje? Vamos entender um pouco suas principais características.
No Java 8 tivemos importantes mudanças de sintaxe, foram introduzido novos recursos como, por exemplo, o Lambda Expressions e novos métodos e tipos foram adicionados.
Esse último beneficiou muito a produtividade das equipes de desenvolvimento, deixando seus códigos mais limpos e enxutos.
Muito mais que código legado
Com o sucesso do Java 8, muitas corporações mantêm até hoje uma base de código legado. Muitas vezes, a atualização dessa base não é tratada como alta prioridade. E o pior, ao competir com o backlog de novas funcionalidades, melhorias ou correção de bugs, se torna um débito técnico empurrado para baixo na lista de priorização.
Mesmo com novos recursos implementados nas versões mais recentes do Java, este argumento não é suficiente para justificar a atualização do código. Isso pois, em teoria, sua configuração atual está funcionando bem e o custo para migração, muitas vezes, aparenta ser elevado.
LTS (ou Long Term Support)
Efetivamente, o ponto de maior relevância não está relacionado apenas ao código legado, mas sim ao fato do Java 8 ser uma edição LTS (ou Long Term Support).
Vale a pena relatar que as únicas versões que foram designadas com suporte de longo prazo foram Java 8 e o também aclamado Java 11 de 2018. Sendo que infelizmente isso significa que todas as suas versões intermediárias não possuem LTS, incluindo sua última versão, o Java 16, recém lançada.
Agora que sabemos a relevância deste tipo de versão, precisamos entender que a princípio as organizações, principalmente as de grande porte, não deveriam considerar colocar em produção um sistema que dependa de uma versão que não seja LTS, sendo que um dos principais motivos seria a sua estabilidade à mudança.
Muitas versões, pouco suporte
Antes do Java 9 a frequência de lançamento de novas versões era baixa, mas a partir dela passou a ser a cada seis meses. Em pouco mais de três anos saímos da 9 e alcançamos a versão 16 do Java.
Isso implica na introdução de novos recursos, remove ou descontínua outros recursos. Em alguns casos se modifica o como são executados os programas construídos. Muitas vezes isso implica em modificações no código atualmente implementado, causando certo desconforto em sua migração para uma versão mais recente.
Mas e o Java 11?
Não podemos deixar de falar do Java 11, que vem se tornando bastante popular, porém há alguns fatores limitantes em sua adoção.
Em 2018 (ano de seu lançamento) tivemos o anúncio por parte da Oracle sobre mudanças fundamentais no formato de licenciamento no Java.
Assim, a partir de 2019, qualquer organização que fizesse uso comercial do Java 11 ou versões posteriores deveria pagar por isso, o que causou bastante repercussão.
Em poucas palavras digamos que migrar da versão 8 para sua próxima versão LTS do Java 11 poderia ocasionar implicações financeiras ou jurídicas significativas. Com certeza isso limitou em alguns casos a sua adoção.
O que vem por aí?
Fechando um novo ciclo, em breve estará disponível a nova versão LTS do Java 17.
De acordo com o roadmap da Oracle, seu lançamento está programado para setembro de 2021. Porém o tempo para se consolidar nas fileiras do mundo corporativo pode demorar.
Isso acontece por diversos motivos, alguns deles expostos no acima. Com isso, a adoção de tal versão pode ser lenta, talvez até mais lenta do que tem sido a adoção do Java 11.
Que tal assistir esse Zupcast? É o episódio #11 do podcast da Zup! Nesse episódio, reunimos três nomes de peso, com muita experiência de mercado para bater um papo sobre histórias, mitos e verdades sobre as polêmicas acerca do Java!
Mas a adesão do Java 8 é tão grande assim?
É.
Vale destacar que segundo a última pesquisa realizada pela JetBrains, com base em dados de 2020, a versão 8 é usada por três quartos dos desenvolvedores Java.
Devemos destacar também que o Java 11, com sua versão LST mais atual, teve um aumento de dez pontos percentuais, em comparação com seu uso no ano de 2019, lhe dando maior destaque, porém ficando ainda atrás de seu antecessor.
Já pensou em receber todos os conteúdos da Zup no seu e-mail? Então assine a nossa newsletter e fique por dentro de tudo que é publicado no blog da Zup!
Conclusão
Existem diversas razões que tornam o Java 8 relevante para empresas, assim como para pessoas que estão aprendendo a linguagem.
Pois além de ser uma versão muito bem consolidada em sua época de lançamento, a impactante mudança de frequência de novas versões, bem como a atitude da Oracle em relação ao LTS, reforçou a continuidade de seu legado.
Apesar do surgimento de versões mais novas, muitas organizações decidiram manter o Java 8, o tornando o mais amado ainda nos dias de hoje.