DEV Community

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

Collapse
 
khmarbaise profile image
Karl Heinz Marbaise • Edited

I have to add some disagreements as well here:

There are a lot of resemblances among Dot Net and Java, but there are some significant differences that make me want to discuss where and when Dot Net is the best choice for your desktop, web, and mobile software development project.

The interesting part is that the linked article contains a lot of very similar text parts with also a lot of wrong statements as well. And also contains statements which contradicts the parts in your article?

Very strange quote of the article:

Platform-Independent – Java offers the comfort of write program once and run on any hardware and software platform and any Java-compatible browser. This gives the ability to move easily from one computer system to another.

That shows that this article also contains a lot of misunderstanding or even worse wrong knowledge about java and it's runtime environment etc. Just a single quote from that linked article.

Quote from your article:

When we talk about Java, it is a programming language while Dot Net is a framework supported by Microsoft.

You seemed to misunderstand two things. Yes Java is a programming language. It is extremely wide used with an extremely large ecosystem (ten thousands of libraries, tools etc.) which is supported by a large number of companies and communities.

Java and .NET have been built to allow programmers to build Web applications that are "steady." A 3-stage framework consists of a client level, server level, and database level. Dot NET and Java both provide transactions that allow business processes and data in databases to be triggered.

For Dot Not I can't say but for Java I can say what you have written is simply wrong, cause Java does not provide transactions. Only frameworks (for example: hibernate/JPA)/ JEE Standards (running on Application servers) are providing transactions. But technically I can implement transaction functionality in Java or in Dot Net.

For open-source projects such as Java, lack of infrastructure, and qualified assistance is hardly feasible. Consequently, Java Runtime's regular updates and other elements ruin user interactions and cause distractions to others.

  • First in general you seemed to misunderstanding the concept of open-source projects. Java itself is not an open source project. It is supported by large number of contributors etc. and run by Oracle employees which are the leaders of the project (some changes over the time have been done).
  • I don't understand what your statement about "qualified assistance..and Java Runtime's regular updates (yes sometimes based on CVE fixes; regularly done oracle.com/security-alerts/
  • Or are you talking about support for Java, JDK, Tools?

It provides better performance- The huge achievement that Dot NET has acquired is its brilliant performance. All the new updates and improvements lead to an optimized code that in return boosts the performance. The most important thing is that you don't have to change the code in reality.

Where is any comparison for that statement? The performance of the JVM is increasing steadily. There no need to change the code either.

I strongly recommend to read about GraalVM which compiles your Java application into native code and the performance is another step better than via usual JVM...

It has a mature runtime as CLR- In many technical details, the Common Language Runtime (CLR) is superior to JRE or JVM. It is because JVM is a compiler and simply translates Java Byte code into an extensive instruction for, and not directly for the computer. This is also still sluggish and needs daily updates to accommodate further operating systems. In comparison, the CLR of Dot Net is not the case.

Mixing concepts and misunderstanding what JVM really is. JVM is the Java Virtual Machine which is a concept to define a machine with Virtual processor which is emulated (very very simplified) on the hardware machine. More details here:

The JVM (en.wikipedia.org/wiki/HotSpot) uses a HotSpot part which optimises (compiles into machine code during runtime..simplified) the code parts which are used very heavily (HotSpots) very very simplified.

So first JVM is the Java virtual machine and is not the compiler. The byte code which is used for compiled Java code it is extremely stable that you can run byte code which has been compiled with Java 1.1 with a todays JVM (for example JVM 8).. This is most important things which the designers of the language and the JVM etc. have done is backward compatibility. You can run very old code on newest JVM versions.

If you trust in Microsoft's strengths and its ASP.NET framework, it's time to join in, rather than wander around dangerous open-source environment, where you have to go extra miles to achieve something significant. Of course, a team of seasoned Dot Net developers is needed to make the most out of it and give remarkable results.

This part sounds like a statement of Steve Ballmer about Linux is like cancer.