Neste post, vamos explorar as diferenças entre o openJDK e o JAVA Oracle, que são duas implementações da plataforma Java Standard Edition. Primeiro, vamos ver o que é cada um deles, e depois vamos compará-los. Por fim, vamos listar outras implementações do JDK.
O que é o openJDK?
O openJDK é uma implementação de software livre da plataforma Java Standard Edition, com contribuição da Oracle e da comunidade Java aberta. Ele foi lançado inicialmente em 2007, como resultado do desenvolvimento que a Sun Microsystems iniciou em 2006. Devemos enfatizar que o openJDK é uma implementação de referência oficial de uma edição padrão do Java desde a versão SE 7. Inicialmente, ele era baseado apenas no JDK 7, mas desde o Java 10, a implementação de referência de código aberto da plataforma Java SE é responsabilidade do projeto JDK. E, assim como para a Oracle, o projeto JDK também entregará novos lançamentos de recursos a cada seis meses.
O que é o JAVA Oracle?
O JAVA Oracle é a implementação do Java Development Kit (JDK) pela empresa Oracle, que adquiriu a Sun Microsystems em 2010. Antes disso, o nome era SUN JDK, e era a implementação oficial da linguagem de programação Java. O JAVA Oracle é uma implementação de código fechado, com suporte comercial de produtos da Oracle. Ele é licenciado sob o Oracle Binary Code License Agreement, que permite o uso gratuito para fins de desenvolvimento e teste, mas requer uma licença paga para uso em produção. O JAVA Oracle também é baseado no código-fonte do openJDK, mas adiciona alguns componentes proprietários ou de terceiros, como o plugin Java e o WebStart Java, um rasterizador de gráficos, o Rhino (um mecanismo JavaScript), e algumas fontes adicionais ou documentação.
Quais são as diferenças entre o openJDK e o JAVA Oracle?
As principais diferenças entre o openJDK e o JAVA Oracle são:
- A licença: o openJDK é liberado sob a licença GPL v2, que é uma licença de software livre que garante a liberdade de usar, modificar e distribuir o código-fonte. O JAVA Oracle é liberado sob a licença Oracle Binary Code License Agreement, que é uma licença proprietária que restringe o uso do software em certas condições.
- Os componentes adicionais: o openJDK contém apenas os componentes essenciais para executar aplicações Java, enquanto o JAVA Oracle inclui alguns componentes extras que podem melhorar a performance, a funcionalidade ou a compatibilidade do software. Alguns desses componentes são exclusivos da Oracle, enquanto outros são de terceiros.
- O suporte: o openJDK é mantido pela comunidade Java aberta, que inclui desenvolvedores voluntários e empresas como a Red Hat, a IBM e a Amazon. O JAVA Oracle é mantido pela Oracle, que oferece suporte comercial para seus clientes pagantes. Além disso, a Oracle define quais versões do Java são as versões de suporte de longo prazo (LTS), que recebem atualizações gratuitas por mais tempo. As versões LTS atuais são o Java SE 8 e o Java SE 17.
Quais são as vantagens e desvantagens de cada um?
A escolha entre o openJDK e o JAVA Oracle depende das necessidades e preferências de cada usuário ou desenvolvedor. Algumas vantagens e desvantagens de cada um são:
- O openJDK tem a vantagem de ser gratuito e de código aberto, o que significa que ele pode ser modificado e distribuído livremente, sem restrições legais ou financeiras. Ele também tem a vantagem de ser a implementação de referência oficial do Java SE, o que garante que ele segue os padrões e especificações da plataforma. Além disso, ele tem a vantagem de ter uma comunidade ativa e diversa, que contribui com melhorias e correções para o código-fonte.
- O openJDK tem a desvantagem de ter uma qualidade variável entre as diferentes versões e distribuições, pois cada fornecedor pode fazer suas próprias modificações e otimizações. Ele também tem a desvantagem de ter um suporte limitado para algumas funcionalidades ou plataformas, pois ele depende da disponibilidade de componentes de código aberto. Por exemplo, o openJDK não suporta oficialmente o Windows XP ou o macOS 10.10 ou anteriores. Além disso, ele tem a desvantagem de ter uma vida útil mais curta para as versões não LTS, que recebem atualizações gratuitas apenas por seis meses.
- O JAVA Oracle tem a vantagem de ter uma qualidade consistente e testada, pois ele é produzido pela empresa que lidera o desenvolvimento do Java. Ele também tem a vantagem de ter um suporte abrangente para diversas funcionalidades e plataformas, pois ele inclui componentes proprietários ou de terceiros que podem melhorar a experiência do usuário. Por exemplo, o JAVA Oracle suporta o plugin Java e o WebStart Java, que permitem executar aplicações Java no navegador ou fora dele. Além disso, ele tem a vantagem de ter uma vida útil mais longa para as versões LTS, que recebem atualizações gratuitas por três anos.
- O JAVA Oracle tem a desvantagem de ser pago e de código fechado, o que significa que ele não pode ser modificado ou distribuído livremente, sem violar os termos da licença. Ele também tem a desvantagem de ter uma dependência da Oracle, que pode mudar as políticas ou as condições de uso do software a qualquer momento. Por exemplo, a Oracle deixou de oferecer atualizações gratuitas para o Java SE 8 em janeiro de 2019, e passou a exigir uma licença paga para uso em produção. Além disso, ele tem a desvantagem de ter uma compatibilidade limitada com algumas implementações de código aberto do Java, pois ele pode conter componentes exclusivos ou proprietários.
Quais são as outras implementações do JDK?
Além do openJDK e do JAVA Oracle, existem outras implementações do JDK que são baseadas no código-fonte do openJDK, mas que podem oferecer algumas características distintas. Algumas delas são:
- Amazon Corretto: é uma distribuição gratuita, multiplataforma e pronta para produção do openJDK, mantida pela Amazon. Ela oferece suporte prolongado para as versões LTS do Java, além de correções de segurança e performance. Ela também é compatível com o JAVA Oracle e com outras distribuições do openJDK.
- Azul Zulu: é uma distribuição gratuita e certificada do openJDK, mantida pela Azul Systems. Ela oferece suporte para diversas versões e plataformas do Java, incluindo Windows, Linux, macOS, Solaris e Docker. Ela também oferece atualizações regulares e patches críticos.
- Adoptium: é uma distribuição gratuita e comunitária do openJDK, mantida pela Eclipse Foundation. Ela oferece suporte para as principais versões e plataformas do Java, incluindo Windows, Linux, macOS e Docker. Ela também oferece testes rigorosos e certificação TCK (Technology Compatibility Kit).
Conclusão
Neste post, vimos as diferenças entre o openJDK e o JAVA Oracle, que são duas implementações da plataforma Java Standard Edition. Vimos que o openJDK é uma implementação de software livre e de código aberto, enquanto o JAVA Oracle é uma implementação paga e de código fechado. Vimos também que cada um tem suas vantagens e desvantagens, dependendo das necessidades e preferências dos usuários ou desenvolvedores. Por fim, vimos que existem outras implementações do JDK que são baseadas no código-fonte do openJDK, mas que podem oferecer algumas características distintas.
Esperamos que este post tenha sido útil para você entender melhor as diferenças entre o openJDK e o JAVA Oracle. Se você gostou deste post, compartilhe com seus amigos e deixe seu comentário abaixo.
Referências: