A Oracle está promovendo um modelo de "ponta e cauda" para o desenvolvimento de bibliotecas Java que, segundo a empresa, daria aos desenvolvedores de aplicativos uma melhor experiência e, ao mesmo tempo, ajudaria os desenvolvedores de bibliotecas a inovar mais rápido.
O JEP (JDK Enhancement Proposal) criado em 30 de setembro e atualizado em 7 de outubro descreve um modelo de lançamento para bibliotecas de software. O lançamento "tip" de uma biblioteca contém novos recursos e correções de bugs, afirma a proposta, enquanto os lançamentos "tail" contêm apenas correções de bugs críticas. O mínimo possível é retroportado do tip para o tail. O próprio JDK usa o tip e o tail desde 2018 para entregar novos recursos em um ritmo mais rápido e fornecer atualizações confiáveis e previsíveis focadas na estabilidade.
Objetivos do Plano
Os objetivos do plano incluem:
- Ajudando o ecossistema Java a manter o equilíbrio entre inovar rapidamente para novos desenvolvimentos e garantir estabilidade para desenvolvimentos de longo prazo.
- Reconhecendo que os desenvolvedores de aplicativos têm visões diversas sobre mudanças que tornam necessário atualizar as bibliotecas e o JDK.
- Garantir que os desenvolvedores de bibliotecas não tenham que escolher entre oferecer suporte a usuários de JDKs mais antigos e adotar novos recursos, como threads e padrões virtuais, que entusiasmam os usuários de JDKs mais novos.
- Não restringir ciclos de lançamento de bibliotecas, esquemas de versões ou escolhas ruins.
Motivação por Trás da Proposta
Ao explicar a motivação por trás da proposta, a proposta afirma que o modelo ponta e cauda é uma forma simplificada do modelo multi-trem, que permite que as bibliotecas atendam a uma base de usuários diversificada ao mesmo tempo em que adotam novos recursos Java. A ponta e cauda dá aos usuários focados na estabilidade o que eles precisam, ou seja, correções e patches, enquanto dá aos usuários que constroem novos sistemas o que eles querem, ou seja, recursos e aprimoramentos, em um ritmo mais rápido.
O modelo ponta e cauda manterá a Plataforma Java uma escolha atraente para novas aplicações, ao mesmo tempo em que salvaguarda o futuro das aplicações existentes, enfatiza a proposta.
Benefícios do Modelo Ponta e Cauda
Alguns dos principais benefícios do modelo ponta e cauda incluem:
- Permite que as bibliotecas Java atendam a uma base de usuários diversificada, com necessidades diferentes em termos de estabilidade e novos recursos.
- Dá aos usuários focados na estabilidade o que eles precisam (correções e patches) e aos usuários que constroem novos sistemas o que eles querem (recursos e aprimoramentos).
- Ajuda a manter o equilíbrio entre inovação rápida e estabilidade a longo prazo no ecossistema Java.
- Evita que os desenvolvedores de bibliotecas tenham que escolher entre oferecer suporte a usuários de JDKs mais antigos ou adotar novos recursos.
- Não restringe ciclos de lançamento, esquemas de versões ou escolhas ruins.
Implementação do Modelo Ponta e Cauda
A proposta detalha como o modelo ponta e cauda poderia ser implementado para bibliotecas Java. Alguns dos principais pontos incluem:
- As bibliotecas manteriam dois ramos de lançamento: "tip" e "tail".
- O ramo "tip" conteria novos recursos e correções de bugs, enquanto o ramo "tail" conteria apenas correções de bugs críticas.
- O mínimo possível de atualizações do ramo "tip" seria retroportado para o ramo "tail".
- Os desenvolvedores de aplicativos poderiam escolher usar o ramo "tip" ou "tail" de acordo com suas necessidades.
- O modelo ponta e cauda poderia ser aplicado tanto a bibliotecas de terceiros quanto às próprias bibliotecas da Oracle.
Conclusão
O modelo de "ponta e cauda" proposto pela Oracle para o desenvolvimento de bibliotecas Java parece ser uma abordagem promissora para equilibrar a necessidade de inovação rápida e a demanda por estabilidade no ecossistema Java. Ao separar os lançamentos em "tip" e "tail", a proposta visa atender às necessidades diversas dos desenvolvedores de aplicativos, mantendo a Plataforma Java atraente tanto para novos projetos quanto para aplicações existentes. À medida que a proposta for implementada e adotada, será interessante acompanhar os impactos no ecossistema Java a longo prazo.