Monday, September 7, 2009

Latest on Java Developers' Feelings Regarding Java SE 7

Java.net's current poll question asks, "What's your reaction to the JDK 7 feature list?" The poll is still relatively new, but with nearly 230 responses, the results are already interesting. Currently, eighty percent of the votes come down into three questions that fall into the respective categories of positive, neutral, and negative. The remaining twenty percent of the responses are either "Other" or "I don't care."

Of the responses that fall into one of the three questions that are not "Other" or "I don't care," the current majority has chosen the neutral option of "Some handy buy insignificant features." This is probably what best describes my reaction as well with a little positive and a little negative. Following close behind, the next most popular choice is the outright negative option "Disappointed; when do we get JDK 8?" I definitely feel at least a little this way. The enthusiastically positive response "I love it and can hardly wait" is the third of the three committed responses, but is a little too enthusiastic for me to select.

There are some features I look forward to in Java SE 7 (modularization, Indexing Access Syntax for Lists and Maps [see also my related post], automatic resource management, and improved generics type inference, G1 garbage collector, and VM improvements for better dynamic language support), but some of the features I looked most forward to have been taken out of consideration for Java SE 7 (reified generics, Elvis operator and null safe operators, JMX 2, improved exception handling, BigDecimal operators).

There are several good sources of information on what is coming with Java SE 7. The OpenJDK site hosts a page with JDK 7 Features that categorizes features currently slated for Java SE 7 in categories of Virtual Machine, language, core, client, and Enterprise (the last entails upgrading the JDK's built-in versions of JAXP, JAXB, and JAX-WS to the latest stable releases).

Sun provides the JDK 7 Preview Page with a link to download a preview Java SE 7 SDK and a link to the Java SE 7 API documentation. Alex Miller's Java SE 7 page also provides a useful collection links to blogs and articles related to Java SE 7.

I have not heard of an overarching Java Specification Request (JSR) for Java SE 7 yet, but we already know several of the constituent JSRs that will likely be included:
JSR 203: More New I/O APIs for the JavaTM Platform ("NIO.2")
JSR 292: Supporting Dynamically Typed Languages on the JavaTM Platform
JSR 294: Improved Modularity Support in the JavaTM Programming Language
JSR 296: Swing Application Framework
JSR 308: Annotations on Java Types

3 comments:

Casper Bang said...

Actually, JSR-296 was also recently added to the no-go list: http://weblogs.java.net/blog/alexfromsun/archive/2009/08/saf_and_jdk7.html

@DustinMarx said...

Casper,

Thanks for the update and for pointing out that link. I will strike-out that JSR based on this information. It looks like the JDK 7 features page needs a similar update. Reading the comments on the post you cited, it is obvious that the removal of JSR 296 has caused some significant disappointment and anger. It sounds like JSR 296's dropping out of Java SE 7 was similar to what happened to JMX 2 (JSR 255).

Thanks again for taking the time to provide updated and more accurate information.

Dustin

Casper Bang said...

Yeah I noticed that too about Alex's JDK7 site, which has been very mute recently leading me to wonder about how to interpret this silence from these community leaders.

Actually I never did think JSR-296 would make it in, as it relies heavily on JSR-295 which was dropped earlier on and the mailing-list has been dead for ages since Hans Muller left Sun.

On a personal note, I have now learned not to use a JSR in-progress to implement production software. :/