quarta-feira, 8 de setembro de 2021

🚀 Apresentando o Java SE 11

Baixe o Java 11

O tempo voa! Nos últimos meses, foram anunciadas mudanças para evoluir a plataforma Java, garantindo que ela continue avançando com um futuro promissor para os usuários. Esses avanços incluíram:


Acelerando o Ritmo e a Previsibilidade das Entregas

Desde o lançamento do Java 9, a plataforma Java mudou para um ciclo de lançamento de seis meses, permitindo que os desenvolvedores tenham acesso mais rápido a melhorias contínuas. Os lançamentos agora ocorrem em março e setembro de cada ano, o que significa que não é mais necessário tentar absorver centenas de mudanças a cada dois anos de uma só vez – em vez disso, as mudanças são entregues em um ritmo mais mensurado e previsível.


Tornando o Java Ainda Mais Aberto

Para melhorar a produtividade dos desenvolvedores, recursos comerciais anteriormente acessíveis apenas com uma licença paga foram disponibilizados como código aberto. Isso cria maior alinhamento e intercambialidade entre as versões do Oracle JDK e do Oracle OpenJDK. Recursos comerciais anteriores agora disponíveis no OpenJDK incluem Application Class Data Sharing, o Project ZGC, o Java Flight Recorder (JFR) e o Java Mission Control (JMC). Mais recentemente, foram anunciados planos para disponibilizar a tecnologia JMC como um download separado para atender tanto aos usuários do OpenJDK quanto do Oracle JDK.


Introduzindo a Assinatura Java SE

Foi anunciada a Java SE Subscription, um novo modelo que cobre todas as necessidades de licenciamento e suporte do Java SE para dar ainda mais suporte aos milhões de empresas em todo o mundo que executam Java em produção. A assinatura complementa a oferta gratuita de longa data do Oracle OpenJDK, que atende desenvolvedores e organizações que não precisam de suporte comercial.


🆕 O Java 11 já está disponível

Com seis meses desde o Java 10 (o primeiro lançamento de recursos como parte do ciclo de seis meses), o Java 11 já está disponível.

O Oracle fornece o JDK não apenas sob a versão Oracle OpenJDK usando a licença de código aberto GNU General Public License v2, com a Classpath Exception (GPLv2+CPE), mas também sob uma licença comercial para quem usa o Oracle JDK como parte de um produto ou serviço Oracle, ou que não deseja usar software de código aberto. Estas substituem a histórica licença "BCL", que tinha uma combinação de termos comerciais gratuitos e pagos.

Isso significa que os usuários podem obter o Java 11 de acordo com suas necessidades:

  • Java 11 é uma versão de suporte de longo prazo (LTS). Isso significa que usuários mais conservadores com a adoção da plataforma e que exigem suporte de longo prazo podem licenciar os binários do Oracle JDK por meio da oferta Java SE Subscription. Permite que os usuários recebam atualizações na versão LTS do Java 11 por pelo menos oito anos. A assinatura fornece acesso a atualizações testadas e certificadas de desempenho, estabilidade e segurança para o Java SE, diretamente da Oracle. Também inclui acesso ao My Oracle Support (MOS) 24x7, suporte em 27 idiomas, recursos de gerenciamento, monitoramento e implantação do Java SE 8 Desktop, entre outros benefícios.
  • Usuários que preferem acesso rápido a novos aprimoramentos podem continuar usando a versão Oracle OpenJDK. Como foi o caso do Java 9 e Java 10, os usuários desta versão obtêm builds OpenJDK de código aberto, totalmente testadas e fornecidas pela Oracle.

🌟 Principais Aprimoramentos do Java 11

Dezessete aprimoramentos foram entregues no Java 11, incluindo mais notavelmente:

JEP 321 – Cliente HTTP (Padrão)

Este JEP padroniza a API de Cliente HTTP incubada introduzida no JDK 9, via JEP 110, e atualizada no JDK 10.

JEP 332 – Transport Layer Security (TLS) 1.3

O TLS 1.3 é uma grande reformulação do protocolo TLS e fornece melhorias significativas de segurança e desempenho em relação às versões anteriores.

JEP 328 – Java Flight Recorder (JFR)

O JFR fornece um mecanismo de gravação de alto desempenho e uma estrutura de coleta de dados de baixa sobrecarga para solução de problemas de aplicativos Java críticos.

// Exemplo de código com o JFR (conceitual)
// O JFR permite iniciar gravações para diagnóstico
try (Recording recording = new Recording()) {
    recording.start();
    // Seu código da aplicação aqui
    recording.stop();
    recording.dump(Paths.get("my-recording.jfr"));
}

JEP 333 – Project ZGC

O ZGC é um coletor de lixo (GC) experimental, mas previsível e de baixa latência, que pode lidar com heaps que variam de relativamente pequenos (algumas centenas de megabytes) a muito grandes (muitos terabytes) de tamanho.

JEP 330 – Executar Programas de Código-Fonte de Arquivo Único

Este aprimoramento simplifica a "entrada" para novos usuários Java, melhorando o launcher java para executar um programa fornecido como um único arquivo de código-fonte Java, incluindo o uso dentro de um script e/ou técnicas relacionadas. Por exemplo, um arquivo chamado HelloWorld.java contendo:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Olá, mundo!");
    }
}

Agora pode ser executado diretamente com:

java HelloWorld.java

🔮 Olhando para o Futuro

Agora que o Java 11 está geralmente disponível, o desenvolvimento mudou para o próximo lançamento de recursos de seis meses, na forma do Java 12, atualmente com duas melhorias direcionadas e mais a serem adicionadas à medida que o trabalho for concluído.

Com 12 milhões de desenvolvedores em todo o mundo usando Java, o Java continua sendo a linguagem de programação número 1 escolhida pelos programadores de software. E como o Java 11 demonstra, por meio de um planejamento contínuo e cuidadoso e do envolvimento do ecossistema, a plataforma Java está bem posicionada para o desenvolvimento moderno e o crescimento na nuvem.