EclipseCon Java is entering a renaissance following a period of darkness under Sun Microsystems, according to Oracle and computing giant IBM.
Mark Reinhold, chief architect of Oracle's Java platform group and one of Sun's former principal engineers, reckons that with Oracle's acquisition of the slowly fading Sun, things are looking brighter and "we" can finally make some progress.
Speaking at EclipseCon Wednesday, Reinhold highlighted Oracle's Java 7 and 8 roadmap – currently rolling through the Java Community Process (JCP) – as a sign that the logjam of previous years under his old employer has been broken.
Announced by Oracle in September 2010, Java SE 7 is due to be finished by July. Java SE 7 is the first big platform update since Java SE 6 in December 2006. Java SE 8 is planned for "late" 2012.
Also, Reinhold highlighted the fact that IBM - one of Java's biggest users and corporate developers - has joined the OpenJDK Project, which was started by Sun but that has "chugged along on a shoe string".
OpenJDK will be a place where new features will be prototyped for inclusion in the spec.
"The renaissance isn't just about Oracle. It's about Oracle working with existing partner Red Hat, IBM, and Apple to bring the same code base to more and more platforms," Reinhold told the developer conference in Santa Clara, California, Wednesday.
IBM Java chief technology officer and distinguished engineer John Duimovich, on stage with Reinhold, said IBM is still figuring out what code to contribute to OpenJDK and how to work with the project. He said that IBM doesn't just want to dump undocumented code on OpenJDK and that the company hopes to "earn its way in" over the next year based on its contributions.
IBM plans on bringing work it added to the rival Apache Harmony Project in the areas of OSGi modularity, pluggable VM support, and performance optimizations to OpenJDK. IBM abandoned Harmony suddenly last year to join OpenJDK with Oracle.
As for that notorious decision by IBM to unceremoniously dump Harmony, Duimovich said: "I don't have unlimited resources... that's how we think about it. It's a slight change in investment for us."
It's looking increasingly like the running of the OpenJDK Project will be carved up between IBM and Oracle. Under proposed bylaws unveiled by Reinhold in February, the OpenJDK will have a chairman, vice chairman, OpenJDK lead, and two members at large. Reinhold's proposed rules, however, have given IBM the power to appoint the vice chairman, while Oracle will appoint the chairman and the OpenJDK lead.
Reinhold told EclipseCon that Oracle's top goal is to keep Java a number-one language and platform. But the company is not acting for altruistic reasons, he added.
"Oracle has 20,000 Java developers working for the company, everything except the core database is written in Java," Reinhold said. "If that were to decline... that would be a significant re-investment."
Reinhold used EclipseCon to recap the plan for Java SE 7 and 8 and also hinted at Java 9, which doesn't yet have a date. Java 9 is still at the ideas phase, but he said under discussion are ideas that would give Java a big-systems feel for the enterprise and cloud computing.
These include automatic optimization for NUMA and massive multi-core architectures, the ability to work with multi-gigabyte heaps - up to 500GB - integration with hypervisors, support for muli-tennancy, support for big data - going beyond the 31-bit address space - and a meta object model that talks better to other languages' object models.
Reinhold noted that now that he's with Oracle, the importance of integration with the database has been impressed on him. He noted that there had to be a better way for Java to access data without first translating it into a Java format, which produces a "performance and a cognitive hit.".
On Java 8, he called out the introduction of modularity through the inclusion of Project Jigsaw.
Modularity is intended to clean up the Java code and make it work better with different tools and languages on multiple platforms. Modularity is intended to end the class-path problem with .jar files, with .jars to be produced using standard metadata and for the use of a standard declaration syntax that ends with a .java extension.
This would enable tools to understand logical dependencies in a chain and to enforce them. The modularity is also intended to let developers work their way up to OSGI, should they wish. ®
Sponsored: Webcast: Ransomware has gone nuclear