Pure Danger Tech


Java 7 Roundup (June 13th)

13 Jun 2007

This is a weekly update on new Java 7 information. All current and previous information is maintained on my Java 7 page.


Per Olsen posted on JSR 277 pondering whether it will get us out of Dependency Hell. I certainly hope so. At this very moment, I’m wrestling with a whole set of library version conflicts, classloaders with various delegation strategies, and the dreaded LinkageError.

More info: JSR 277, JSR 294


Stephen Colebourne has been laying out the design principles for JSR 310 and has added principle 3 since last week: Clear, Explicit, and Expected. Seems like that one is better known as the “Principle of Least Surprise”.

Lots of feedback on the previously posted principles on the mailing list. I think the feedback on principle 1 (Immutability) seemed to be overwhelmingly positive (although there was some discussion about the definition of immutability). Principle 2 (Fluent API) has had some discussion, not sure I can characterize the general feeling. Personally, I’m still on the fence about whether fluent APIs are a good thing. My impression is that they can certainly be harder to get started with because the methods don’t follow patterns that are common in the JDK or many Java libraries: methods that change state don’t start with “set”, methods often return the builder or other objects so that you can chain calls, etc. Learning a fluent API almost always requires a rich set of cookbook examples that users can pick from and modify. Personally, I’d rather have a core API that is more traditional and a helper set of builders and other fluent-style classes that are separate. If achievable, this is the best of both worlds, but it also is very difficult to avoid bleeding the fluent methods into your core API.

As I blogged earlier this week, I noticed due to a post on the JSR 294 mailing list that JSR 166 has some planned enhancements to Java 7 – a new TransferQueue and LinkedTransferQueue interface and implementation, and a new parallel-processing framework called fork-join. You can find more info in the brand new JSR 166 section on the Java 7 page.

More info: JSR 203, JSR 310, JSR 107, JSR 166


John O’Conner continues his series of posts on JSR 296, the Swing Application Framework, with posts on the architecture and lifecycle events.

More info: JSR 296

Language Proposals

Ricky Clarkson posted on improving your visitors and a a request for Void as a valid type parameter.

More info: Closures, miscellaneous language ideas

Musical recommendation of the week

My musical recommendation this week is anything by the band Breakestra. These guys are laying down the best funk grooves this side of the millennium. They play a variety of funk styles all over break beats and they are probably my favorite band I’ve discovered on last.fm.

Listen and buy at Ubiquity Records or at iTunes Amazon emusic.