People Get Ready
Are you ready to start using closures?
If there's one thing we've learned from the generics argument, it's that when language changes are being discussed, you pretty much have to take a side. If you don't like a library, you can just choose not to use it, but with new syntax, sooner or later you're going to be expected to use, or at least maintain it. The problem with the generics discussion is that too much of it happened after generics were added to the language, when it was too late for those who thought them overkill to really do anything about it... and simply ignoring them turned out not to be an option.
That's why I think that the closures proposal for JDK 7 is getting a closer look -- you might never plan to write one, but if closures become part of the language, you'll have to at least understand them, so better that they make sense and deliver some substantive value, right?
The question is, will closures provide enough value to merit all the millions of Java developers around the world having to learn a new syntax?
Mikael Grev has kicked off an extensive discussion on JavaLobby with his JDK 7-oriented argument Why Closures in Dolphin is a Bad Idea, which we feature in the Java Today section. He starts out by proving that he knows what closures are and then wonders whether there are sufficient use-cases for closures that can't already be handled by existing tools, like anonymous inner classes. He also questions whether it's really worth the cost of making developers learn a new syntax, and whether it makes sense to try to closure-ify core Java API's like the Collections framework that weren't designed to use closures. He ends his case with a warning:
I think that closures are the rocket scientist's answer to a problem that can be solved by a plumber and a carpenter. If closures would have been here from the beginning I would have loved it but that is not the case and there's nothing we can do about that now. C++ went down the power over simplicity road and never came back.
Also in Java Today, the Java EE 5 SDK Update 2 and Java Application Platform SDK Update 2 have just been released, to capitalize on last week's release of Java SE 6. The SDK includes the GlassFish-based Sun Java System Application Server Platform Edition 9.0 Update 1 Patch 1, samples, blueprints, API documentation, a portlet container, and more. The "platform" download also includes NetBeans IDE 5.5 with NetBeans Enterprise Pack 5.5. For more information, Inderjeet Singh describes the contents and performance improvements of this release in a recent blog.
Kelly O'Hair has posted a JDK6 Build Cheat Sheet, which actually applies to builds of both JDK 6 and JDK 7, and in part to JDK 5. He shows how to use build flags to control the build and just include the features you want, as well as how to build just Java SE and not the VM, or just HotSpot and not the VM.
Reminder: there are just a few days left to send in your pictures of Duke's holiday for our annual year-end roundup. Please send pictures by Tuesday.
SantiagoÂ Pericas-Geertsen is considering
Simplifying the JAXP API in today's Weblogs. "One of the complains about the JAXP API that we are hearing (rather loudly!) is number of lines of code that are needed to implement a simple task: you need to instantiate a factory, create an instance from the factory, wrap your parameters in Sources and Results and finally carry out the task. Ah, and don't forget to catch all those exceptions or your code won't even compile. Is all the complexity of current API really necessary?"
Call me Santa It's hard to tell ifÂ RémiÂ Forax is being naughty or nice as he hacks on javac:
"This blog is about shorthand syntaxes for declaring local variables without specifying the type and the avability of a prototype compiler to test them by yourself."
ChangshinÂ Lee adapts a Windows tutorial to Ubuntu Linux in
Trying JNI with NetBeans C/C++ Pack on Linux:
"I started to read Beginning JNI with NetBeans C/C++ Pack 5.5, Part I and soon realized that the article was for Windows while my main development machine is Ubuntu. OK, so it means that I don't need to install cygwin and the rest of the instructions in the article should work fine, right? "
This week's Spotlight is on
the 3D desktop Project Looking Glass, wich is approaching its 1.0 release. A recent forum post announces LG3D 1.0 RC1, with a final release expected soon. But what is a "3D" desktop? According to its home page, "Project Looking Glass is based on Java technology and explores bringing a richer user experience to the desktop and applications via 3D windowing and visualization capabilities. It is an open source development project based on and evolved from Sun Microsystems' Advanced Development division. It supports running unmodified existing applications in a 3D space, as well as APIs for 3D window manager and application development."
In today's Forums,
mbodewes wonders about the combination of
Open Source and cryptography:
"Will the recent move towards open source have any implications on cryptography? I've never understood fully the reasons why the cryptography in the Java language is so much restrained (e.g. the code signing necessary to introduce a new cryptographic provider). Surely, with all the open source cryptography everywhere, this does only hurt the end user."
Offering further feedback for JavaOne 2007 planning,
mnirhali has some suggestions
Re: Java Platform, Micro Edition (Java ME):
"I would also like to see CDC related topics... My areas of interest are AGUI and also Databases... On the CLDC side, I would like to see bluetooth APIs covered. I have seen people struggling to get bluetooth working with a real bluetooth devices, inspite the fact that they can do so with emulators very well...Â "
So how is a thick/rich client better than a web app? In
Re: How to kill the Seductive Web Browser?,
"the obvious thing that a WebStart application can do, but a browser based system can not, is work offline. I would be much happier about the Revenue's online tax return submission if it was WebStart based and allowed you to continue working even if their system had crashed or was chronically overloaded (which isn't unusual close to the deadline).Â "
In today's java.net
News Headlines :
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using our
form. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News RSS
Current and upcoming Java
- JanuaryÂ 18-19, 2007 - Code Mash
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e">events submission form.
All submissions go through an editorial review before being posted to the
Archives and Subscriptions: This blog is delivered weekdays as
Today RSS feed. Also, once this page is no longer featured as the
front page of java.net it will be
archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.
Are you ready to start using closures?