Pular para o conteúdo principal

Retrospectiva do Ecossistema Java 2024


O ano de 2024 foi marcante para o ecossistema Java, consolidando sua posição como uma das principais linguagens de programação no desenvolvimento de aplicações modernas. Com atualizações significativas, adoção crescente de novas versões e discussões relevantes na comunidade, o Java demonstrou sua capacidade de evolução contínua para atender às demandas tecnológicas atuais.

Principais Notícias de 2024

Adoção acelerada do Java 21

Em setembro de 2023, foi lançado o Java 21, trazendo melhorias notáveis, como threads virtuais e bibliotecas aprimoradas. A adoção desta versão foi significativamente mais rápida em comparação com lançamentos anteriores. Nos seis meses subsequentes ao lançamento, 1,4% das aplicações monitoradas já utilizavam o Java 21, um aumento de 287% em relação ao mesmo período após o lançamento do Java 17. Além disso, o Java 17, lançado anteriormente, viu sua adoção crescer para 35% das aplicações, refletindo um aumento de quase 300% em um ano.

Alguns dos recursos relevantes foram:
  • Threads Virtuais (Projeto Loom): Simplificaram a programação concorrente, permitindo lidar com milhões de threads leves com baixo impacto de desempenho.
  • Scoped Values: Avançaram a gestão de dados compartilhados entre threads, tornando os sistemas concorrentes mais simples e eficientes.
  • Melhorias no Garbage Collector: O ZGC e G1 GC receberam ajustes que reduziram pausas e melhoraram a eficiência em ambientes de grande escala.

Desafios de Performance e Atualizações

Uma pesquisa realizada pela BellSoft revelou que 73% dos desenvolvedores acreditam que o desempenho das aplicações Java em suas empresas pode ser melhorado. Apesar das versões mais recentes, muitos ainda utilizam o Java 8 e 11 em produção. A pesquisa também destacou que 21% dos entrevistados não priorizam a migração para versões mais novas devido à falta de urgência percebida pelos gestores de negócios.

O Papel das Versões Não-TLS no Ciclo de Inovação do Java

As versões não-TLS, lançadas a cada seis meses, são fundamentais para o avanço do Java. Elas introduzem novos recursos e experimentos, permitindo feedback direto da comunidade antes de sua inclusão definitiva nas versões TLS. Em 2024, tivemos dois lançamentos significativos: Java 22 (março de 2024) e Java 23 (setembro de 2024). Apesar de não terem suporte estendido, essas versões são amplamente utilizadas em ambientes de teste e desenvolvimento para avaliar e experimentar as mais recentes inovações.

Principais JEPs (Java Enhancement Proposals) Liberados em 2024:

  • Threads Virtuais como Recurso PadrãoVersão: Consolidado no Java 21, evoluções nas versões não-TLS.
    • Objetivo: Simplificar a programação concorrente no Java, permitindo milhares de threads leves com impacto mínimo no desempenho.
    • Impacto: Melhoria significativa em servidores e aplicações de alta carga.

  • Projeto Valhalla: Primitive Classes (JEP 401)Versão: Introduzido como prévia em Java 22.
    • Objetivo: Fornecer uma forma de criar classes que se comportam como tipos primitivos, reduzindo overhead de memória e melhorando a performance.
    • Impacto: Um marco para aplicações que exigem alta eficiência, como processamento financeiro e jogos.

  • String Templates: Prévia em Java 22 e continuada no Java 23.
    • Objetivo: Introduzir interpolação de strings, simplificando a construção de strings dinâmicas.
    • Impacto: Reduz o uso de APIs externas como String.format() e bibliotecas de template.

  • Introdução ao nullability para melhor segurança: Primeira preview no Java 23.
    • Objetivo: Fornecer uma maneira padrão de expressar e verificar o uso de valores null no código.
    • Impacto: Reduz erros relacionados a NullPointerException, uma das exceções mais comuns no Java.

  • Projeto Loom: Scoped Values: Introduzido no Java 22.
    • Objetivo: Facilitar o compartilhamento de dados entre threads de forma eficiente e segura.
    • Impacto: Simplificação de práticas de programação para ambientes concorrentes e paralelos.

  • Compact Object Headers (Projeto Lilliput): Testado no Java 22.
    • Objetivo: Reduzir o tamanho dos cabeçalhos de objetos na JVM.
    • Impacto: Melhor utilização de memória em aplicações de grande escala.

  • Atualizações no Garbage Collector: Melhorias em G1 e ZGC no Java 23.
    • Objetivo: Reduzir pausas de coleta de lixo e melhorar a eficiência em sistemas com grande quantidade de memória.
    • Impacto: Melhor desempenho em aplicações críticas, como bancos de dados e sistemas de análise em tempo real.


Tendências Emergentes

O uso de ferramentas de inteligência artificial para auxiliar na escrita de código ganhou destaque, com 18% dos desenvolvedores adotando essas tecnologias. Além disso, a conscientização sobre a "Green Java" tornou-se um foco importante, refletindo a preocupação com a eficiência energética e sustentabilidade no desenvolvimento de software.

A IBM apresentou avanços significativos com o watsonx Code Assistant para aplicativos corporativos Java, previsto para outubro de 2024. Essa ferramenta de IA auxilia na geração de código, aumentando a eficiência e precisão no desenvolvimento de aplicações Java.

Computação Sem Servidor

A computação sem servidor (serverless) ganhou destaque no desenvolvimento Java, com a popularidade de plataformas como AWS Lambda e Azure Functions. Essa abordagem permite que os desenvolvedores construam e implantem aplicações de maneira mais rápida e eficiente, sem a necessidade de gerenciar a infraestrutura subjacente.

Referências:









Comentários

Postagens mais visitadas deste blog

Java Records

  Java Records Imutável, Simples e limpa Esta funcionalidade da linguagem apareceu pela primeira vez na versão 14 como experimental e assim continuou até a versão 15 . Agora liberada de forma definitiva no Java 16 . O objetivo é ser possível ter classes que atuam como portadores transparentes de dados imutáveis. Os registros podem ser considerados tuplas nominais. Ou seja, após criado, um record não pode mais ser alterado. Records oferece uma uma sintaxe compacta para declarar classes que são portadores transparentes para dados imutáveis superficiais visando reduzir significamente o detalhamento dessas classes e irá melhorar a capacidade de leitura e manutenção do código. Vamos seguir um exemplo de uma classe chamada Pessoa . O primeiro exemplo vamos utilizar o modo tradicional. public class Pessoa { private String nome; private int idade; public Pessoa (String nome, int idade) { super (); this .nome = nome; this .idade = idade; } public String g...

Oracle JDK agora é livre?

    Olá Javeiros e Javeiras, h á uma boa notícia para todos os desenvolvedores Java e todos os clientes que usam Java sob uma licença comercial: o Oracle JDK está disponível gratuitamente a partir do JDK 17 ( publicado há poucos dias ). Novo modelo de licenciamento Informação retirada so site da Oracle : "Java 17 LTS é a versão de suporte de longo prazo mais recente para a plataforma Java SE. Os binários do JDK 17 podem ser usados gratuitamente na produção e podem ser redistribuídos, sem nenhum custo, de acordo com a Licença de Termos e Condições Gratuitas da Oracle ." O JDK 17 receberá atualizações sob esses termos, pelo menos até setembro de 2024. Confira a notícia completa: https://blogs.oracle.com/oracle-brasil/post/java-gratuito Esta licença gratuita inclui o JDK e as atualizações de segurança trimestrais também para uso comercial e de produção. A nova licença é a licença “Oracle No-Fee Terms and Conditions” (NFTC) e permite o uso gratuito para todos os usuários, m...

Java 8 ao 18: Mudanças mais importantes na plataforma Java

    Vamos rever muitas das mudanças mais importantes na plataforma Java que aconteceram entre a versão 8 (2014) e 18 (2022)   O Java 8 foi lançado em março de 2014 e o Java 18 em março de 2022. São 8 anos de progresso, 203 JEPs (JDK Enhancement Proposals ), entre essas duas versões. Neste post, revisaremos as mudanças mais importantes e discutiremos os benefícios e desafios da adoção de versões mais recentes do JDK para novos aplicativos e para os mais antigos compilados com versões mais antigas. Desde a versão 9, o Java tem novos recursos a cada 6 meses e é muito difícil acompanhar essas novas mudanças. A maioria das informações na internet descreve as mudanças entre as duas últimas versões do Java. No entanto, se você estiver em uma situação semelhante à minha, não está usando uma das versões mais recentes do Java, mas uma das várias versões anteriores (Geralmente 8 ou 11 que são as versões de suporte estendido). Então é útil saber quais novos recursos foram...