Sitting, Waiting, Wishing
Is it about closures, or about any further language changes?
It sounds like some of the biggest news to come out of last week's JavaPolis was a frank discussion of the competing closure proposals for Java 7. Java Champion Michael Hutterman described the event in his recent blog, Back from JavaPolis 2007...
Originally planned as a "Effective Java Reloaded" session (Josh is working on the second edition of his book as you know) it was revised short-hand to be "the closures controversy" session. Wow!! Javapolis managed it to break the freeze between Josh Block and Neil Gafter, keep in mind both are working for Google. Josh discussed Neil's proposal and pointed out what James Gosling said ten years ago: Java is a consolidation language. It is not a science language but includes many "useful" facets from other language to be easy used and widely spread. Generics did had the problem to add much complexity to Java especially because its inclusion of wildcards (done a bit quick on the trigger). And this is the problem Josh sees in Neil's proposal. It is pretty complex and only very few guys will ever need the new functionality. So his suggestion is to include only as much new complexity and functionality into the programming language needed to solve the original problems: in his opinion one problem is "function methods" (you already have a solution with anonymous classes more or less), the second is resource management.
Stephen Colebourne described the insta-session from a different POV in The Javapolis Experience 2007:
The other big topic of the conference was again closures.
The first talk on the topic was a well-attended BOF from Neal Gafter discussing the current status of BGGA. The second was a last minute change - something you'd never see at JavaOne!
Josh Bloch gave a talk on 'The Closures Controversy', where he showed some examples of complexity added to the language with BGGA closures.
He also showed the syntax proposals of CICE and ARM.
This talk went down well with the audience, however it should be born in mind that Neal had no opportunity to respond directly to the points made.
So, with competing proposals out there for what we might call "simple" or "minimal" closures, and "full" closures, what's winning? According to the whiteboard poll, neither enjoys a clear lead. Of those casting a whiteboard vote, 30 chose full closures, 24 opted for a simpler enhancement based on inner classes, and 19 voted for no closures at all.