The Java Community Process (JCP) executive committee (EC) voiced its
approval for the next version of Java, code named Mustang, earlier this week.
release snapshot of Mustang, otherwise known as Java 2, Standard Edition
(J2SE) 6.0 or Java Specification Request 270 (JSR-270), was made publicly
available in November 2004.
Mustang is scheduled for final release in the middle of 2006, the first
update to the core Java language under the group’s new delivery model. Officials expect to submit new feature releases every 18 – 24 months as
opposed to the three-year cycle of the past and update releases every other
month. In the past, the JCP launched a feature release roughly every three
years, with a maintenance release every nine to 12 months and update
releases three times a year.
J2SE 6.0 is also the first Java specification to operate under the Java
Research License (JRL) from the beginning of its development cycle. The JRL was
used for J2SE 5.0, code-named Tiger, after its final release, but never from
the very beginning of the JSR process. Officials plan to have almost weekly
drops of Mustang source code on its Java.net developer site.
Mark Reinhold, Sun Microsystems
J2SE chief engineer and
JSR-270 specification lead, was pleased with the unanimous vote of support,
with 15 “yes” votes and a no-vote by Nortel Networks
“That’s very strong support from that group, which is sometimes quite
contentious,” he said. “So we’re now in the process of fleshing out the
JSR-270 expert group and get moving on the details of what will be in
Mustang over the next several weeks.”
While the EC group, which consists of companies like IBM
, JBoss and the
Apache Software Foundation (ASF), was unanimous in their support, fellow EC
, used the vote to voice its displeasure
over a missing JSR.
JSR-203, “More New I/O [(NIO)] APIs for the Java Platform (NIO.2),” is a
proposed new input/output APIs. It was originally intended to appear in
J2SE 5.0, which has been publicly
available since September 2004.
“Google is disappointed that JSR-203 has missed two targeted J2SE releases
and that it has not moved out of the ‘Expert Group Formation’ phase in the
two years since it started,” the company stated in the comment area of its
vote on JSR-270.
Officials were not available at press time for more comment on its issue.
Reinhold, who was the specification lead for the first NIO, JSR-51, said
JSR-203 was originally pushed back with the intent of placing it into the
next feature release, but the faster release model meant it wouldn’t be
developed in time for Mustang.
“At the time we dropped it from Tiger, we were still operating under the old
release model which would have placed Mustang three years after Tiger, but
when the new release model came along, we looked at [JSR-203] and thought,
‘hmm, well, we could rush and try to do this in Mustang,’ but it’s
sufficiently big and sufficiently important that we thought it was better to
hold it off until J2SE 7, [code named] Dolphin.
“It will still come out three years after Tiger, it just won’t be in
Mustang,” he added.
Reaction to Mustang has been lukewarm. Many of the improvements to the Java
language deal with back-office improvements to Web services and XML while
making it easier to manage. The release of Tiger, by contrast, featured
many core language improvements like generics, autoboxing of primitive types
and enumerated types that were enthusiastically supported by the general
Shortly after Mustang went live on the JSR site, Java developer and author
David Flanagan posted on his davidflanagan.com blog his reaction to the new
technology to be found, stating, “overall, it looks like we have been
spoiled by all the great usability features of Java 5.0. This next release
is going to be much less dramatic (unless you love XML).”
Reinhold said he’s read many of the blogs that find the upcoming J2SE
under-whelming, but said the changes found in Tiger aren’t common.
“Making a lot of dramatic changes to the core language and libraries is not
something that is going to happen all that often,” he said. “Prior to
Tiger, the last big one was way back in [J2SE] 1.1, so dramatic changes to
the core are not going to happen in every release or even every other
feature release necessarily.”