Linked by Thom Holwerda on Sun 12th Jul 2009 21:29 UTC
OSNews, Generic OSes Even though news has been slow the entire week due to the fact that it's summer and people are more interested in vacation than in technology news, we still had a lot of interesting stuff this week. Google obviously captured the headlines with its Chrome OS, but we also talked about Mono, Richard Stallman, and many other things.
Permalink for comment 373072
To read all comments associated with this story, please click here.
RE[3]: Mono
by Slambert666 on Mon 13th Jul 2009 06:45 UTC in reply to "RE[2]: Mono"
Member since:

When you say "fiddling around with Mono" I assume you mean C#. If that is the case how can you say that C# is easier to understand than Java when the bases of both languages are virtually identical? The differences between them don't start manifesting until you get into the advanced topics.

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 :-)

Also to call Java overly complex in the same paragraph is ridiculous. Java actually has a pretty small feature set by design. C# on the other hand is grab bag containing every feature the designers could think of.

Probably not Java but JDK and JVM are overly complex and should be revised (or Java completely discontinued, nobody loves it anyway).

Reply Parent Score: 1