Skip to main content

Sitting, Waiting, Wishing

Posted by editor on December 18, 2007 at 7:18 AM PST

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.

This latter group is the focus of two of today's
In Luddites - Watch Your Back, Bruce Chapman says,
"the closures controversy is attracting a number of commenters who seem to be opposed to any new java language features that are not completely understandable in less than one minute. While all this conservative energy is being directed at the closures proposals, there is possibly a larger threat to the values these folk hold to."

On the other hand, the case against closures is that maybe this kind of a feature isn't necessarily Java's responsibility, if given that the JVM can easily run other languages that already have expressive closures. David Herron asks
Should 'Java' stay 'Java'?
"I've got a few minutes before heading off to a meeting, and see a few blog postings on approximately the same topic. Should Java (the language) strive to be the perfect be-all-end-all language? Or should it simply strive to be good enough?"

Also in the Weblogs section, Laird Nelson unveils Useful Swing Thing #1, "the first of (hopefully) a series of quick, useful Swing tips."

In our Feature Article, Sharad Acharya makes an across-the-board comparison of object-relational persistence options in
Adopting a Java Persistence Framework: Which, When, and What?
Java programmers have a number of persistence frameworks to choose from, and far from being redundant, each is based on significantly different beliefs, assumptions, and ideal use-cases. In this article, Sharad takes a comparative look at JPA, Entity EJBs, Hibernate, and TopLink, to help you understand which is right for your needs.

In Java Today,
the jMaki ajax framework project has released version 1.0.3 for download. The new version includes an update to Yahoo UI 2.4, and fixes to bugs 299, 301, 302, and 303. As Carla Mott notes in her blog, the release has benefitted from newly-automated testing: "One of the developers, Ahmad Zawawi, wrote a test harness using JS/glue/JSP and updated the the Yahoo and Dojo unit tests to run in the test harness. Now we can run the unit tests automatically. "

NetBeans IDE 6 offers significant updates to the GUI builder (Project Matisse). In an expert presentation on JavaLobby, NetBeans IDE 6: GUI Builder Updates, NetBeans Evangelist Roman Strobl shows what's new and what has changed.

The latest edition, issue 151, of the JavaTools Community Newsletter is out, with tool-related news from around the web, announcements of new community projects and a graduation (Uncommons Maths), and a Tool Tip on using the Add Properties plug-in for NetBeans to generate getters, setters, and Javadocs for your classes.

In today's Forums, chris55 answers his own question in
Re: NetBeans Visual Web Components: Override styleClass.
"Wow, is this something no one has encountered or is everyone simply developing Java 'class 101' web apps. Anyway, for those that may encounter this issue I have been able to discover that the ability to update the look of a web project under NetBeans lies in /Libraries/Web UI Default Theme (webui-jsf-suntheme.jar)/[package]. It should be noted that the documentation states that setting css style classes resides in the style sheets AND client-side Javascript."

Forum participants are giving the JavaFX scene graph a good shake-down. In Re: How to set the location of a SGComponent?, rah003 responds to a question about setting the size and location of a component, writing "I've run into exactly same issue. Currently there is no way to set location on SGComponent apart from using Transform.Translate. If one of the intentions behind releasing SceneGraph early was to get API right, this is one of the things that I would think as of really important (specially since other leafs (SGText and SGImage) have their own setLocation() already implemented)."

otexier seeks to clarify some apparent misinformation in
glassfish in production - is it really free?
"I have always thought that glassfish was free for use in production. However, a french sun salesman says no to my company. He says that glassfish is the open source version of SJAS, and that my company has no right to use glassfish in production as an application server for the apps we develop. (We develop and host apps for our clients. I am astonished. Is it true?"

Don't worry, GlassFish is free to use in production, as clarified by Alexis Moussine-Pouchkine's reply.

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

Is it about closures, or about any further language changes?