quarta-feira, 8 de setembro de 2021

🚀 A Chegada do Java 12!

🚀 A Chegada do Java 12!

Após o lançamento do Java 9 em 2017, o ritmo de lançamentos da plataforma Java mudou de uma versão principal a cada 3+ anos para uma versão com novos recursos a cada seis meses. Isso fornece aos desenvolvedores um acesso mais previsível a melhorias contínuas. As versões com novos recursos agora ocorrem de forma confiável em março e setembro de cada ano. Chega de tentar gerenciar centenas de mudanças a cada dois anos de uma só vez – em vez disso, a mudança é entregue em um ritmo mais granular, rápido e gerenciável.


O Java 12 já está disponível!

A Oracle agora oferece o Java 12 para empresas e desenvolvedores. O JDK 12 receberá, no mínimo, duas atualizações, de acordo com o cronograma de CPU da Oracle, antes de ser seguido pelo Oracle JDK 13, previsto para setembro de 2019.

A Oracle fornece o Java 12 como a versão Oracle OpenJDK usando a licença de código aberto GNU General Public License v2, com a Classpath Exception (GPLv2+CPE), e também sob uma licença comercial para quem usa a versão Oracle JDK como parte de um produto ou serviço Oracle, ou que não deseja usar software de código aberto.


Java 12, Juntos

Semelhante ao Java 11, vale a pena celebrar as contribuições feitas para o Java 12 por muitos indivíduos e organizações na Comunidade OpenJDK — todos nós construímos o Java, juntos!

Proporção de Correções no JDK 12

A taxa geral de mudança no JDK ao longo do tempo permaneceu essencialmente constante por muitos anos, mas, sob o ritmo de seis meses, a velocidade na qual as inovações são entregues aos desenvolvedores melhorou muito. Em vez de disponibilizar dezenas de milhares de correções e cerca de cem JEPs em uma grande versão principal a cada poucos anos, os aprimoramentos são disponibilizados em versões de recursos menores em um cronograma previsível e mais gerenciável de seis meses. Essas mudanças podem variar de um recurso significativo a pequenas melhorias, manutenção de rotina, correções de bugs e melhorias na documentação. Cada uma dessas alterações é representada em um único commit para um único problema no JDK Bug System.

Dos 1.919 problemas do JIRA marcados como corrigidos no JDK 12, 1.433 foram concluídos por pessoas que trabalham para a Oracle, enquanto 486 foram contribuições de desenvolvedores individuais e desenvolvedores que trabalham para outras organizações. Analisar os problemas e compilar os dados da organização dos responsáveis resulta no seguinte gráfico de organizações que patrocinam o desenvolvimento de correções no JDK 12:

Embora os desenvolvedores empregados pela Oracle tenham resolvido 75% dos problemas do JIRA durante o desenvolvimento do JDK 12, 25% foram corrigidos por desenvolvedores que trabalham para outras organizações. Desenvolvedores que trabalham para as cinco próximas maiores organizações contribuintes, Red Hat (8%), Google (6%), SAP (4%), BellSoft (1%) e IBM (1%), corrigiram coletivamente 20% desses problemas. Desenvolvedores independentes contribuíram com 3% das correções no JDK 12.

Por último, mas não menos importante, os dois por cento restantes das correções foram contribuídos coletivamente por desenvolvedores de uma ampla gama de organizações, incluindo Alibaba, Amazon, ARM, Azul, Huawei, Intel, JetBrains, Linaro e Twitter.

Agradecimentos especiais também aos muitos desenvolvedores experientes que revisaram as mudanças propostas, aos primeiros usuários que testaram as compilações de acesso antecipado e relataram problemas, e aos profissionais dedicados que forneceram feedback nas listas de e-mail do OpenJDK.


🔧 Novos Aprimoramentos no Java 12

Oito melhorias são entregues com o Java 12:

JEP 325 – Switch Expressions (preview)

Estende a instrução switch para que possa ser usada como uma instrução ou uma expressão, e que ambas as formas possam usar um comportamento de escopo e fluxo de controle "tradicional" ou "simplificado". Essas mudanças simplificarão a codificação do dia a dia e também prepararão o caminho para o uso de correspondência de padrões (JEP 305) no switch. Para o JDK 12, esse recurso está disponível como um recurso de linguagem de visualização (JEP 12).

JEP 344 – Abortable Mixed Collections for G1

Torna as coletas mistas do G1 abortáveis se elas excederem o alvo de pausa.

JEP 346 – Promptly Return Unused Committed Memory from G1

Aprimora o coletor de lixo G1 para retornar automaticamente a memória do heap Java para o sistema operacional quando ociosa.

JEP 189 – Shenandoah, A Low-Pause-Time Garbage Collector (experimental)

Adiciona um novo algoritmo de coleta de lixo (GC) que reduz os tempos de pausa do GC fazendo o trabalho de evacuação simultaneamente com os threads Java em execução.

JEP 230 – Microbenchmark Suite

Adiciona um conjunto básico de microbenchmarks ao código-fonte do JDK e facilita para os desenvolvedores executar microbenchmarks existentes e criar novos.

JEP 334 – JVM Constants API

Introduz uma API para modelar descrições nominais de artefatos principais de arquivo de classe e tempo de execução, em particular constantes que podem ser carregadas do pool de constantes.

JEP 340 – One AArch64 Port, Not Two

Remove todas as fontes relacionadas à porta arm64, mantendo a porta ARM de 32 bits e a porta aarch64 de 64 bits.

JEP 341 – Default CDS Archives

Aprimora o processo de construção do JDK para gerar um arquivo de compartilhamento de dados de classe (CDS), usando a lista de classes padrão, em plataformas de 64 bits.


Com 12 milhões de desenvolvedores em todo o mundo, o Java continua sendo a linguagem de programação nº 1 de escolha dos programadores de software. E como a entrega pontual de melhorias com o Java 12 demonstra, por meio de um planejamento contínuo e cuidadoso e envolvimento do ecossistema, a plataforma Java está bem posicionada para o desenvolvimento moderno e crescimento na nuvem.