language: proper closures
For syntatic sugar, I'd be most interested in seeing closures. This situation has gotten better with JDK 1.5, but using groovy brought back the good feeling of anonymous closures. It'd be great if Java had this too.
I've read that closures weren't included in the original JDK's because C++ programmers (hey I was one once too!) didn't want stuff allocated on the heap without a explicit "new". Well, with garbage collector performance in 2004, that's a little less of an issue.
Performance problems could be mitigated simply by not using these closures (a compile time could let developers know about variables which are implicitly being allocated on the heap).