BT

JEPs: aperfeiçoamento colaborativo do OpenJDK

por Alex Blewitt , traduzido por Rafael Liu em 01 Dez 2011 |

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.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Muito interessante by Wellington Pinheiro

Acho bem interessante a forma de organização do OpenJDK. Não só as JEPs, mas também as listas de discussões públicas e como o desenvolvimento é administrado -- claro que há espaço para melhorias, mas eles já possuem um processo bem maduro. Seria muito bacana se as empresas que desenvolvem sistemas olhassem mais para isso e tentassem aprender um pouco mais! Infelizmente, ainda existem muitas empresas que tratam software de código aberto como sendo um "hobby" das pessoas e não algo sério e no final acabam não dando o devido valor.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

1 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT