DEV Community

Discussion on: Why do I think Dot NET is Better Than Java?

 
slavius profile image
Slavius

Oracle invented Java programming language. Oracle owns patents and the source code of Java programming language. Oracle dictates Java programming language features and defines its API and ABI. Oracle certifies Java programming language implementations.
You can have Java without Oracle but only for community / hobby projects as no one from financial, banking, government, security, aerospace, etc. sectors will want to use Java implementation that is not certified and may not work / may work differently that the one from Oracle.

Thread Thread
 
khmarbaise profile image
Karl Heinz Marbaise • Edited

Unfortunately you are not up-to-date with the development of Java cause we are talking about the OpenJDK and not about Oracle JDK any longer. Oracle does not dictates programming languages features etc. there are JCP (Java Community Process)/ JEP process etc. which allows organisations/individuals to contribute code to the OpenJDK etc.

The source code is available under GPL v2.

There is not certification of the Java programming language by Oracle (OCP is something different). There is a TCK (Technology Compatibility Kit) which checks for compatibility. (See the Link Wikipedia to OpenJDK)

en.wikipedia.org/wiki/OpenJDK
en.wikipedia.org/wiki/Java_Communi...

Furthermore I strongly recommend to take a deep look into the lecture of Mark Reinhold on FOSDEM in 2019 (also some lectures before that).
archive.fosdem.org/2019/schedule/e...

You can have Java without Oracle but only for community / hobby projects as no one from financial, banking, government, security, aerospace, etc. sectors will want to use Java implementation that is not certified and may not work / may work differently that the one from Oracle.

If we are talking about commerical projects we can see that on AWS you can have Corretto by Amazon...several organizations etc. are using AdoptopenJDK (insurance/banks) ...

BTW: About which certification are you talking about?

Thread Thread
 
slavius profile image
Slavius

It seems you are not up to date with licensing and IPO.

Oracle is the one and only owner of Java. As a successor to Sun microsystems can and will prevent you from making modifications to Java programming language and software platform on their will.

Look up a "Google vs. Oracle America" (2015 - 2020) case where Google wanted to fork Java language and Sun simply refused to license it to Google (as Google wanted to make modifications and make Java PL open-source) just because Sun did not want modification to the Java PL. End of story. Google though they are smart enough and ended up in law suit over copyright and patent infringement of Java API.

Where in the world of open source would you be sued for forking or re-implementing a free software?

Distributions of OpenJDK are being certified that requires a commercial license from Oracle. Like the one from OpenLogic, RedHat, Zulu or Corretto .

blogs.oracle.com/java-platform-gro...

Thread Thread
 
khmarbaise profile image
Karl Heinz Marbaise

The modification of the programming language is not the point. The point is the compatibility between distributions which is fixed by the TCK which needed to be licensed by signing (openjdk.java.net/legal/OCTLA-JDK9+...) which makes sure to have the Java implementation (OpenJDK) is compatible with the other implementations. Furthermore is makes sure that an individual can not change existing code which would break compatibility which makes sense).

Furthermore the link reference to blogs.oracle.com/java-platform-gro...
does not tell something about a commercial license needed to make an OpenJDK...

That is, the OCTLA is for individuals and organizations who are working in and contributing to the OpenJDK Community, with OCTLA tested implementations from such individuals and organizations distributed only under the GPL license of the OpenJDK code.

Also this makes sure the code is distributed under GPLv2 otherwise I could create something and later say I want money (license fee) for the change(feature) I(whoever) made...

The example given is the IBM J9 which is a JDK which is implemented completely different but is conforms to TCK...and for that the commercial licensed is needed.

The part about Goold vs. Oracle was/is about changes Google want to make for Android (en.wikipedia.org/wiki/Google_v._Or...)...

So in the end there is no difference in using AdoptOpenJDK, Corretto etc. which are consuming patches for security bug fixes etc.