After many years of work, Oracle has set September 22, 2016, as the release date for Java 9, its major overhaul of the Java programming language. The company just published a release schedule for the next 16 months highlighting each step along the way.
Java 9 is a very long-term project, one that began almost from the time Oracle first picked up the language as part of its acquisition of Sun Microsystems in January 2010. It took Oracle nine months to complete its purchase of Sun. In that time, Java suffered a severe loss of talent, and more left after Oracle took over, including Java's creator, James Gosling.
So Oracle had to rebuild the entire Java team, who then had to get their arms around the massive Java code base, then begin the process of revising and modularizing the language. That's not something done overnight. There have been revisions to Java, notably Java 8, and a lot of bug fixes in the process.
Earlier this week, Chief Architect of the Java Platform Mark Reinhold posted the proposed schedule for Java 9.
- 2015-12-10: Feature Complete
- 2016-02-04: All Tests Run
- 2016-02-25: Rampdown Start
- 2016-04-21: Zero Bug Bounce
- 2016-06-16: Rampdown Phase 2
- 2016-07-21: Final Release Candidate
- 2016-09-22: General Availability
As you can see, Reinhold is giving Oracle a lot of room in between bug stomping milestones.
"The dates here are meant to leave sufficient time for broad review and testing of the significant features of the release, in particular the introduction of a module system and the modularization of the platform, while maintaining the cadence of shipping a major release about every two years," he wrote in the announcement.
Easily the biggest change in Java 9 is the move to modularization, so you only load or install the pieces you need for your application or task. It has taken Oracle a good five years to implement this because it had to break down Java and rebuild all of it.
There will be other new features as well, such as REPL (read-eval-print loop), which allows Java developers to interactively evaluate statements and expressions. REPL is being looked at as part of Project Kulla, a Java shell.
There will also be a light-weight API for consuming and generating JSON documents and data streams, which will give Java itself an API for dealing with JSON rather than an add-on.