Mark Reinhold, chefe arquiteto em java na Oracle, na conferencia JavaOne 2011 além de anunciar o lançamento do JavaFX2.0, também deu mais detalhes sobre o aguardado Java 8, mais especificamente sobre o projeto Lambda e o projeto Jigsaw.

Ambos deveriam estar presentes na versão 7 do java, mas que infelizmente foram removidos pela Oracle para poder atender a nova data de entrega em julho de 2011.

O próprio Reinhold disse na conferencia que:"Java 7 foi um lançamento importante, mas na história do Java, ele foi mais evolucionário do que revolucionário" e complementa dizendo que o "Java 8 será mais revolucionário".

Sobre o projeto Jigsaw, temos a informação de que ele deixará o manuseio de grandes pedaços de código mais flexível e permitirá que segmentos de uma aplicação sejam usados e reusados em operações maiores, proporcionando uma maior molecularização do JDK. O projeto irá trazer novas características envolvendo:

  • Encapsulamento.
  • Refatoramento.
  • Versionamento.
  • Integração de módulos.

Mais informações sobre o projeto Jigsaw aqui (inglês).

Já o projeto Lambda permitirá que o Java trabalhe de forma mais eficiente em sistemas com processadores de múltiplos núcleos já que, como tudo aponta, esse será o futuro dos aparelhos que usarão Java. As novas características a serem incluídas são:

  • Métodos Padrão.
  • Referências para métodos e construtores.
  • Uso de expressões Lambda.

Lambda: Uma função sem nome que calcula e retorna um único valor.

Listagem 1: Sintaxe básica de uma expressão Lambda


//único argumento
x -> x + 1

//múltiplos argumentos
x1 , x2 -> x1 + 1

Olhando dessa forma, fica aparente que o Java 8 está indo pelo mesmo caminho do C#, Ruby e Python na técnica de facilitar a programação de funções e melhorar seu desempenho. Na conferência Reinhold até comenta que: “Alguns dizem que adicionar expressões Lambda é somente para se manter entre os garotos legais, e há alguma verdade nisso, mas a real razão são os processadores de múltiplos núcleos; A melhor maneira de lidar com eles são com Lambda".

Mais informações sobre o projeto Lambda (inglês).

Outras melhorias na versão 8 incluem:

  • Uma convergência da JVM formando um híbrido de JRocket e Java Hotspost VM.
  • Adição de tipos de anotação.
  • Um API para Data/Hora (JSR310).

Reinhold termina a conferência explicando que a Oracle já está identificando as próximas áreas de desenvolvimento, entre elas: Melhorias na JVM , melhor integração nativa, um novo protocolo de meta-objeto para melhorar o suporte a outras línguas, gerenciamento de recursos para aplicações nas nuvens e mais.