Em sua apresentação principal no JavaOne 2011 em São Francisco, EUA, Mark Reinhold, Arquiteto Chefe de Java na Oracle, forneceu detalhes sobre o desenvolvimento do Java 8 e as pretensões futuras para a tecnologia, além de anunciar o lançamento do JavaFX 2.0.
Os assuntos principais relacionados ao Java 8 foram a modularidade, implementada pelo projeto Jigsaw, e o projeto Lambda. Sobre o Jigsaw, Mark Reinhold enfatizou a necessidade de haver uma integração muito próxima com o OSGi. A IBM, que está colaborando nesse trabalho através do projeto OpenJDK, planeja explorar e demonstrar em breve a interoperabilidade entre os dois frameworks de modularização. O projeto Lambda habilitará o Java a trabalhar, de forma mais eficiente, com sistemas que usam múltiplos núcleos de processamento. Mark Reinhold fez o seguinte comentário:
Alguns diriam que a inclusão das expressões Lambda é somente uma forma de manter-se atualizado em relação às demais linguagens, e há alguma verdade nisso. Mas a razão real são os processadores de múltiplos núcleos: a melhor forma de explorá-los é com o Lambda.
A implementação do Lambda faz uso da funcionalidade de invocação dinâmica (InvokeDynamic; JSR 292), introduzida no Java 7, para dar suporte a linguagens com tipagem dinâmica, tais como Ruby e Python.
Outras melhorias planejadas para o Java 8 incluem:
- Conclusão da migração das funcionalidades do JRockit para o HotSpot
- Nova API para datas e horas (JSR 310)
- Inclusão do suporte para anotações em tipos e o aumento das opções de deploy do código.
A Oracle também já está identificando as áreas principais no desenvolvimento do Java 9. Entre as possibilidades, Reinhold citou uma JVM autoajustável (self-tuning), menos dependente das opções da linha de comando usadas para otimizar a execução dos programas; melhorias na integração com o sistema operacional, suporte a Big Data, reificação de tipos genéricos (possibilidade de acessar informações de tipagem em tempo de execução), e suporte na JVM para tail calls e continuações.
Outras melhorias planejadas para o Java 9 são um novo protocolo de metaobjetos para melhorar a comunicação entre linguagens (algo que Neal Gafner sempre defendeu); suporte a arquiteturas "multi-inquilinos" (multi-tenancy), gerenciamento de recursos para aplicações de cloud, e a construção de modelos computacionais heterogêneos.
Além disso, a Oracle anunciou a disponibilidade do JavaFX 2.0 e a versão preliminar de uma ferramenta de design visual chamada Java FX SceneBuilder, que gera FXML, uma linguagem declarativa baseada em XML, para a definição de interfaces com o usuário.