The Java Universe - Reaching for the Stars

Start scrolling down to discover the evolution of Java and how you can contribute to create future stars ...

Recently I wanted to check out new Java language features. My recherche led me to Oracle's openjdk pages.

However, looking at the list of JEPs felt somehow discouraging... How are they related, what comes next?

Does Java have future? How can I visualize its evolution and show up ways for developers to contribute and being part of the community?


Let's explore together the evolution of Java in a playful way.

First, let's imagine that every JDK (Java Development Kit) release is a star!

White stars represent former versions, before introducing the 6-months cadence.

Orange stars indicate versions from JDK 10 on...

An empty orange star is a normal release.

A full orange star is a LTS release.

A JEP (JDK Enhancement Proposal) describes a new feature or improvement for the JDK. JEPs are used to propose and track changes to the JDK itself.

Many JEPs can belong to a single JDK. They are surrounding 'their' JDK but can also be related to each other if completing a feature spans several JDKs.

As JEP numbers are hard to remember and don't say a lot for most people, we could use a shortened title for each.

Here, you can see the JDK releases along with their JEPs over time.

While full rhombuses represent completed features, empty rhombuses are either incubator, experimental or preview features, meaning that you can use them but they may change any time.


Let's play a bit. Try to hover over a JDK or JEP.

Or select another JDK release on the time axis!

Now, let's see the JDK releases and their JEPs grouped together, in an overall view, the "Java Universe"...


Placing your mouse over a circle reveals more details.


Before looking at how features resp. JEPs are related to each other, what is their connection to projects?

Projects are larger, less formal initiatives that often take years to complete.

A project usually includes a set of JEPs and is realized across multiple JDKs.

You’re likely more familiar with projects and their goals than with individual JEPs.


Click on a project button to see all 'its' JEPs over time to get an idea what topics belong to it.

Until a feature is finished, it can span over several JDKs, from incubator, preview, until they are finalized.

While the number changes, the content to work on is the same for related JEPs.

In some cases it takes even longer to finish...


Sometimes, one JEP is dependent on another one, but let's keep it simple right now and use the same type of connecting line.

Now, you are ready to see the whole Java Galaxy...


Select any star on the sky to see the connections better.

If you are overwhelmed or in trouble now... please be patient until I offer you a better view in the coming months...

Is there more space to discover new stars and jump into new adventures?


I started small, showing how JDKs and JEPs fit together.

What Duke tells me: you can contribute, too!

Write about how you solved a problem... Connect with people at JUGs and conferences... Contribute to open source - ask maintainers, fix docs, add tests, solve bugs, add features...

Participate in the Java Community Process...

It's time to embark on these new and exciting paths!

My benefit from this visual journey?
It helped me learn more about how new Java language features get integrated, while enjoying building data visualizations.