This is a weekly update on new Java 7 information. All current and previous information is maintained on my Java 7 page.
Kelly O’Hair provided another update on the transition to Mercurial and how the jdk workspace is being split up. Looks like the switch to the new build system should occur real soon now.
When the JDK was open-sourced there were a handful of libraries that were legally encumbered and could not be released – instead these are provided as binary plugins that hook into the open source JDK. The hope was that the community would provide replacements for those portions of the code. David Herron shared the state of removing those encumbered bits in the JVM and it sounds like progress is being made on many fronts.
When Sun announced the OpenJDK at JavaOne this year, they also set up an OpenJDK Governance Board. This week Mark Reinhold, a member of the board, wrote about the first OpenJDK Governance Board meetings and provided links to the minutes from the first meetings on July 12th and July 17th. I can’t believe I’m going to say this, but these minutes are worth reading. They are extremely well written and clear and lay out the general principles of the board. Mark’s blog entry is a great summary of the results but I think there’s a lot of value in reading the minutes as well. They seem to be shooting for a very open process so if you want to watch the happenings, check out the mailing list.
Stephen Colebourne, spec lead for JSR 310, had an interesting post this week on how Java 7 changes could impact JSR 310. Sounds like not knowing what will actually go into Java 7 is starting to impact some JSRs as they don’t know what they will need to interoperate with and what language or library changes they might be able to use.
More info: JSR 310
Ricky Clarkson posted a nice blog about closures this week defending the need for closures in the language. I’m not sure if there’s much that’s new here but it’s clearly and persuasively argued and worth a read.
Property support has definitely been the hot topic of late. Mikael Grev did a great summary writeup on JavaLobby if you happened to have missed all the fuss up till now. And Java Posse episode #145 spends a healthy chunk of the episode talking about property support. Joe Nuxoll of the posse has been a long time advocate of property support and you might be interested in his ideas from way back in 2004.
I find myself strongly ambivalent on the property debate. I think properties do exist as a semantic concept in the code so having first-class support for them would pull them up to match what I see in the code. But on the other hand, I’m not sure that I care. I’ve gotten along fine for a long time without having property support and just using the JavaBean patterns. I suspect that maybe my perspective is based on doing many years of server-side Java. Perhaps if I was in the GUI or web world I’d feel differently. So, I’m happy to sit on the sidelines and watch the game on this one.
I wrote a while back about how it would be cool to have named parameter support in Java as that would let you do some interesting things in APIs. Paul Hammant sent me an email this week and pointed me at a library called Paranamer that swipes off parameter names and stores them for runtime access to let you do some things like this. You can see his announcement about the release of Paranamer here. He indicates that this was actually considered in some previous JDKs and apparently there was some controversy about it.
Other languages on the JVM
John Rose had a really interesting proposal this week from John Rose of Sun for a new Multi-Language VM project. John has been mentioned in the roundup before for his ideas around invokedyamic, tail call optimizations, tuples, and more. This project will focus on removing pain points that non-Java languages have seen while implementing on the JVM, prototyping new JVM features, and investigating extensions to existing JVM concepts. Kind of like the Kitchen-Sink Language project, but for the JVM.
If you’re interested in such things, I would recommend checking out the JVM-languages Google group where a lot of JVM language implementors hang out.
More info: invokedynamic