Oracle will release Java 7 on July 28 with a host of incremental enhancements to make life easier for developers. Meanwhile, Java innovation continues outside Oracle.
With
the theme of moving Java forward, Oracle will launch the latest version of
Java-Java 7-on July 28.
Ironically,
although Java 7 is the first major Java revision in about five years, the
changes in the language and platform are more evolutionary than revolutionary,
Java experts say-including Mark Reinhold, chief architect of the Java Platform
group at Oracle.
Yet
the new moves are welcome by Java developers the world over, as
Oracle
demonstrated in a Webcast that ran more than four hours. "Java 7 is the
most anticipated release ever," said Bruno Souza, president of
SOUJava, a Brazilian Java User Group.
In
essence, Java is movin' on up, but perhaps more in the mode of The Jeffersons'
George and Weezie as
opposed to the more revolutionary moving up Curtis Mayfield & the
Impressions touted in "
We're
a Winner."
Progressing
the language became difficult as Java was plagued by political and market
unrest, first at Sun and then at Oracle after its acquisition of Sun. The
Java Community Process, which governs
the progress of Java, was rife with infighting and accusations of favoritism by
Sun and then Oracle. And "Moving Java Forward" became a mantra at Oracle, as if
to say, "It's ours now and we're going to take it forward no matter what."
"Java
7 is the release everybody has been waiting for, for quite a long time," said
Ben Evans of the
London
Java Community. Evans, who also is the LJC's representative on the Java
SE/EE (Java Standard Edition/Enterprise Edition) Executive Committee, added
that Java 7 is "an enabler" that will give developers more options for building
better Java applications-particularly in London's financial sector, which
relies heavily on Java apps, he said.
"The
most significant thing is the fact that we're shipping," Reinhold said. "It's
been almost five years."
Meanwhile,
Adam Messinger, vice president of product development at Oracle, said Java has
been at Oracle for 18 months since the company acquired Sun and Java is in good
hands. Acknowledging that Oracle is "standing on the shoulders of giants" with
Java, Messinger noted that Oracle is investing heavily in Java by putting
together "the largest team ever" to work on the language and platform by combining
the
HotSpot
and
JRockit teams.
Messinger also said Oracle is working to continue to build out the Java
community and has moved to make the JCP (Java Community Process) more open.
"Java
is strategic to Oracle; we've got skin in the game just like all of you do,"
Messinger said to an audience of Java developers during Oracle's Webcast.
Java
7 brings several new features to the platform, including
Project Coin, also known as
Java Specification Request 334: Small language enhancements. The project
consists of a set of small language changes intended to simplify common,
day-to-day programming tasks. The Project Coin language changes enhance
developer productivity and reduce the amount of code needed to do certain
tasks. Key Project Coin features include the diamond operator, try-with-resources
and strings in switch.
With
the new
InvokeDynamic
feature, Oracle has enhanced support for dynamic languages such as Ruby, Python
and JavaScript to run on the JVM (Java Virtual Machine). InvokeDynamic enables
these languages to run with greater performance on the JVM.
Alex
Buckley of the Java Platform Group at Oracle said Java 7 represents "the first
time we see the JVM set its own course."
The
JVM was obviously designed for Java, and "all the invocation modes are
organized around Java semantics," said John Rose, an Oracle engineer who headed
up the InvokeDynamic effort. "But we add one more mode for other languages," he
said. InvokeDynamic adds "low-level support and a stronger undergirding for
other language features" on the JVM.
JDK
(Java Development Kit) 7 also features a new API for parallel programming or
building applications for multicore systems. The new Fork/Join Framework
enables developers to break down problems into subtasks that can be executed in
parallel across a number of processors. And Java 7 also adds a new I/O for
working with different file systems, new networking and security features, and
backward compatibility with other versions of the platform.
Meanwhile,
from an industry observer's perspective, Al Hilwa, an analyst with IDC, said:
"The
three big things from a feature perspective here is the multicore support with
Fork/Join, the support for dynamic languages and the new file-system API. All
these have been on the drawing board for some time, so it is great for Java
developers to finally see them happen. One important message that comes through
from all that has transpired around Java over the last year and a half is that
Oracle appreciates the value of Java and will move it forward through solid
investment. This has to be a great relief for the community."
Support
for dynamic languages also resonated with Mik Kersten, CEO of Tasktop
Technologies and creator of the open-source Mylyn project. However, Kersten
said he believes the bulk of the updates coming in Java 7 are too incremental
for most developers to get excited about. Yet, this is a positive
indicator of Java's dominance in the enterprise, which demands slow and steady
change, he said.
However,
"What is noteworthy is the changes in Java 7 that embrace innovations beyond
the Java language," Kersten said. "The -invokedynamic' instruction
promises dramatic performance improvements for dynamic languages like Groovy
and JRuby. The new Fork/Join framework will help the implementation of
functional languages including Clojure and Scala. Where a decade ago we had to
jump through major hoops to create AspectJ on top of the JVM, these new Java 7
features will help the JVM continue to establish itself as the leading runtime
for programming language innovation."