An inside look at Java 10

Java 10 will be released this month with a focus on cloud and serverless computing, Oracle has announced.

The release is the first since the company decided last year to go to a twice-yearly release schedule, with major updates occurring in March and September.

“The move to a new release model has been met with a lot of enthusiasm in the Java developer community,” George Saab, vice president of software development of the Java Platform Group at Oracle, told SD Times. “With JDK 10, we’ll deliver the first major release that was fully developed under the new model. I believe that the breadth of features, their high quality and the smaller scope overall of major releases under the new release model all make it easier for developers to find something exciting in each release, migrate and benefit from the faster cadence. As such, I think that this was a very positive change for the platform overall — it has been reinvigorating in many ways!”

Related content: Java EE renamed to Jakarta EE

Java 10 will continue the vision of rapid and iterative innovation cycles in the Java platform, said Saab. JDK 10 will be “better suited for serverless and cloud deployments than any previous release,” he said.

According to Saab, the company will continue with its plan of contributing features to OpenJDK from Oracle JDK. It has open-sourced the root certificates in the Java SE Root CA program and contributed the Application Class-Data Sharing feature, he said. The Application Class-Data Sharing feature enables the HotSpot VM to reduce the application footprint. By sharing common class metadata across different Java processes, it improves startup. This makes Java 10 well-suited for serverless and cloud deployments, Saab said.

Java 10 will also feature performance improvements from the previous major releases. One such improvement is “making the full [garbage collection] cycle of the default G1 garbage collector parallel,” he said.

Beginning with the release of Java 8, Java has become more of a functional language. Java 10 will be continuing in that fashion. By declaring local variables using ‘var’ and having the compiler take care of inferring types, Java 10 will feel like a traditional functional language, Saab explained. At the same time, it will maintain “Java’s commitment to static type safety and improving the developer experience by reducing the ceremony associated with writing Java code,” said Saab.

Going forward, Oracle will continue to evolve the platform to address new challenges and innovate on the JVM and Java language, Saab said. One of the challenges is moving to a serverless model. It will innovate on the JVM with projects such as ZGC, Loom, and Metropolis, and on the Java language with projects such as Amber, Valhalla, and several others, he said

Java EE’s transition to Eclipse has been smooth
Last year, Oracle handed Java EE over to the Eclipse Foundation. The Eclipse Foundation has since been hard at work with the transition of the project.

The transition has been running smoothly so far, according to Mike Milinkovich, executive director of the Eclipse Foundation. “The main issue is just the sheer scale of the project,” he said. Migrating the code, rehosting building, doing IP checks, and so on, is a lot of work, Milinkovich explained.

“So far I have to say that we’re very happy with the pace, and the community has been very supportive,” said Milinkovich.

A Project Management Committee has also been set up and was approved by the Eclipse Board of Directors in October 2017. According to Milinkovich, the committee has been meeting regularly and has already created and provisioned the first nine projects. He said that code is already being added to those projects.

One of the projects is Eclipse Grizzly, which allows developers to utilize the Java NIO API, which helps with the creation of scalable server applications. Another project is Eclipse OpenMQ, which is a messageoriented middleware platform. One more example is Eclipse Tyrus, which gives a reference implementation for Java API for WebSocket. Other projects include Eclipse Mojarra (an implementation of JavaServer Faces), Eclipse Message Service API for Java, Eclipse Java API for RESTful Web Services, Eclipse Jersey (a REST framework), Eclipse WebSocket API for Java, and Eclipse JSON Processing.

According to Milinkovich, the Java Community Process will not be involved in deciding upon technical specifications for future iterations of Java EE.

Instead, the Eclipse Foundation will be creating a new specification. As part of this process, it will create a new brand, compatibility logo, and certification process. It will also provide access to the Technology Compatibility Kits (TCK). The rebranding will occur because Java EE is closely associated with the old, monolithic enterprise Java architecture.

Milinkovich said that a community election has been underway in a GitHub thread to help the company choose a new name to rebrand Java EE. As of press time, the two final choices were Jakarta EE and Enterprise Profile.

“Under this new brand this technology will head to a modern, cloud-native set of capabilities,” said Milinkovich. “The ‘Java EE’ brand is strongly associated with the old, on-premise, monolithic application servers of the past. Everyone involved in EE4J is working to ensure that Java has a bright future as the language and platform of choice for the microservices and cloud native architectures of the future.”