Linked by Thom Holwerda on Sun 12th Jul 2009 21:29 UTC
Permalink for comment 373072
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/25/13 0:45 UTC
Linked by Thom Holwerda on 05/24/13 23:59 UTC
Linked by Thom Holwerda on 05/24/13 22:33 UTC
Linked by Howard Fosdick on 05/24/13 21:41 UTC
Linked by Thom Holwerda on 05/24/13 14:44 UTC
Linked by Thom Holwerda on 05/23/13 23:22 UTC
Linked by Thom Holwerda on 05/23/13 22:04 UTC
Linked by Thom Holwerda on 05/23/13 22:01 UTC
Linked by Thom Holwerda on 05/23/13 17:52 UTC
Linked by Thom Holwerda on 05/22/13 22:23 UTC
More News »
Sponsored Links



Member since:
2008-10-30
C# vs Java is not just one language against the other it is also the std libraries of .NET vs JDK and CLR against JVM and the concepts that follow from this.
The .NET libraries are many, many, many times easier to use compared to the JDK libraries. In .NET you have one or two ways of doing a specific thing and you are almost never in doubt what the designers were thinking when they created the API for the given namespace. It is a completely different story for the JDK, it is convoluted, full of surprises and gives you plenty of guidance on how to do the wrong things (and no guidance on how to do it right). Essentially the concept behind the core .NET is POLS (Principle Of Least Surprise) and it is done in an coherent way. JDK on the other hand seems to be made by at least 5 sub groups that does not talk to each other or sometimes actively tries to sabotage each other.
Then there is the component orientation of .NET that is second to none when it comes to system programming. This is the real innovation of .NET is that you roll up your library in one self contained component that contains all you need for development and runtime for different consumer languages and different producer languages (with the DLR now also scripting languages can be producer languages) so .NET advocates complete transparency when making components. This is good for open source in that it very easy to bring in Python, Ruby and C# into the same application domain (you can extend C# classes in Python and extend from that in C# again, try doing that in Java :-)
Probably not Java but JDK and JVM are overly complex and should be revised (or Java completely discontinued, nobody loves it anyway).