En el 2012 Oracle tiene pensado liberar Java 8 y este vendría con nuevas características.

1. OSGi
La modularización de java proveniente de Eclipse llegaría al JDK definitivamente

2. Project Coin
Mas mejoras respecto a la sintaxis del lenguage que ayudan mucho al programador. En el JDK 7 tuvimos strings en switch y otras mejoras importantes. Seria bueno poder tener cosas como

3. Collections
Expresiones literales para listas inmutables, mapas y sets. Asi mismo como acceso indexado para listas y mapas.

4. Soporte para programación modular
La idea es extender el lenguage con nuevas estructuras llamadas “superpackages” lo que permitirían una organización modular.

5. Expresiones Lambda
Closures para Java, la verdad son buenos shortcuts que atentan un poco contra la teoria de objetos… pero como ya todo es objeto…no estaria nada mal optimizar funciones a nivel de la vm.

6. Annotations en cualquier lado y para cualquier cosa
Estan proponiendo extender las annotations para que sean usadas en cualquier tipo, no solo classes metodos o declaraciones de variables.

7. Swing application framework
Cuantas veces tuviste que reescribir una app swing con sus bases una y otra vez ? La idea es hacer un framework el cual maneje el startup, shutdown, sessiones y manejo de recursos de manera standard y escalable.

8. Date and Time API
Van a reescribir Date and Time API lo cual seria excelente porque es una porqueria ahora. Especialmente la clase SimpleDateFormat que no es thread safe.

9. Bendito DatePicker!
Al fin piensan hacer un datepicker para Swing.

Las mejoras que me gustarían a mi
1. Lo que más odio del lenguaje que mas amo es el reload de la VM en cada cambio. Esto es dado a que el código es compilado y no es un scripting como php o similar. JRebel tiene un metodo de unload y reload de classes, no podria implementar eso el JDK para evitar downtime de los servidores en cada deploy ?
2. Tipos de variables. Me acuerdo en mis dias de smalltalk donde no era requerido poner el tipo de variable. Yo la verdad que era feliz. Despues Java me obligo a poner tipos y me complico la existencia. Estoy de acuerdo de que el typing ayuda a muchisimas cosas como por ejemplo webservices, pero la verdad todo seria mas facil y corto si no fuera obligatorio el typing de las variables.
3. Nativos para diferentes plataformas. Seria bueno que el JDK traiga un tool para poder generar un ejecutable (exe, bin o app) para cada diferente plataforma. Es algo siempre util.