QCon 2012 With Java 8 still on its way in mid-2013, Oracle is already prepping for Java 9 and 10, and protesting that reports of a Cobolesque slide into irrelevance are much exaggerated.
Java 9 and 10 will tackle big data, multi-language interoperability, cloud and mobile and ship in 2015 and 2017 respectively, Oracle said Wednesday.
Formerly Sun Microsystems man and current Oracle Java product manager Simon Ritter – speaking at QCon 2012 in London on Wednesday – also promised that Java would go back to a two-year release cycle.
Java had been released every two years until Java 6, which was released in 2006 under Sun. But thanks to a political logjam, the next release was in 2011, when Java 7 came out.
Outlining Java 9 and 10, which Ritter stressed are not set in stone, Oracle’s man said the database giant – a big consumer of Java – wants to continue to evolve the platform, not just for the enterprise, but for consumer and devices, too. Oracle wants to attract more developers to Java for the big push.
Ritter dismissed suggestions that Java is slipping into some kind of boring maintenance twilight mode or that language and platform excitement had moved elsewhere.
“Java is not the new Cobol,” Ritter said. “I've seen analyst reports where Java is the new Cobol where it drifts off into insignificance but I don't believe it is that way.”
He said Oracle is working to make sure Java is relevant to building the kinds of mobile- and server-based, web-connected and massively parallel apps that are currently being built.
For the Java Development Kit (JDK) 10 or after, a fundamental change is being discussed: making the Java language Object Oriented. This might see the introduction of a unified type system that turns everything into objects and means no more primitives. The JDK is the developer kit that is officially released by Oracle, based on the work of the Oracle- and IBM-led OpenJDK project.
“This requires more discussion, to make Java a true Object-Oriented language,” Ritter said of the potential move to OO.
On the table for JDK 9 is a move to make the Java Virtual Machine (JVM) hypervisor-aware as well as to improve its performance, while JDK 10 could move from 32-bit to 64-bit addressable arrays for larger data sets.
Ahead of both is the arrival of JDK 8 next year, and this will see some big changes around web programming and mobile.
JDK 8 will see the Standard Edition of Java (Java SE), which is built for the desktop, updated to run on the kinds of mobile devices that would currently run Java Mobile Edition (Java ME). Oracle believes multi-core and availability of hundreds of megabytes of memory on chips used in smartphones means Java SE can now run on such phones instead of just the desktop.
To accommodate this, Oracle has already announced that Java 8 will wrap in modularity courtesy of Project Jigsaw. The idea is that you can package up Java applications and libraries to remove class paths and make programming simpler and cleaner. The Java platform will become modular so applications can be installed with only the components they need – rather than the full, and rather bulky, Java SE profile.
It’s an interesting move, given Oracle is locked in a legal fight with Google over Android, which implements a part of the Apache Software Foundation’s Harmony Java SE. The OpenJDK is an implementation of Java SE.
“Java has been around for 15 years,” Ritter told QCon. “We stated off with 200 class files. We are up to 4,000 now. If you look at deprecated methods... some classes have more deprecated methods than non-deprecated methods. We need to remove some because Java has gone kind of big.
“Why would you want Corba in the runtime libraries when nobody uses it? Why would you want JDBC in libraries when not building a database application? We want to break it into modules to make it easier to pull out apps that will make it easier for us to target Java SE at mobile devices.”
A push for modular Java has already taken place, with the OSGi. Ritter said Oracle is looking at compatibility with the OSGi, so that an OSGi bundle gains the ability to run as a Java module.
“SE8 is fairly well defined and nailed down," Ritter said. "SE 9 and SE 10 – none of this is cast in stone."
The ideas on SE 9 and SE 10 are what “we can do in Java, might do in Java, but won’t necessarily do in Java,” Ritter said, adding: “We don't want to make radical changes to Java” that might make programming in Java harder or open to more errors. ®