It's A Dream
Do "big thought" blogs suggest what we'll see at JavaOne?
So, with JavaOne just a few weeks away, thoughts naturally turn to wondering what's going to be announced. Last year, nobody could have seen JavaFX coming, so maybe there will be another surprise. But more likely, many attendees are going to be keen on an update on Java 7.
It's obvious that the release date has slipped: a Danny Coward presentation (PDF), linked from a December 2006 blog, shows Java 7 coming out in mid-2008. Obviously not happening. Chris Maki posted a summary blog of Danny's Java SE road-map at JavaOne 2007, and wrote "Java SE 7 may be available just before 2009." Let's give that a qualified maybe... prior experience tells us that Java has a long beta cycle, so we'd presumably need to see a first beta announced at this year's JavaOne for an early 2009 release to be plausible. But this is all speculation.
Still, it's fun, so let's speculate further. Specifically, what's going into Java SE 7 that demands a new release? After all, the dramatic changes of Java SE 6 Update 10 -- the Java Kernel, Java Deployment Toolkit, Java Auto-Updater -- didn't require API changes, so these profound changes to the VM and Java end-user experience could be made as a point update to the existing release. So what big stuff, big enough to hold for a major release of the platform (or, put another way, big enough to make a major release worth doing), are on tap? Closures has long been the big one, and that debate seems far from settled.
We can also read the tea leaves of what some of the major thought leaders on the platform are posting. Two of these are featured on the front page of java.net today -- one on a design to support dynamic languages on the JVM, the other clarifying just what "compatibility" means in a Java context. On the one hand, you could look at these and say they're just talking about the big ideas, not announcing a JSR or anything more concrete, so for this stuff to make it into Java 7, that implies that Java 7 must be a long ways off. Maybe. On the other hand, you can see in these blogs that the authors have worked through the big ideas to their satisfaction, and are sharing the results for other to see. And that might indicate that big questions are getting resolved in this pre-JavaOne timeframe.
The first of these deep-thought blogs in the Java Today section is John Rose's Method Handles in a Nutshell, which proposes a design for "method handles" to better support dynamic languages. "One of the biggest puzzles for dynamic language implementors on the JVM, and therefore for the JSR 292 (invokedynamic) Expert Group, is how to represent bits of code as small but composible units of behavior. The JVM makes it easy to compose objects according to fixed APIs, but it is surprisingly hard to do this from the back end of a compiler, when (potentially) each call site is a little different from its neighbors, and none of them match some fixed API."
What does it mean for changes to be "backwards compatible" with previous versions of Java? Joe Darcy clarifies common misperceptions in the blog Kinds of Compatibility: Source, Binary, and Behavioral. "When evolving the JDK, compatibility concerns are taken very seriously. However, different standards are applied to evolving various aspects of the platform. From a certain point of view, it is true that any observable difference could potentially cause some unknown application to break. [...] Since not making any changes at all is clearly not viable for evolving the platform, changes need to be evaluated against and managed according to a variety of compatibility contracts."
The latest SDN Enterprise Tech Tips looks at Working with jMaki Events. Author Carla Mott writes, "the following tip expands the discussion of the event mechanism in jMaki. You'll learn more about the concepts that underlie the jMaki event mechanism and how to take advantage of it to easily interact with widgets. "
The latest java.net Poll asks "Do you participate in Sun's Java Bug Database (aka, "Java Bug Parade")?" Cast your vote on the front page, then visit the results page for current tallies and discussion.
In today's Weblogs, Simon