Oracle anuncia linguagem de programação Java 19

Oracle lança o Java 20
Oracle anuncia linguagem de programação Java 19

A Oracle anunciou a disponibilidade do Java 19 e do Oracle JDK 19 para desenvolvedores. Então, estas são as versões mais recentes do que é sem dúvida a linguagem de programação mais popular do mundo. Portanto, a Oracle anuncia linguagens de programação Java 19.

O JDK (Java Development Kit) 19 chega cerca de seis meses após o Java 18 e exatamente um ano após o Java 17 – a versão mais recente de suporte de longo prazo (LTS) do Java.

Com o lançamento do Java 17, a Oracle anunciou planos para mover as versões do JDK LTS de três em três anos para a cada dois anos, o que significa que a próxima versão do LTS será o Java 21 em setembro de 2023. 

A versão de código aberto do JDK 19 OpenJDK 19 também está disponível na Oracle sob a GNU General Public License, versão 2, com a exceção Classpath.

Oracle anuncia linguagem de programação Java 19

Oracle anuncia linguagem de programação Java 19

A Oracle agora lança novas versões do Java a cada seis meses em março e setembro com o objetivo de fornecer aos desenvolvedores atualizações menores, mas mais frequentes do que suas atualizações anteriores de big bang a cada poucos anos. As versões LTS permanecem com suporte por pelo menos oito anos. 

Conforme observado por Sharat Chander, diretor de gerenciamento de produtos Java SE da Oracle, o JDK 17 foi o segundo LTS sob a cadência de lançamento anunciada em 2018. Com ele, a Oracle introduziu “termos de licença novos e mais simples” que permitiam às empresas usá-lo “sem custo por pelo menos os próximos três anos, permitindo um ano inteiro de sobreposição com o próximo lançamento do LTS.”  

A Oracle explicou na época que o JDK 17 e as versões futuras do JDK são fornecidas sob a licença de Termos e Condições Sem Taxa (NFTC) da Oracle, uma licença de uso gratuito para Java 17. A licença dura um ano após o próximo lançamento do LTS e em seguida, o Java 17 é movido sob a licença Oracle Technology Network

Java 17 foi um grande negócio. Uma pesquisa do fabricante de ferramentas de desenvolvimento Java Perforce  no início deste ano descobriu que 37% de seus usuários ainda estavam no Java 8, lançado em março de 2014. Outros 29% usavam o Java 11, lançado em setembro de 2018. Ambos são versões LTS. Cerca de 37% dos 876 usuários Java do Perforce planejavam migrar para o Java 17 LTS.

Essa é uma amostra bastante pequena de desenvolvedores Java em todo o mundo. A Oracle observa que o analista de tecnologia IDC estima que existam 10 milhões de desenvolvedores Java, representando cerca de 75% dos desenvolvedores em tempo integral. Java está entre as três linguagens mais populares em vários índices, junto com JavaScript/TypeScript e Python.

Existe a linguagem de programação Java e, em seguida, existem várias plataformas Java nas quais os aplicativos Java são executados, consistindo na Java Virtual Machine ou “JVM” e suas interfaces de programação de aplicativos. As duas principais plataformas são Java Standard Edition (Java SE) e Java Enterprise Edition (Java EE). 

Outras informações

Chander observa que “os assinantes do Java SE obtêm acesso ao suporte Java SE da Oracle e recursos comerciais, como GraalVM Enterprise, Java Management Service e Advanced Management Console”, apontando os usuários para o blog The New Java SE License Terms para obter detalhes sobre a licença. 

Quanto aos novos recursos técnicos, o Java 19 inclui sete propostas de aprimoramento do JDK (JEP), mas são principalmente recursos de visualização ou incubadora.

Notavelmente, o Java 19 inclui  JEP 422 – Linux/RISC-V Port, que porta o JDK para a arquitetura Linux RISC-V de código aberto. O RISC-V, em várias medidas, ganhou o apoio da Intel por meio de seu novo negócio de serviços de fundição e da NASA, que quer usar chips RISC-V para seus computadores de voo espacial de próxima geração .  

O padrão RISC-V (pronuncia-se “risco cinco”) foi inventado pelos professores da Universidade da Califórnia em Berkeley, David Patterson e Krste Asanovi?, 12 anos atrás. Os desenvolvedores são livres para alterar a arquitetura do conjunto de instruções (ISA) de um chip RISC-V em relação aos ISAs fechados dos processadores Intel x86 e Arm.  

Outra adição interessante é o JEP 425 “Virtual Threads (Preview)” para a plataforma Java. O Virtual Threads é o primeiro JEP como parte do Project Loom, um esforço de vários anos para melhorar o desempenho do Java em grandes aplicativos de servidor. 

“Virtual Threads são threads leves que reduzem drasticamente o esforço de escrever, manter e observar aplicativos simultâneos de alto rendimento”, observam os autores da proposta.

Mais benefícios

Chander explica os benefícios de threads virtuais versus threads de Java e como o Project Loom pretende apresentar uma alternativa para as três “más opções” que os desenvolvedores têm, que é desperdiçar hardware por subutilização, desperdiçar esforço do programador com modelos de programação e observabilidade piores ou afaste-se do Java.

“Há muitas coisas boas sobre as threads do Java. Elas oferecem um modelo de programação natural, com código legível e sequencial usando operadores de fluxo de controle que os usuários entendem – loops, condicionais, exceções. Os usuários obtêm ótima depuração e facilidade de manutenção e rastreamentos de pilha legíveis. E os threads são unidades naturais de agendamento para sistemas operacionais”, aponta Chander.

“O problema é que a implementação de threads pelo SO é muito pesada. Demora muito para iniciar um thread para cada conexão, mas pior, o número de threads que o SO pode suportar a qualquer momento limita o número de transações simultâneas que um servidor pode lidar – muito abaixo da capacidade do hardware ou da rede – e, portanto, os threads se tornam um fator de restrição severa na taxa de transferência do servidor.”

Ele disse que muitas pessoas assumiram que a Oracle adotaria o estilo de programação assíncrona oferecido pelos chamados frameworks “reativos”, mas acrescentou: “Reativo pode ser o melhor que as pessoas podem fazer com a JVM atual, mas nosso objetivo é fazer melhor, o que podemos fazer tornando os threads mais leves e escaláveis, permitindo que os desenvolvedores continuem usando o modelo e as ferramentas que vêm usando com sucesso há anos.”

Aqui está uma lista de todos os sete JEPs no Java 19: 

405:Padrões de Gravação (Visualização)
422:Porta Linux/RISC-V
424:Função estrangeira e API de memória (visualização)
425:Tópicos virtuais (visualização)
426:API de vetor (quarta incubadora)
427:Correspondência de padrões para switch (terceira visualização)
428:Simultaneidade Estruturada (Incubadora)
Acesse a versão completa
Sair da versão mobile