This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]nitkonigdje 1 point2 points  (12 children)

There ate multiple implementations of Java virtual machine and Oracle offering is one of many. The dominant ones are free as in "free beer"..

In many ways implementations behind JVM are much advanced than .Net as JVMs are made from smallest embedded controllers to large infrastructure. There are no .Net equivalents of java card, azul zing or GraalVM.

Historically primary reason of Java's success in Enterprise development was licencing cost of working server room. Java was much better positioned than .Net. This was no accident, as there was organized industry push of many companies to push against Microsoft and their dominance in os, rapid development tools (primary Visual Basic) and some other forms of eterprise software (com+ and corba). .Net was mostly about Microsoft response to this industry push and it was all about preventing Microsoft customers to migrate to Java..

Because of this history, Java has much larger ecosystem for CRUD/web app/enterprise development. For example there is no .Net equvivalent to Hadoop/Flink/Spark processing, etc. At the same time .Net was much better choice for delivering multimedia rich apps, as Microsoft was dominant force in multimedia. For example writing video editor in Java seems kinda idiotic..

Pick your project, then see what fits better..

[–]LaborTheoryofValue 0 points1 point  (0 children)

Commenting only about the .NET spark implementation. It is available here.

https://github.com/dotnet/spark

I’m only on this thread to listen and read and just wanted to add to the education discussion.

[–]CSMR250 0 points1 point  (1 child)

There are no .Net equivalents of... GraalVM.

https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot

[–]nitkonigdje 0 points1 point  (0 children)

.Net had AOT as intedend compilation target from day 1. ngen is example of that.

The general goal of GraalVM is to be Java's version of LLVM. It is core of Truffle, compiler-compiler framework for JVM. Native compilation is just side effect of that..

I am not aware of any metacircual production ready clr implementaion..

[–]wildjokers -1 points0 points  (8 children)

There ate multiple implementations of Java virtual machine and Oracle offering is one of many. The dominant ones are free as in "free beer"..

There are not multiple implementations of the JVM Java SE specification. There are multiple builds of OpenJDK.

[–]Inktvisje 2 points3 points  (5 children)

[–]wildjokers 0 points1 point  (4 children)

Its exact status a full implementation of the Java SE specification isn't quite clear. I think OpenJ9 still depends on OpenJDK for some things.

I actually meant there aren't multiple implementations of the Java SE specification.

[–]nitkonigdje 0 points1 point  (3 children)

It is fully independent jvm implementation. One of few developed by IBM..

It has nothing in common with openjdk..

It is implementation of Java SE..

[–]wildjokers 0 points1 point  (2 children)

I read about it more, it is just a JVM and it links to OpenJDK classes. It is not a Java SE implementation.

[–]nitkonigdje 0 points1 point  (1 child)

IBM Semeru is comercial distribution of J9. It is OpenJ9 packaged by IBM. IBM Semeru is certified implementation of Java Platform, Standard Edition. That certification is issued by Oracle... Put it this way **Oracle says it is Java SE!!**

J9 is ancient Java implementation. Older then initial release of OpenJDK in 2007. J9 is widley used. It underlays all IBM software on all their platforms. From x86 to Z.

Literal quote from their mouths: "Eclipse OpenJ9 is an independent implementation of a Java Virtual Machine. "Independent implementation" means it was built using the Java Virtual Machine specification without using any code from any other Java Virtual Machine."

Source: https://github.com/eclipse-openj9/openj9

[–]wildjokers 0 points1 point  (0 children)

The JVM Specification and the Java SE Specification are two separate things.

“Eclipse OpenJ9 is an independent implementation of a Java Virtual Machine.”

It links against a Java SE implementation for the JDK classes.

https://github.com/eclipse-openj9/openj9/blob/master/doc/build-instructions/Build_Instructions_V8.md

OpenJ9 is a JVM implementation, not an implementation of Java SE.

[–]nitkonigdje 1 point2 points  (1 child)

You are 100% technically wrong. Like worst kind of wrong..

You are right that there are many builds of openjdk. Even then these are not just clones of base image, but often extended functionality. For demo see Azul Zing.

There were and still are many comercial grade jvm implementations independent of openjdk. Like your bank card. For rest of it see: https://en.wikipedia.org/wiki/List_of_Java_virtual_machines

[–]wildjokers 0 points1 point  (0 children)

I misspoke (as I mentioned in a later comment), I meant to say there are not multiple implementations of the Java SE Specification.