Wednesday, May 9, 2012

10 Reasons Why dotNET Is Better Than Java



This post is prompted by a post by africanboy when he said something like "Java Is Dead" and some people were like attacking him for expressing his view.

I've been a fan of the Java technology for quite some time now. I remember literally copying a Java book when I didn't have the money to buy it.

But one thing I discovered with technology is that it's not always about love but it's more about power. 
The bitter truth is when I compare java technology with CLI (popularly known as .NET), I see that Java is less powerfull in many areas.

I'll be using the words CLI and .NET interchangeably refferring to any implementation of the CLI (.NET, Mono or dotGnu)
This are some of my points.

1- In .NET you have a choice of languages to code with (C#,VB.NET, Java,Boo,Python e.t.c), producing the same type of compiled code but in Java one is limited to the java language. One may argue that jython is an alternative, but even the creator of jython who later created it's .NET version called IronPython admitted that .NET is a more powerful technology.

2, NET prgrams run at native speed while java is interpreted which makes java slower.Although java has Just In Time compilation but it stills run slower. With .NET you are not limited to JIT but have the option AOT or ahead of time compilation if you want to eliminate startup delays.

3. Calling native code in java is not a very clean process. You need to generate some stub files which makes the whole process cumbersome and dirty. In .NET you just declare that you are calling a native function from a specified library and just start calling it.

4. .NET languages are richer than Java. They have object oriented feature that are absent in java e.g properties,delegates,generics.

5. Java GUI programs look alien on the host operating system. Even if you use the OS's theme you still notice that the java widgets look out of place.

6. .NET in the form of Mono has brought a whole revolution on the linux desktop in form of great applications like beagle, tomboy, diva, iFolder, banshee e.t.c. This is something that java has failed to do despite the fact that it's been there long 
before .NET

7. Many programs that would have been difficult to develop with java have been developed with .NET things like compilers (Mono's C# and VB.NET) 3D game engines (unity game engine) e.t.c

8. The CLI is an open standard maintained by an independent standards organization (E.C.M.A) while java is still governed by SUN microsystems.Even though java has recently been open-sourced, it's future will still be highly influenced by SUN.

9. You can code on the .NET platform using Java but you cannot code on Java platform using any of the .NET languages.

10. Using Mono's IKVM to call java code from .NET or convert java classes to .NET assemblies. This is so efficient that large java programs like the eclipse I.D.E have been runned on .NET.

This is not an exhaustive list but I believe 10 points are enough to send the message.

One more thing, feel free to criticize my views or even flame me.

No comments:

Post a Comment