O Oracle JDK terá que pagar. Quais são as opções agora?

O debate sobre a relevância do Java continua. Alguns dizem que está se tornando obsoleto e que idiomas mais avançados estão substituindo-o. Outros discordam, citando o número de especialistas que escolhem o Java de ano para ano como sua principal habilidade. De qualquer forma, não se pode ignorar o fato de que a maior parte do software existente é escrita em Java e os clientes, internos e externos, continuam a usá-lo. Nessa situação, novas implementações e notícias globais sobre Java não devem ser evitadas. Peter Verhas , desenvolvedor de software e arquiteto líder do escritório suíço do EPAM, compartilhou sua análise sobre as mudanças que a Oracle está introduzindo e como isso nos afetará.

imagem

Ultimamente, houve muitas mudanças no Java, e parece que a maneira como a linguagem evolui mudou fundamentalmente. É bom que novos recursos apareçam no idioma. Mas essas não são as únicas mudanças. A Oracle fez alterações significativas no modelo de suporte e no ciclo de atualização da versão Java lançada por esta empresa. Tudo isso levou a uma grande confusão causada por mudanças, informações erradas e mal-entendidos. Neste artigo, sumario tudo o que os usuários precisam saber sobre inovações antes de começarem a acreditar no fim apocalíptico do ecossistema Java.

No entanto, alguns pontos precisam ser esclarecidos primeiro.

A Oracle possui Java, mas Java não é Oracle. O código-fonte Java é liberado sob a licença GPLv2.0, com exceção do caminho de classe. De fato, isso significa que qualquer pessoa pode usar e fazer alterações no código fonte do idioma gratuitamente. Há apenas uma coisa que todo mundo, incluindo a Oracle, está proibido de fazer: fazer alterações no código e publicá-lo com uma licença de código fechado. Isso significa que o uso comercial de Java, apenas a versão paga, é legalmente impossível, mesmo que os interesses comerciais ou de marketing da Oracle o exijam. Mas ainda sou um especialista técnico. Para lidar com esse ponto, é 100% melhor fazer o download do texto da licença GPLv2 e consultar um advogado.
A Oracle não é a única empresa que libera assemblies Java e está envolvida no suporte; existem muitos outros fornecedores. Obviamente, a Oracle, como principal participante que investe mais no desenvolvimento da linguagem e das ferramentas, é a empresa comercial de maior prestígio para apoiá-lo.

De fato, a Oracle não possui direitos exclusivos, não apenas para o código-fonte Java. O processo de desenvolvimento, mudanças na definição de Java, API - tudo isso está nas mãos do Java Community Process, qualquer um pode entrar nele. Para indivíduos, isso é totalmente gratuito. Os membros desse grupo são empresas como Intel, IBM, Credit Suisse, Software AG e RedHat. Eles determinam o futuro do Java, não do Oracle. E eles têm sua própria opinião, como pudemos ver na última vez em que a aprovação da versão final do JPMS não foi bem-sucedida.

Após esta introdução, na qual decidimos que a Oracle é dona de Java, mas não é Java, vejamos as mudanças no procedimento de suporte ao desenvolvimento e no roteiro de Java que a Oracle introduziu.

Alterações após Java 9, 10, 11


A Oracle anunciou que a partir do JDK11, o Oracle JDK não será mais gratuito. E, a princípio, essa afirmação é assustadora. O que estamos acostumados a usar de graça não será mais esse. Na prática, o que "devemos pagar" é quase lógico. Mas a pequena palavra "quase" fica lá por uma razão. Se houver algum serviço que usamos, e ele deixou de ser gratuito, temos duas opções: pagar para usá-lo mais tarde ou não usá-lo mais. Devemos continuar usando o Oracle JDK ou podemos mudar para outra coisa? Essa é a verdadeira questão.

Para responder, você precisa entender o que é o Oracle JDK e quais alternativas existem. Outra mudança significativa diz respeito aos ciclos de lançamento das novas versões e ao conceito de suporte de longo prazo (Eng. - Long Term Support ou LTS). Primeiro, discutiremos as mudanças no ciclo de lançamento, depois a confusão com o Open JDK e, finalmente, a estrutura LTS.

Ciclo de Liberação


O Java apareceu em 1996. As primeiras versões do Java foram lançadas mais ou menos regularmente.

imagem

No entanto, observando o diagrama, vemos que a versão do Java 5.0 foi atrasada. O Java 6 também não teve pressa para a versão anterior, e a maior interrupção ocorreu entre o Java 6 e o ​​Java 7. Mesmo depois disso, novas versões não foram lançadas com muita frequência. O Java 8 recebeu muitos novos recursos, mas com o custo de dois anos de espera. As coisas eram parecidas com o Java 9, que, embora tivesse sofrido mudanças ainda maiores, foi forçado a esperar três anos inteiros.

O problema com esses ciclos de lançamento de atualizações é que um idioma que compete no mercado de idiomas em constante evolução não pode apresentar novos recursos com rapidez suficiente. Se levar três anos para desenvolver um sistema modular, nada poderá acelerar o processo. No entanto, algumas coisas que apareceram no Java 9 podem ter sido lançadas anteriormente. Mas eles simplesmente não conseguiram chegar aos desenvolvedores, pois não havia versões anteriores. As funções que já estavam disponíveis deveriam ter esperado pela aparência da função mais lentamente desenvolvida neste release. Esse é um dos problemas do modelo de desenvolvimento em cascata clássico.

A Oracle decidiu se tornar ágil e fazer versões a cada seis meses. A partir de setembro de 2017, novos lançamentos de Java podem ser esperados em março e setembro. Se alguma função não estiver pronta para essas datas, ela será transferida para a próxima versão, mas as demais, quando estiverem prontas, cairão nas mais recentes.

Em geral, isso é normal. Por um lado, a comunidade Java e os desenvolvedores devem estar felizes com isso. Por outro lado, a questão do apoio permanece. Quem pode suportar tantas versões do Java? É por isso que o apoio a longo prazo (LTS) foi introduzido, sobre o qual falaremos em breve. Mas, primeiro, você ainda precisa esclarecer o que são Oracle JDK e OpenJDK.

O que eram e se tornaram Oracle JDK e OpenJDK


Até o Java 9, havia uma versão binária do assembly Java Java Oracle (Sun Microsystems), que era usado no ambiente de produção pela maioria dos desenvolvedores e empresas. Esse binário foi baseado em Java de código aberto e continha algumas melhorias - ferramentas corporativas adicionais, como o Java Flight Recorder, o Java Mission Control e alguns outros recursos, como o compartilhamento de dados de classes de aplicativos.

O assembly OpenJDK foi criado a partir de Java de código aberto, no qual não houve melhorias. Esse assembly Java foi usado por aqueles que queriam experimentar propriedades Java, alterar o código ou simplesmente por qualquer motivo que aderissem ao código-fonte aberto. Embora você deva ter baixado o código fonte e compilado por si mesmo.

A partir do Java 9, a Oracle começou a fornecer o OpenJDK em paralelo com o Oracle JDK. A empresa também anunciou que deseja diminuir a distância entre os recursos, o desempenho e a estabilidade das duas versões e, uma vez que isso aconteça, faça o Oracle JDK pago. Naquela época, o OpenJDK e o Oracle JDK estavam disponíveis gratuitamente como assemblies binários da Oracle. Estes eram Java 9 e Java 10.

Após o lançamento do Java 11, isso parou. O OpenJDK ainda está disponível gratuitamente, mas o Oracle JDK para sistemas de produção foi pago. Não há mais nenhuma diferença significativa entre as duas versões. A versão comercial possui um instalador, enquanto o OpenJDK possui apenas um arquivo ZIP. Existem outras diferenças, mas os usuários de Java não devem prestar atenção a elas. Uma lista tecnicamente detalhada das diferenças é descrita por Donald Smith, diretor sênior de gerenciamento de produtos da Oracle neste artigo .

Além disso, o Oracle JDK ainda é gratuito para outros usuários, mesmo comerciais. O Oracle JDK pode ser usado livremente para:

Desenvolvimento
• teste
• prototipagem
• manifestações

Você pode usar o OpenJDK para outros fins ou pagar o Oracle, usar o Oracle JDK e obter suporte. O apoio é bom.

Lançamentos de suporte a longo prazo


A transição para um novo ciclo de lançamento de versão a cada seis meses levantou uma questão de suporte. Ninguém pode suportar tantas versões para seu próprio benefício. Se você instalou o Java 6 para seu aplicativo em 2007, poderá obter suporte da Oracle em 11 anos. O lançamento de novas versões a cada seis meses implica o suporte de 22 versões diferentes simultaneamente. Isso seria um fardo pesado para a Oracle ou qualquer outro fornecedor que decida oferecer suporte a todos os lançamentos.

A estratégia da Oracle é identificar uma versão a cada três anos que receberá suporte a longo prazo. O primeiro desses lançamentos foi o Java 11, e será suportado até 2026. Durante esse período, o Java 17 também será lançado em setembro de 2021, que receberá suporte de sete anos a longo prazo, de acordo com os planos atuais. Todos os outros chamados releases funcionais serão suportados apenas até o lançamento da próxima versão.

imagem

Observe que o suporte se aplica apenas ao Oracle JDK e somente àqueles que pagaram pelo JDK e pelo suporte. Mas não pense que você foi deixado à mercê do destino se planeja usar o OpenJDK. Para nós, nada mudou. Se você não pagou pelo suporte antes, não o recebeu de qualquer maneira. Se você pagou, continuará pagando e obterá esse suporte.

Aqui está um link para um artigo da Oracle com previsões de final de vida útil para diferentes versões.

Haverá novas versões para o OpenJDK? Claro. Anteriormente, eram lançadas atualizações de código aberto do Java que corrigiam bugs, embora não houvesse garantia de que seriam lançadas. Isso aconteceu simplesmente porque todos os participantes estavam interessados ​​nisso. No futuro, tudo permanecerá como antes, o Java receberá novas versões, novos conjuntos.

Vejo três estratégias principais para escolher qual versão do Java é melhor instalar:

  1. Pague o Oracle for Oracle JDK e a assinatura e use versões com suporte a longo prazo. É isso que grandes empresas comerciais que usam a infraestrutura Java devem fazer para atender aos requisitos de confiabilidade.
  2. Alterne para o OpenJDK, use apenas releases com suporte a longo prazo e instale as versões de correção de erros disponíveis para o OpenJDK. Essa é uma solução viável para empresas que não podem ou não desejam alterar o custo da infraestrutura Java, poderiam ficar sem suporte comercial no passado e acreditam que também podem fazê-lo a longo prazo.
  3. Alterne para o OpenJDK e instale releases subsequentes a cada seis meses, assim que eles aparecerem. Esta é uma opção para empresas que precisam das soluções tecnológicas mais recentes.

As estratégias também podem ser combinadas instalando versões diferentes do Java em máquinas diferentes. Não importa o que você escolher, você pode baixar versões binárias da pré-compilação nos seguintes sites:

  • Versões binárias do OpenJDK pré-compilado adoptopenjdk.net
  • O Oracle JDK está disponível em java.oracle.com . Aqui você pode clicar no Java SE 11 para acessar a página de download e acessar o botão de download. Há um grande aviso amarelo na página; você também precisará clicar no contrato com os termos da licença antes que o link para download fique disponível. E desta vez, é melhor realmente ler os termos, e não apenas concordar automaticamente.

Embora esse não seja um download binário, está intimamente relacionado ao download do Oracle JDK - você também pode visitar www.oracle.com/java/java-se-subscription.html para obter o Oracle JDK e suporte em um pacote. Informações detalhadas sobre preços estão disponíveis em www.oracle.com/us/corporate/pricing/lice/price-lists/java-se-subscription-pricelist-5028356.pdf . Para os impacientes, copiei aqui as informações de preço das Perguntas frequentes oficiais da Oracle:

“O custo da versão para desktop é de US $ 2,50 por usuário por mês ou menos, se houver descontos por volume em vários níveis. Consulte a Tabela de Preços de Assinaturas do Oracle Java SE para obter mais informações. ”

Sumário


O que você faz Você usa o OpenJDK ou paga pelo Oracle JDK? É uma questão de rentabilidade e quão importante é o suporte da Oracle para você. Se sua empresa não pode oferecer suporte ao Oracle JDK, porque você é uma startup, uma estrela em ascensão com uma brilhante ideia de produto, mas com um buraco no bolso, o OpenJDK atende às suas necessidades. Você não precisa pagar por isso. Além disso, se você é uma startup, não é tão crítico para você se seus servidores não funcionarão por várias horas até que os especialistas técnicos resolvam o problema. Se você não puder pagar o tempo de inatividade, provavelmente está trabalhando em uma empresa madura e, portanto, deve usar o Oracle JDK e se inscrever para obter suporte. Você também pode optar por combinar modelos diferentes e instalar em alguns servidores do produto que devem estar disponíveis 24/7, Oracle JDK e OpenJDK em aplicativos internos que não são tão críticos para os negócios.

Em qualquer caso, você pode continuar usando o Java ainda mais.

Sobre o autor:

Peter Verhas trabalha no escritório suíço do EPAM. Peter desenvolve software para clientes, fornece treinamento para programadores e mentores dentro da empresa.

Você pode seguir Peter no Twitter , LinkedIn e GitHub . O autor também possui um blog, “Java deep”: javax0.wordpress.com

Source: https://habr.com/ru/post/pt430084/


All Articles