BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias JEPs: aperfeiçoamento colaborativo do OpenJDK

JEPs: aperfeiçoamento colaborativo do OpenJDK

Criado pela Oracle com o objetivo de permitir que contribuidores submetam ideias e extensões para melhorar o ecossistema OpenJDK, o conjunto de propostas de aperfeiçoamento do JDK (JEPs) já conta com 28 documentos, incluindo a definição do processo e um template. Embora o JCP permaneça como órgão maior da padronização das tecnologias Java, os JEPs são considerados por alguns como uma versão leve das JSRs.

O propósito das JEPs é descrito no documento JEP 1: Processo de aperfeiçoamento da JDK. No documento um aperfeiçoamento é definido como uma mudança não trivial, ou seja que demande um esforço de mais de duas semanas, como uma mudança significativa na JDK ou algo muito solicitado por desenvolvedores ou clientes. 

Assim como o Propostas de Aperfeiçoamento do Python (PEPs) e o Processo de Melhoria do Scala, o intuito é definir, em termos de funcionalidades, quais melhorias ou mudanças são necessárias. De forma similar ao que acontece no Python, a JEP0 (zero) é na verdade um índice das propostas de melhoria já submetidas, que no momento de escrita lista 26 JEPs, além de duas meta-JEPs, a JEP 1 já citada e a JEP 2: JEP Template, um modelo para a criação das propostas.

O documento que descreve o processo ressalta que os JEPs não têm como objetivo substituir o Java Community Process (JCP). Embora várias das JEPs submetidas estejam alinhadas com a API Java, algumas são especificamente relacionadas à JVM, como a JEP 122: Remover a Geração Permanente.

As JEPs passam por vários estados:

  • Draft: Em progresso, sendo discutida abertamente
  • Posted: Incluída nos arquivos de JEPs
  • Submitted: Declarada como pronta para avaliação
  • Active: Aprovada para publicação
  • Candidate: Aceita para inclusão no roadmap (plano geral) da OpenJDK 
  • Funded: Julgada viável, em termos de recursos, pelos líderes do projeto
  • Completed: Finalizada e entregue
  • Withdrawn: Retirada de circulação (possivelmente para futura reinclusão)
  • Rejected: Considerada que não vale continuar o trabalho (por exemplo, por falta de apoio dos líderes).

Os estados Completed e Rejected são os estados terminais. Embora Withdraw possa ser considerado também um estado terminal, neste caso ainda existe a possibilidade de que a JEP seja reativada no futuro. Algumas JEPs, como a JEP0 e a JEP1, ficarão permanentemente no estado Active, sem transicionar para um estado terminal.

Uma das principais diferenças entre as JEPs e as JSRs do Java Community Process (JCP) é o nível de formalidade envolvido. O JCP define um processo rígido que deve ser seguido, enquanto que as JEPs são uma forma mais leve para elaborar ideias e de ter um identificador que possa ser usado para referenciá-las e sincronizar comentários e outros processos. Há também o conceito de "funding", que indica se há recursos alocados para o projeto, além de estabelecer a organização responsável pela entrega.

Até agora todas as JEPs são patrocinadas pela Oracle, sendo a JEP 104: Anotações em Tipos Java copatrocinada pela Universidade de Washington, onde o coautor Michael Ernst é professor de Ciência da Computação. Os verificadores de tipos são uma das áreas de pesquisa de Ernst, e a JEP 104 é resultado de experimentos publicados no ICSE'11.

Embora a maioria das JEPs estejam no estado Posted, três estão no estado Submitted no momento de escrita. Isso inclui a JEP 104 já citada, assim como a JEP 118: Acesso a Nomes de Parâmetros em Tempo de Execução e a JEP 119: Implementação de javax.lang.model Suportada por Reflection. Essas propostas estão “prontas para avaliação” em vez de estarem simplesmente em discussão, mas precisam ainda passar pelos estados Candidate e Funded antes de serem desenvolvidads de fato.

Para conhecer mais sobre as JEPs, veja o índice das 28 propostas, a descrição do processo, e o modelo definido para a criação de novas propostas.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT