Os planos da Oracle para evoluir o Java em 2024 envolvem projetos OpenJDK que vão desde Amber, para desenvolver recursos menores e orientados à produtividade, até Babylon, para estender Java a modelos de programação estrangeiros, como GPUs, até Valhalla, para aumentar o modelo de objeto Java com objetos de valor para eliminar gargalos de desempenho de longa data.

Em um vídeo postado em 18 de janeiro, o representante de relações com desenvolvedores Java da Oracle, Nicolai Parlog, cobriu o que estava na prancheta do Java este ano. “Tenha em mente, porém, que a maior parte do trabalho em um determinado ano não será lançada no mesmo ano e muitas dessas melhorias só poderão ser utilizadas em 2025 ou mais tarde”, advertiu Parlog.

Para o Projeto Babylon, Parlog citou planos para reflexão de código, expandindo a API de reflexão e permitindo a transformação de código Java dentro de um método. O objetivo é permitir que os desenvolvedores escrevam código Java que as bibliotecas possam interpretar como uma função matemática, por exemplo. A equipe do Babylon planeja nas próximas semanas publicar trabalhos sobre casos de uso como diferenciação automática, emulação C# LINQ e programação GPU.

No Projeto Leyden, que visa melhorar os tempos de inicialização, os planos para 2024 envolvem o refinamento do conceito de condensadores e o trabalho na preparação para a produção de protótipos de condensadores. No Projeto Amber, os recursos atuais na visualização incluem modelos de string, um formato simplificado main método e declarações antes this() e super(). “Espero que todos os três sejam finalizados em 2024”, disse Parlog. Estão sendo exploradas capacidades como tipos primitivos em padrões e with expressões.

No Projeto Valhalla, o trabalho se concentrará em classes e objetos de valor, que fornecem instâncias de classe que possuem apenas final campos de instância e não possuem identidade de objeto. As classes Integer, Doublee Byte, que representam primitivas em caixa, são exemplos de classes que agrupam ou “encaixam” valores simples que não precisam de identidade. A remoção da identidade não apenas eliminaria a confusão dos desenvolvedores sobre o significado de == aplicado a essas classes, mas também reduz significativamente a sobrecarga de tempo de execução do box Integer, Doublee Byte objetos.

No Projeto Lilliput, que visa reduzir o tamanho dos cabeçalhos de objetos Java na JVM HotSpot e reduzir o consumo de memória do Java, o trabalho agora se concentra no polimento de um esquema de bloqueio rápido. O Projeto Panamá, para interconectar JVM e código C nativo, “tem três ferros no fogo”, disse Parlog. A API vetorial está em incubação, a API de função externa e memória está sendo aprimorada e o jextract, uma ferramenta que gera ligações Java a partir de cabeçalhos de bibliotecas nativas, está em construção, o que torna o trabalho com bibliotecas nativas mais simples.

Quanto ao Projeto Loom, que incuba Java VM e recursos de API, Parlog disse acreditar que seus dias de destaque estão chegando ao fim. Os threads virtuais são finais e as APIs de simultaneidade estruturada e valores com escopo atingiram sua segunda visualização no Java 22. A finalização é esperada para este ano. Parlog expressou esperança de progresso em tornar a sincronização sem fixação e a E/S de arquivos sem captura, pelo menos no Linux.