quarta-feira, 8 de setembro de 2021

🚀 Apresentando o Java SE 10

🚀 Apresentando o Java SE 10

Nos últimos 22 anos, o Java cresceu até se tornar uma comunidade vibrante que atingiu uma escala sem igual. O Java continua a trazer valor para desenvolvedores e empresas em todo o mundo. Um planejamento cuidadoso e o envolvimento do ecossistema ajudaram o Java a se tornar uma das linguagens de programação mais usadas do planeta. Com mais de 12 milhões de desenvolvedores em todo o mundo executando Java, ele continua sendo a linguagem de programação número 1 escolhida por programadores de software. Daqui para frente, o objetivo é garantir que o Java esteja bem posicionado para o desenvolvimento moderno e o crescimento na nuvem.


Em 2017, foi anunciada a intenção de mudar para um novo ciclo de lançamentos de seis meses para o Java, com o objetivo de reduzir a latência entre os lançamentos principais. Ao mesmo tempo, foram anunciados os planos para construir e distribuir binários do OpenJDK. Este modelo de lançamento é inspirado nos modelos de lançamento usados por outras plataformas e por várias distribuições de sistemas operacionais, atendendo ao cenário moderno de desenvolvimento de aplicativos. O ritmo da inovação está acontecendo em uma taxa cada vez maior, e este novo modelo de lançamento permitirá que os desenvolvedores aproveitem novos recursos em produção o mais rápido possível. O desenvolvimento moderno de aplicativos espera um licenciamento aberto simples e um ritmo previsível baseado no tempo, e o novo modelo de lançamento atende a ambos.


Com isso, temos o prazer de anunciar a disponibilidade geral do Java 10, o primeiro lançamento com prazo definido como parte do novo ciclo de lançamentos de seis meses. Esta versão é mais do que uma simples correção de estabilidade e desempenho em relação ao Java SE 9; na verdade, ela introduz doze novos aprimoramentos definidos através das JDK Enhancement Proposals (JEPs) que os desenvolvedores podem começar a usar imediatamente:

⚙️ Principais Aprimoramentos (JEPs)

  • (JEP 286) Inferência de Tipo para Variáveis Locais: Estende a inferência de tipo para declarações de variáveis locais com inicializadores. Ele introduz
    var
    no Java, algo comum em outras linguagens.
  • (JEP 296) Consolidar a Floresta JDK em um Único Repositório: Combina os numerosos repositórios da floresta JDK em um único repositório para simplificar e agilizar o desenvolvimento.
  • (JEP 204) Interface do Coletor de Lixo: Melhora o isolamento do código-fonte de diferentes coletores de lixo, introduzindo uma interface de coletor de lixo (GC) limpa.
  • (JEP 307) GC Completo Paralelo para o G1: Melhora as latências do pior caso do G1 tornando a coleta de lixo (GC) completa paralela.
  • (JEP 301) Compartilhamento de Dados de Classe de Aplicativo: Para melhorar a inicialização e a pegada de memória, estende o recurso existente de Compartilhamento de Dados de Classe ("CDS") para permitir que classes de aplicativo sejam colocadas no arquivo compartilhado.
  • (JEP 312) Aperto de Mãos Local por Thread: Introduz uma maneira de executar um callback em threads sem executar um ponto seguro global da VM. Torna possível e barato parar threads individuais, e não apenas todos os threads ou nenhum.
  • (JEP 313) Remover a Ferramenta Geradora de Cabeçalho Nativo: Remove a ferramenta
    javah
    do JDK, uma vez que ela foi superada por funcionalidades superiores no
    javac
    .
  • (JEP 314) Extensões Adicionais de Tag de Idioma Unicode: Aprimora
    java.util.Locale
    e APIs relacionadas para implementar extensões Unicode adicionais de tags de idioma BCP 47.
  • (JEP 316) Alocação de Heap em Dispositivos de Memória Alternativos: Permite que a HotSpot VM aloque o heap de objetos Java em um dispositivo de memória alternativo, como um NV-DIMM, especificado pelo usuário.
  • (JEP 317) Compilador JIT Experimental Baseado em Java: Permite que o compilador JIT baseado em Java, Graal, seja usado como um compilador JIT experimental na plataforma Linux/x64.
  • (JEP 319) Certificados Raiz: Fornece um conjunto padrão de certificados de Autoridade de Certificação (CA) raiz no JDK.
  • (JEP 322) Versionamento de Lançamento Baseado em Tempo: Revisa o esquema da string de versão da Plataforma Java SE e do JDK, e informações de versionamento relacionadas, para os modelos de lançamento baseados em tempo atuais e futuros.

🌍 O Ecossistema Java

O ecossistema Java continua a ser uma coleção diversificada de desenvolvedores e sua participação contínua é bem-vinda para ajudar a moldar o futuro do Java.