Explorando os avanços do Java: Visão geral dos JEPs em andamento

Explorando os avanços do Java: Visão geral dos JEPs em andamento

Os sistemas internos e a sintaxe do Java estão em constante evolução, e essas mudanças acontecem principalmente por meio do Java Community Process (JCP) e Java Enhancement Proposals (JEPs). Juntos, o JCP e o JEP definem o caminho pelo qual novos recursos podem ser descritos, projetados e — esperançosamente — introduzidos na JVM. Eles mantêm a linguagem e a plataforma Java dinâmicas e a comunidade engajada.

Com o JDK 24 tão perto de sua data de lançamento planejada, agora é um bom momento para dar uma olhada nos próximos JEPs que estão passando pelo processo.

Etapas do processo JEP

Você pode verificar o JEP Index na página inicial do OpenJDK para um catálogo de todos os JEPs, passados ​​e presentes, enviados para Java. O tamanho e o escopo do índice podem ser impressionantes no início. Não fica imediatamente claro sobre o que cada JEP é e quais são mais significativos. Você pode esperar que grandes projetos como threads virtuais sejam diferenciados de propostas de escopo menor, mas não há tal distinção. Todos os JEPs são listados, passados ​​e presentes, mostrando o histórico completo da evolução do Java.

Em vez de escopo, os JEPs são organizados de acordo com seu estágio de desenvolvimento:

  • JEPs em voo são propostas que estão sendo trabalhadas agora para inclusão em uma versão futura do Java. Isso inclui tudo, desde propostas que estão em pré-visualização e disponíveis para experimentação até aquelas que foram recentemente aceitas para desenvolvimento. Todas as propostas neste conjunto já foram examinadas ao longo do caminho e provavelmente chegarão em uma versão futura do Java.
  • Os JEPs enviados passaram pelo processo de criação e agora estão oficialmente enviados, mas não foram aceitos. Uma vez aceitos, eles passarão para o estágio em andamento.
  • Rascunhos de JEPs são propostas que estão sendo trabalhadas para colocá-las em um estado em que estejam prontas para submissão oficial. Quando isso acontecer, elas passarão para o status de JEP submetidas.
  • Os JEPs de recursos, infraestrutura e informativos entregues são todos os JEPs bem-sucedidos do passado que se tornaram parte da JVM. Alguns até foram entregues e depois modificados por outros JEPs.
  • JEPs retirados são propostas que não deram certo e foram retiradas.
  • Você também notará os JEPs de Processo no topo do índice. Esses são JEPs procedurais que ajudam você a entender e definir o processo em si.

Às vezes, JEPs maiores são divididos em partes ou estágios. Por exemplo, JEP 462: Structured Concurrency (Second Preview) tem uma entrada individual no conjunto de recursos entregues.

Os JEPs de bordo mais notáveis ​​no momento

Há vários JEPs interessantes no pipeline atualmente. As propostas que destaquei são focadas em ajustar e refatorar a JVM e expandir e aprimorar a linguagem.

JEP 485: Coletores de fluxo

Como discuti em meu mergulho profundo no tópico , os coletores de fluxo tornam as operações funcionais mais personalizáveis. A API Stream Gatherer expõe uma interface de operador de baixo nível chamada de gatherer . Os desenvolvedores podem usar os coletores para operações em fluxos que eram difíceis ou impossíveis antes, como trabalhar com tipos de coleta homogêneos.

O mergulho profundo foi baseado em uma prévia do recurso. JEP 485 é a proposta de aceitar esse recurso como uma parte finalizada da plataforma. É o ápice de duas propostas anteriores: JEP 473 e JEP 461 .

Stream Gatherers não é o tipo de recurso que você precisa todos os dias, mas quando você precisa, é incrível ter. Ele transforma um caso extremo frustrante em uma solução simples.

JEP 484: API de arquivo de classe

A API Class-File é direcionada a desenvolvedores de bibliotecas e frameworks que precisam decorar a saída compilada de programas Java com recursos adicionais. Essa é uma abordagem de longa data em Java. O ecossistema Java tem muitas ferramentas para esse tipo de desenvolvimento, mas o ritmo mais rápido das mudanças do JDK torna importante ter uma abordagem mais padronizada.

A API Class-File é um mecanismo padrão para analisar, manipular e gerar saídas de estruturas de um framework ou biblioteca .class. Outros desenvolvedores de ferramentas (e o próprio JDK) podem então construir sobre a saída fornecida.

JEP 478: API de função de derivação de chave (visualização)

O JEP 478 é um movimento para melhorar e expandir a capacidade nativa do Java de lidar com material criptográfico como chaves e hashes. Ele tem a intenção de tornar essas operações mais robustas, incluindo recursos voltados para o futuro para ajudar a proteger contra ataques de computação quântica .

Desenvolvedores envolvidos em criptografia usariam a API Key Derivation Function para coisas como fazer hash de senhas usando algoritmos avançados como o Argon2 . O JEP 478 atualiza o suporte criptográfico integrado do Java e o posiciona melhor para os próximos anos.

O JEP 478 é uma proposta preliminar no momento, o que significa que provavelmente ainda tem um longo caminho a percorrer antes de se tornar um recurso oficial.

JEP 472: Prepare-se para restringir o uso do JNI

Parte do esforço do Projeto Panamá para substituir o JNI pela Foreign Function Memory API, o JEP 472 é uma indicação de que a JVM está se movendo em direção à descontinuação da Java Native Interface. Esta proposta é um aviso para desenvolvedores de aplicativos de que está chegando o momento em que o JNI será restrito por padrão. Este JEP está preocupado em tornar o JNI e a API FFM mais consistentes e seguros. Desenvolvedores que usam JNI ou FFM serão afetados por esta mudança porque ela requer que esses recursos sejam explicitamente habilitados e emite avisos se não forem.

JEP 468: Criação de Registros Derivados (Prévia)

Registros são objetos imutáveis, adicionados há pouco tempo ao Java. O JEP 468 introduz uma maneira simplificada de criar clones de registros com campos específicos marcados como mutados. Registros são frequentemente copiados como uma maneira de modificá-los. Este JEP pega uma tarefa que requer boilerplate e adiciona suporte em nível de linguagem para ela por meio da with palavra-chave.

Conteúdo Relacionado

O Rails 8 sempre foi um divisor de águas...
Os aplicativos da Web são uma pedra fundamental da...
Os desenvolvedores Java enfrentam uma variedade de erros relacionados...
Com várias décadas de experiência, adoro criar aplicativos corporativos...
A escalabilidade é um fator crítico quando se trata...
Ao trabalhar em um projeto de código aberto no...
A Inteligência Artificial (IA) tem se tornado cada vez...
A maioria das organizações enfrenta desafios ao se adaptar...
Quando nós, desenvolvedores, encontramos alguns bugs em nossos logs,...
A cibersegurança é um tópico cada vez mais importante...
A experiência do desenvolvedor (DX) é um tópico cada...
Ao relatar estatísticas resumidas para resultados de testes de...
Explorando as Engrenagens do Kernel Semântico Falei um pouco...
A arquitetura de software evoluiu drasticamente nas últimas décadas,...
Como você previne alucinações de grandes modelos de linguagem...
O conceito de "jardim digital" tem ganhado cada vez...
Вернуться к блогу

Комментировать

Обратите внимание, что комментарии проходят одобрение перед публикацией.