Over a million developers have joined DZone.

Java 7 Predictions

· Java Zone

Microservices! They are everywhere, or at least, the term is. When should you use a microservice architecture? What factors should be considered when making that decision? Do the benefits outweigh the costs? Why is everyone so excited about them, anyway?  Brought to you in partnership with IBM.

So, we're a few weeks into the new year and it's time for my predictions about what will make it into Java 7. My best guess is that a Java 7 SE JSR will be created in the next couple months to have it ready before JavaOne.

The list you'll find below summarizes the majority of Java 7 features that have been talked about at one point or another and gives my own personal best guess as to the likelihood of inclusion. Note that a) these are my own personal guesses and do not reflect the actual activity of anyone involved in the JCP and b) these don't necessary reflect my own personal desires, just what I think is most likely.

JSR 294 SuperpackagesYes - 90%OSGi controvery aside, I think 294 and 277 will exist in some form
JSR 277 Java ModulesYes - 90%ditto above
JSR 203 NIO 2Yes - 95%Work is mostly done, adds many important improvements
JSR 275 Units and QuantitiesYes - 70%Progress is far along but there have been some questions on whether this should be in the JDK
JSR 310 Date and TimeYes - 90%There's a strong desire for this and progress has been excellent
JSR 107 Cache APINo - 5%Despite occasional blips on the radar, I don't see 107 making a comeback in time for Java 7
JSR 166 Concurrency UtilsYes - 95%Mostly some evolutionary additions plus the new fork/join library
JSR 225 XQuery API for JavaYes - 90%Pretty far advanced
JSR 284 Resource Consumption ManagementMaybe - 60%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 296 Swing App FrameworkYes - 95%Seems far along and well-liked
JSR 295 Beans BindingYes - 90%Lots of progress
JSR 303 Beans ValidationYes - 70%I get the impression this is a key piece with the other Swing items, but there is far less info out there. I'm assuming it will solidify.
Java Media ComponentsYes - 80% Seems like Sun is strongly interested in filling this gap to compete against Flash, Silverlight
JSR 255 JMX 2.0Yes - 95%Far along, many useful improvements
JSR 262 Web Services Connector for JMXYes - 95%Available now
JSR 260 Javadoc UpdateNo - 10%This has been strung along for several releases now - I see no hope or interest that anyone will pick it up for Java 7
Reified GenericsNo - 20%Seems like a long shot to me. Could be an upset for me, but my gut says no.
Type LiteralsMaybe - 60%I think some useful class or reflective helper will be added as a small stopgap to no reified generics.
JSR 308 Type AnnotationsYes - 80%Prototype available now
Type InferenceYes - 80%I think some type inference additions will be added, particularly those that allow the generic types on LHS to be inferred.
ClosuresYes - 70%I think there is enough interest in this that something will be added. I don't think it will be BGGA as it currently stands, but rather something that evolves from that as a starting point. Syntax is likely to change. I'd say the control abstraction aspects are less likely to be included.
ARM BlocksNo - 20%Generally, I'd say no, unless they end up getting included instead of closure control abstraction.
XML SupportNo - 0%Not a chance
Property supportMaybe - 40%I'd say this isn't dead but that there is indifference from a large segment of the user base and splintered support from the rest. I don't see the big players pushing any particular solution to this. I've said Maybe but only as a long shot.
BigDecimal operator supportYes - 90%Seems like a duh to me
Strings in switchYes - 90%Easy and useful
Comparisons for EnumYes - 80%Bit more of a stretch but still really useful
Chained invocationsMaybe - 50%Too early to say on this one.
Extension methodsMaybe - 50%Also too early to say - I think this one depends a lot on where closures goes and how badly this is needed to retrofit collections with wherever we end with for closures.
Improved catchYes - 80%Seems to have a lot of support
JSR 292 invokedynamicYes - 90%I think JSR 292 will produce some JVM changes in Java 7, probably most likely an invokedynamic. But John Rose has taken JSR 292 to a broader place and is really using it as an umbrella for many potential dynamic language optimizations like tail call optimization, tuple support, and more in the JVM. Unlikely that any of this will leak out to Java 7 the language though.
Tiered compilationYes - 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.

So there you go - those are my predictions. We'll see how I do in the coming year. If you're interested in watching the Java 7 space, check out my Java 7 link blog (RSS).

Discover how the Watson team is further developing SDKs in Java, Node.js, Python, iOS, and Android to access these services and make programming easy. Brought to you in partnership with IBM.


Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}