Preface to Java - Part II
Something before "Hello World!!!"
In this blog post, let's talk about the JDK(Java Development Kit) Roadmap and its providers. You must've been heard various times about OpenJDK, right? So, what is OpenJDK? How is it different from THE JDK?
THE JDK: Commonly known as Oracle JDK. This is the original Java created by Sun Microsystems and later acquired by Oracle. Hence now we know it as Oracle JDK. Oracle Java SE versions which are released after April 16, 2019, will fall under BCL License.
But before we delve into deep discussion, let's take a look at the roadmap of the original JDK i.e. Oracle JDK
[Snapshot Courtesy: oracle.com/java/technologies/java-se-suppor..
LTS here means Long Term Support. In the roadmap, you can see the JDK 8 and JDK11 are the LTS versions, which means Oracle will be providing the Oracle Premium Support and periodic update releases to the LTS versions. And all the non-LTS versions will force retire to the next version(LTS or non-LTS).
From January 2019 onwards Oracle started to charge for JDK for commercial usage and you'll be getting the proper premium support along with the periodic updates. It also includes security updates(*if and when appropriate). Please visit the Snapshot Courtesy link to know more about Oracle Release Support.
I hope we have enough knowledge about the Oracle JDK and its plans. So, let's move onto the million-dollar question, "What is OpenJDK?"
OpenJDK is the open-source implementation of Java Standard Edition (Java SE). Oracle is one of the contributors to OpenJDK along with other providers. OpenJDK is licensed under GNU GPL v2.
That's it! That's enough to understand the million-dollar questions.
Oracle JDK is almost 99% similar to the OpenJDK from its implementation perspective.
From Java 11 forward, therefore, Oracle JDK builds and OpenJDK builds will be essentially identical.
If you wish to look at the differences, those could be listed as below:
- OpenJDK is free to use under the GNU GPL v2 license.
- OpenJDK is modifiable and could be altered as your preference and usage.
- OpenJDK has their own support plans which differ as per the provider.
- Release plan and support policy, which again differ as per the provider.
You must have noticed that whenever we are discussing the OpenJDK, we don't have a standard reply to every question. The reason is that OpenJDK has many providers which focus on different aspects of JDK and their support policies are also different. The majority of them are listed as below:
- Alibaba Dragonwell
- Amazon Corretto
- Azul Zulu
- BellSoft Liberica JDK
- IBM Java SDK
- OpenLogic OpenJDK
- Oracle OpenJDK
- Red Hat build of OpenJDK
- SAP SapMachine
Before we move on with other important stats, let's quickly talk about a very important term with respect to OpenJDK, i.e. TCK(Technology Compatibility Kit). This is a test that basically certifies an OpenJDK has met all the checks to be called Java SE. Consider this as an OCJP(Oracle Certified Java Professional), which means that you know the Java syntax and basics. This TCK certificate is provided by Oracle itself which provides a license to the vendor against their OpenJDK.
Please refer to the below snapshot for a better comparison between different vendors.
[Snapshot Courtesy: en.wikipedia.org/wiki/OpenJDK]
This matrix will provide you a very brief and important differentiation amongst the various OpenJDK vendors.