DEV Community

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

Collapse
 
slavius profile image
Slavius

First things first. Every OpenJDK/JRE version higher that 8 does not receive patches from Oracle anymore. Oracle changed that and provides patches only to commercial (a.k.a. commercially licensed) Java versions. There is RedHat, which releases OpenJDK with recent patches but you get those patches, again, only on subscription based RedHat Enterprise Linux OS.
No free Java patches anymore from Oracle. I personally considered that as low blow from Oracle.

Regarding performance - I did not read any changelogs from OpenJDK development recently but the sheer amount of optimizations that goes into .Net Core with each release is just mind blowing. Just scroll fast through one of those "performance improvements in this release" blog posts like here and you'll understand they mean it. devblogs.microsoft.com/dotnet/perf...

Collapse
 
khmarbaise profile image
Karl Heinz Marbaise • Edited

If you don't like to use RedHat I can use:

Completely free...

Information about changes / security fixes etc. see blog.adoptopenjdk.net/

About changes etc. from Oracle /OpenJDK I strongly recommend to start reading:

oracle.com/java/technologies/javas...

More detailed for only the last 300 days:
bugs.openjdk.java.net/secure/Confi...

Thread Thread
 
slavius profile image
Slavius

Completely free updates that are not from Oracle...

Mandatory read: developers.redhat.com/blog/2018/09...

`Oracle recently announced that it would no longer supply free (as in beer) ... JDK releases ... , and neither would Oracle engineers write patches for OpenJDK bugs.

Keeping Java updated in the absence of support from Oracle engineers will be a challenge to the Java community ...`

Thread Thread
 
khmarbaise profile image
Karl Heinz Marbaise

Why do we need something from Oracle? What is so important about the relationship to Oracle?

Thread Thread
 
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.

Collapse
 
moaxcp profile image
John Mercier

How is your first statement true? AdoptOpenJDK 8 is at 8u265. Oracle jdk 8 is at 8u261. Clearly openjdk 8 is still receiving patches. There may be certain patches that are only available to oraclejdk but the community is open source and does what it wants.

I'm not sure what performance comparison is being done here? Am I supposed to count the number of improvements in each tech for you? How would that convince me one way or the other? My purpose was only to point out that java does compile to native code at runtime. It was addressing this part of the article "and not directly for the computer."

Thread Thread
 
moaxcp profile image
John Mercier

The linked article is clearly not informed. Why is javascript (node and jquery) included on the java side of the logo? Those technologies are not related to java at all. Another example, one java disadvantage is Single Paradigm language. This is not true. Java 8 introduces lambdas and the functional programming paradigm.

Memory Management - which parts of dot net use garbage collection? Since dotnet uses garbage collection how is this a disadvantage of java and not of dotnet?

Look and feel - Java supports native look and feel for all major platforms in both swing and javafx desktop applications. No disadvantage I can see.

The rest of the article brings up issues with java 6 or 7 which are not relevant to developers today. And a fake claim that java is more for linux than windows applications.

dotnet may be better than java. I would really like to see both improve over time. The competition is good. But these articles are not convincing me to choose one over the other.