I just realized due to a forum thread that it’s been about 7 months since I posted my Java 7 Predictions. So, it seems like a good time to update those predictions.
At the time I was expecting that the Java SE 7 JSR would be created before JavaOne 2008 but obviously that didn’t happen and we’re still waiting for the JSR. Waiting on what, I’m not really sure. I know the open source effort and subsequent JavaFX in Java 6 work has been soaking up a lot of focus, but seems like it’s still a bit late. Maybe it’s on vacation for the summer.
Anyhow, I’m going to organize this a bit differently this time by putting stuff in three categories – Likely, Possible, and Unlikely. As always, these are my own opinions based on stuff I’ve read although I talk to various spec leads and members occasionally, you should trust this about as much as anything you read on the net. Also, these don’t reflect what I’d like to see, just what I think is most likely.
Likely
Feature | Chance | Comment |
---|---|---|
JSR 294 Superpackages | 95% | Sun’s going to push this in |
JSR 277 Java Modules | 95% | ditto above |
JSR 203 NIO 2 | 99% | Solid. |
JSR 310 Date and Time | 95% | Very good shape |
JSR 166 Concurrency Utils | 95% | fork/join plus some additions |
JSR 225 XQuery API for Java | 90% | Pretty far advanced |
JSR 296 Swing App Framework | 90% | Interrupted due to spec lead’s departure but I think it will get picked up again |
JSR 295 Beans Binding | 95% | Looking good, responded well to early criticism |
JSR 303 Beans Validation | 90% | Has solidified since last predictions |
Java Media Components | 80% | Partially done in JDK 6 update |
JSR 255 JMX 2.0 | 99% | Ready |
JSR 262 Web Services Connector for JMX | 99% | Available now |
JSR 308 Type Annotations | 80% | Prototype available now |
Strings in switch | 70% | Easy and useful |
Comparisons for Enum | 80% | Useful extension of enums |
Improved catch | 80% | Seems to have a lot of support |
JSR 292 invokedynamic | 95% | Likely to be some changes to better support dynamic languages |
Tiered compilation | 70% | Work on this seems active enough that there will be some updates in this area, although it’s difficult to tell exactly what that will mean. |
G1 garbage collector | 90% | Far along |
Possible
Feature | Chance | Comment |
---|---|---|
JSR 275 Units and Quantities | 60% | Well defined, but I’m not sure this will be included in the actual JDK |
JSR 284 Resource Consumption Management | 50% | Hard to judge this one – there is a proposed final spec and seemingly interested support from major players, but not too much info out there. |
JSR 326 Post Mortem JVM Diagnostics API | 40% | Depends on timing, just starting now so would depend on JSR moving fast and Java 7 moving slow |
Type Literals | 40% | I think some useful class or reflective helper will be added as a small stopgap to no reified generics. |
Type Inference | 40% | Possible but hard to tell |
Unlikely
Feature | Chance | Comment |
---|---|---|
JSR 107 Cache API | 0% | Hard to find anyone that cares |
JSR 260 Javadoc Update | 5% | Totally undefined |
Reified Generics | 5% | Highly unlikely at this point |
Closures | 20% | Still seems possible, but I don’t think any major language changes like this are going to be included |
ARM Blocks | 10% | Seems unlikely |
XML Support | 0% | Not a chance |
Property support | 5% | Nobody pushing this much anymore |
BigDecimal operator support | 5% | Lots of interest, but apparently would introduce compatibility issues |
Chained invocations | 20% | Seems unlikely at this point |
Extension methods | 20% | Motivation low without closures |
If you’re interested in watching the Java 7 space, check out my Java 7 link blog (RSS).