JavaRush /Blogue Java /Random-PT /A que levará o lançamento frequente de novas versões do J...

A que levará o lançamento frequente de novas versões do JDK?

Publicado no grupo Random-PT
É uma era de mudanças para Java. As versões do JDK agora serão lançadas de acordo com um cronograma, e não conforme novas funcionalidades forem disponibilizadas. Essa abordagem tem seus prós e contras, mas como essas mudanças afetarão o JDK 8? Simon Ritter, renomado evangelista Java, Java Champion e CTO associado da Azul Systems, explica por que o “novo Java dentro do cronograma” é uma troca entre estabilidade, segurança e custo.
A que levará o lançamento frequente de novas versões do JDK - 1
Em 2018, mudanças significativas aguardam o mundo Java. Conforme anunciado no ano passado, estamos migrando para o lançamento de versões do JDK de forma programada, em vez de lançar versões à medida que novas funcionalidades se tornam disponíveis. Esta é uma ótima notícia porque agora novos recursos serão incluídos nos lançamentos assim que estiverem prontos e os desenvolvedores terão acesso a eles muito mais rapidamente. O lançamento do JDK 10 está previsto para março e já entramos na segunda fase de correção de bugs, então tudo está indo conforme o planejado. A Solicitação de Especificação Java (JSR) já está em desenvolvimento ativo e disponível para comentários públicos. Existem até propostas de aprimoramento do JDK (JEPs) já direcionadas ao JDK 11 . Parece que o Java está indo muito bem.

Os tempos mudam

No entanto, existem muitas outras mudanças associadas a este calendário de lançamentos que se manifestarão este ano e podem não ser tão agradáveis. Ao longo de 22 anos e meio, conseguimos habituar-nos ao facto de o Java, enquanto plataforma, possuir três propriedades fundamentais relacionadas diretamente com a forma como é suportado.
  1. Estabilidade . Anteriormente, os recursos adicionados com uma nova versão do JDK, embora exaustivamente testados, exigiam testes em produção. Isto ajudou a identificar deficiências que precisavam de correção. Para garantir que os usuários pudessem continuar trabalhando com compilações estáveis ​​enquanto testavam uma nova, as atualizações sempre eram parcialmente sobrepostas no tempo.

    Se olharmos para os últimos lançamentos começando com o JDK 6, vemos que as atualizações para o JDK 5 continuaram a ser lançadas por quase mais 3 anos (2 anos e 11 meses para ser exato). Com a introdução do JDK 7, as atualizações públicas do JDK 6 foram lançadas por um ano e 9 meses. E as atualizações para o JDK 7 foram lançadas 13 meses após o lançamento do JDK 8.


  2. Segurança . As equipes de desenvolvimento e suporte do OpenJDK, a Oracle e, antes delas, a Sun Microsystems (a empresa que criou o Java, nota do editor) sempre colocaram a segurança da plataforma em primeiro plano. Como você se lembra, o Java foi originalmente planejado para dispositivos móveis (em particular, PDAs Star7).



    Um dos principais objetivos de desenvolvimento era garantir que o código pudesse ser transferido pela rede e executado com segurança. As atualizações são publicadas regularmente para o JDK, incluindo patches para problemas de segurança descobertos. Se você instalar essas atualizações imediatamente após serem lançadas, você estará completamente seguro.


  3. Custo zero . Uma das grandes vantagens do Java é que ele sempre foi uma plataforma gratuita, mesmo antes de ser lançado como software de código aberto em 2006. Havia certas restrições sobre onde o Java poderia ser usado sem royalties, mas isso sempre se aplicava a aplicativos móveis e incorporados; para clientes desktop e servidores corporativos, a versão atual do Java sempre foi gratuita. Uma das mudanças já em andamento no JDK é o lançamento de executáveis ​​OpenJDK sob a licença GPLv2 com a exceção “Classpath”. Esta licença não impõe nenhuma restrição sobre como você pode implementar o Java Runtime Environment.

No entanto, as mudanças na forma como o JDK é desenvolvido e lançado exigem uma consideração cuidadosa dos planos de migração de aplicativos para novas versões do Java. Com este novo cronograma de lançamentos, os esforços para garantir que as atualizações estejam disponíveis para vários lançamentos anteriores podem não ser viáveis. Para atender às necessidades de dois grupos distintos de usuários (aqueles que exigem novos recursos rapidamente e aqueles que valorizam a estabilidade a longo prazo), a Oracle decidiu migrar para um modelo de suporte de longo prazo (LTS). Versões específicas do JDK serão consideradas lançamentos LTS, o que significa que receberão atualizações por três anos. Todas as outras versões intermediárias são chamadas de versões de recursos e recebem atualizações por apenas 6 meses. Para se manter sincronizado com este novo sistema, o JDK 8 foi classificado como uma versão LTS. O próximo lançamento será o JDK 11, previsto para setembro de 2018. A maior mudança que este novo modelo traz é que as atualizações entre os lançamentos não se sobreporão mais no tempo . Eu coloquei especificamente em negrito e itálico porque isso estava absolutamente claro. Aqui está um gráfico que mostra a disponibilidade de atualizações para versões do JDK até o JDK 19.
A que levará o lançamento frequente de novas versões do JDK - 2?
Na figura: Ciclo de vida do Java SE – cronograma de mais de 5 anos Atualizações públicas sobreposição zero ("suporte Cliff") Oracle Commercial Support Oracle Extended Commercial Support
Ciclo de vida do Java SE - Programação de mais de 5 anos de atualizações públicas Sobreposição de tempo zero Executáveis ​​públicos da Oracle (sem suporte) Suporte comercial da Oracle Suporte comercial estendido da Oracle
Como consequência direta dessas mudanças, a plataforma Java ainda é estável, segura e gratuita, mas agora é preciso escolher dois desses três recursos. Em futuras implantações Java, todas as três propriedades não estarão disponíveis ao mesmo tempo.

Deixe-me explicar um pouco mais

Digamos que você esteja preocupado com a segurança (como deveria), mas não quer gastar dinheiro. Nesse caso, você precisa migrar para as novas versões do JDK assim que forem lançadas. Nos casos em que o suporte não se sobrepõe no tempo (lançamentos de recursos e LTS), você terá que fazer isso para receber novas correções de segurança. Infelizmente, sem uma sobreposição de tempo, você terá que migrar imediatamente para versões do JDK que ainda não foram testadas em produção, portanto você perderá a estabilidade anterior. Outra opção é optar pela estabilidade a custo zero. Novamente, isso é possível: tudo o que você precisa fazer é continuar usando a versão LTS anterior após o lançamento da nova. Você obtém a mesma estabilidade, não precisa pagar nada, mas não receberá nenhum patch de segurança, pois eles não estão mais disponíveis para esta versão. Finalmente, se você quer estabilidade e segurança, você tem que pagar. Você pode continuar a usar a versão LTS anterior, mas o acesso à segurança e às correções de bugs só estará disponível por meio de um contrato de suporte comercial.

E um pequeno bloco publicitário do autor :)

A Azul (minha empresa) criou um conjunto de executáveis ​​OpenJDK sob a marca Zulu Enterprise, construídos a partir do código-fonte, testados com benchmarks TCK/JCK e até analisados ​​com utilitários que desenvolvemos para garantir que não haja corrupção de código-fonte aberto devido a arquivos de cabeçalho incorretos . Oferecemos a oportunidade de baixar gratuitamente a versão atual, bem como suporte comercial aos interessados. Recentemente, começamos a oferecer um novo conjunto de opções de suporte para Zulu, com o objetivo de oferecer flexibilidade máxima aos clientes. Queremos fornecer aos usuários a capacidade de migrar para uma nova versão do JDK que atenda às necessidades de seus negócios e clientes. Para isso, disponibilizamos três opções de suporte:
  1. Apoio de curto prazo (STS). O STS oferece aos usuários acesso mais rápido aos novos recursos Java, com suporte suficiente para uma transição tranquila para versões mais recentes do JDK. Zulu Enterprise fornece versões STS com acesso a correções de bugs, atualizações de segurança e outras correções conforme necessário (“suporte de produção”) por 12 meses, além de 6 meses de suporte adicional focado em suporte de consultoria e ajuda aos usuários migrar para uma versão mais recente do JDK ("suporte estendido"). Isso equivale a um ciclo de vida de 18 meses.

  2. Apoio de médio prazo (MTS). As versões MTS permitem que você use novos recursos disponíveis em versões de recursos em produção sem ter que esperar por uma nova versão LTS. A Azul planeja um lançamento MTS por ano entre os lançamentos LTS e fornece suporte de produção por 18 meses após a próxima data de lançamento LTS de disponibilidade geral. Isso garante sobreposição de tempo e uma transição “suave” durante a implantação da produção. Após o término do suporte à produção, serão fornecidos mais 12 meses de suporte estendido.

  3. Suporte de longo prazo (LTS). Ele é fornecido para versões consideradas LTS pela comunidade OpenJDK e fornece 8 anos de suporte de produção com mais dois anos de suporte estendido.
Aqui está outro desenho para deixar mais claro.
A que levará o lançamento frequente de novas versões do JDK - 3?
Na figura: Ciclo de vida do Java SE – cronograma de mais de 5 anos Oracle Binários disponíveis publicamente (sem suporte) Suporte Comercial Oracle Suporte Comercial Estendido Oracle Suporte Comercial de Produção Azul Zulu Suporte Comercial Estendido (Passivo) Azul Zulu
Ciclo de vida do Java SE - Programação de mais de 5 anos Executáveis ​​públicos da Oracle (sem suporte) Suporte comercial da Oracle Suporte comercial estendido da Oracle Suporte à produção comercial da Azul Zulu Suporte comercial estendido (passivo) da Azul Zulu
Se você estiver usando o JDK 8 sem um contrato de suporte comercial e estiver mantendo seu sistema estável e seguro por meio de atualizações públicas, você pode querer pensar no que fará a partir de setembro. A Azul está empenhada em ajudá-lo com isso, então não hesite em nos contatar se precisar de suporte.

conclusões

Vários aspectos da plataforma Java estão mudando este ano, a maioria deles para melhor. Acesso mais rápido a novos recursos, lançamento aberto de utilitários como Flight Recorder e Mission Control, lançamento de executáveis ​​OpenJDK sob a licença GPLv2 com a exceção "Classpath". A triste verdade, porém, é que o habitual e generoso suporte gratuito para a plataforma Java está se tornando coisa do passado. Java ainda é estável, seguro e gratuito. Quais dessas três qualidades são mais importantes para você e seus usuários?
A que levará o lançamento frequente de novas versões do JDK - 4?

Sobre o autor

Simon Ritter é Diretor Técnico Adjunto da Azul Systems. Simon está no ramo de TI desde 1984 e é bacharel em Física pela Brunel University, no Reino Unido.

Simon ingressou na Sun Microsystems em 1996 e passou um tempo trabalhando em desenvolvimento Java e consultoria. Desde 1999, ele vem demonstrando tecnologias Java para desenvolvedores, com foco tanto na plataforma Java central quanto em aplicativos clientes e incorporados. Agora na Azul Systems, ele continua ajudando as pessoas a entender melhor os produtos Java e JVM da Azul. Você pode segui-lo no Twitter: @speakjava .

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION