Mark Reinhold on the evolution of Java platform and OpenJDK

5 min read

Yesterday, Mark Reinhold, Chief architect of the Java Platform Group and tech lead at OpenJDK talked about both the short-term and long-term technical roadmap of Java and the JDK. He was speaking at the ongoing OpenJDK Committers’ Workshop which meets twice a year to discuss the state of the OpenJDK Community and the JDK technical roadmap.

With decades as one of the world’s most popular programming language, you’d be forgiven for thinking it might be slowing down – especially with younger languages like Kotlin jostling for position in the popularity stakes. However, there’s plenty of life in it yet. Mark explained what Java’s future might look like and how developers can influence its growth for the better.

Who is in charge of the future of Java and OpenJDK?

Mark believes that the success of the Java platform depends on contributors focussing on the big picture. The leaders who guide the development platform are not merely developers, who are only interested in writing code or developing new features; the true leaders are what Mark likes to call, “stewards”. These stewards are people who assume responsibility for overseeing and protecting something considered worth caring for and preserving. They try to preserve the past while evolving in the future.

A developer is considered as a steward if they demonstrate 3 key qualities:

  1. Deep Knowledge in at least one key area.
  2. Breadth of care across the platform: They think from time to time about the entire platform and how the whole thing fits together.
  3. Empathy: They have the ability to put themselves in the minds of ordinary developers who use the platform rather than work on the platform.

In the case of OpenJDK, stewards are effectively in charge of the development of the platform. These stewards are led by Mark Reinhold, but he’s also supported by John Rose for the Java Virtual Machine and Brian Goetz for the language and libraries.

Apart from these guys, many other developers, who have the 3 key qualities above, contribute to stewardship as a part of their day to day work. Every single one of them has demonstrated a deep long-term track-record of expertise in at least one area combined with a breadth of care with the entire platform and the ability to empathize with the ordinary developers.

Stewards ensure reliability and compatibility

The stewardship of the Java platform is guided by two key values.

  1. First, it’s thinking about long-term goals and working to balance conservation with innovation.
  2. Second, it is about preserving the values of Readability and Compatibility.

Readability is essential to maintainability. This means you don’t think about the code from a short-term perspective. Thinking about the long-term reliability of the code you’re writing is vital, not least because it makes life easier for other people using the software in the future.

Compatibility is similar. It’s all about recognizing that software doesn’t exist in a vacuum – it exists in an ecosystem of tools and developers. There are a number of different types of compatibility that highlight what it means in practice:

  • Source: existing code continues to compile
  • Binary: existing code continues to link at run-time
  • Behavior: Existing APIs continue to behave within the bounds of their specifications.
  • Migration: Adopting a new feature incrementally
  • Intellectual: New features are built on existing knowledge. Add selective features but make them look like they have been there all along.

The Java platform ensures that stewards strive to balance conservation and innovation. It’s only through balance that the project can maintain its core values of readability and compatibility.

How stewards guide the Java platform

As Mark pointed out, it takes considerable solitary thinking, maybe months and years, before an idea takes off. Even then, it needs to be discussed intensively with other stewards.

The fruits of these discussions surface in two ways that ensure visibility and transparency:

  1. New JEPs in the JEP’s process
  2. New OpenJDK projects which explain a problem area in depth, eventually generating more JEPs, which later wind up as features.

Transparency is essential. Anyone is open to make an appeal if they don’t like a decision. In fact, if you don’t agree to a decision that the Head JDK makes, you are also free to appeal to the OpenJDK Governing Board.

How you can influence the evolution of Java

All developers, external contributors, and organizations have the opportunity to influence the direction of the Java platform. The degree of that influence is determined by the degree of the contributions made in the JDK community on a meaningful and ongoing basis.

This includes detailed bug reports, constructive critiques, bug fixes, small enhancements, entire non-trivial JEPs. If you only participate in order to serve yourself or your employer’s narrow technical interests then you are unlikely to gain much influence. However, if you deliver a strong track record of consistent serious contributions over a long period of time, then your influence will grow quite large and you might even become a steward yourself.

The OpenJDK community has been going strong over the past years under the leadership of the Java stewards. You can go through the entire conference on YouTube to review life at OpenJDK Community, and a quick look at what’s ahead for the Java platform in general.

Read Next

Oracle announces a new pricing structure for Java
Oracle reveals issues in Object Serialization. Plans to drop it from core Java.
5 Things you need to know about Java 10

Content Marketing Editor at Packt Hub. I blog about new and upcoming tech trends ranging from Data science, Web development, Programming, Cloud & Networking, IoT, Security and Game development.


Please enter your comment!
Please enter your name here