Linked by Thom Holwerda on Tue 30th Jun 2009 21:29 UTC
Mono Project We've had a lot of debates recently on the merits - or dangers - of Mono. We've had troubles with how Microsoft views Mono and whether or not everyone is safe using it, but we also had a public back-and-forth among Debian maintainers. During all this, Richard Stallman remained pretty mum on the issue, today he broke the silence on the FSF website.
Thread beginning with comment 370990
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Clarification
by KermitTheFragger on Tue 30th Jun 2009 22:30 UTC in reply to "Clarification"
KermitTheFragger
Member since:
2008-06-12

Well both Flash and Java had a official Linux Runtimes. Even though they weren't opensource it does tell something about the vendors attitude towards Linux.

As for Java; Sun has always been cooperative in ragards to Java; just look at FreeBSD (http://www.freebsd.org/java/) : "The FreeBSD Foundation has negotiated a license with Sun Microsystems to distribute FreeBSD binaries for the Java Runtime Environment (JRE™) and Java Development Kit (JDK™)".

Also for as far as I know there are no official licensees for the .NET platform. In contrast to Java where there are lots of them (http://en.wikipedia.org/wiki/List_of_Java_virtual_machines)

So I think we can safely say there is a world of difference between Sun's Java Platform and Microsoft's .NET Platform.

I also wonder why people today want to use .NET in a *nix environment (where Mono obviously lags behind its reference implementation) when you can use Java, a similar platform that is a 100% open source ?

Reply Parent Bookmark Score: 7

RE[2]: Clarification
by ebasconp on Wed 1st Jul 2009 16:27 in reply to "RE: Clarification"
ebasconp Member since:
2006-05-09

I also wonder why people today want to use .NET in a *nix environment (where Mono obviously lags behind its reference implementation) when you can use Java, a similar platform that is a 100% open source ?


Because in several aspects, C# is better than Java:

* Properties are a nice and elegant way to expose object attributes.

* Delegates are an easier way to provide callback behavior instead of creating inner or anonymous classes.

* Autoboxing in C# is more natural and built from teh ground. In Java is an adding to the Java programming language, but not in the JVM.

* Generics in C# are supported for the CLR, the generic specialization is done when instancing a class [the assembly is loaded into the CLR with the specific types]. In Java, generics are just "syntactic sugar".

* For the last point, generics in C# provide information about the types specialized in every instance. Java forgets everything and marks everything as Object [type erasure].

* java.util.ArrayList<Integer> performs poorly compared to System.Collections.Generic.ArrayList<int>

* PInvoke infrastructure is easier to use than JNI

* The "override" keyword in C# avoids several errors.


And about Mono, yes, it goes behind the reference implementation, but they are also implementing new and interesting stuff [Gtk#, Cocoa#, Mono.Posix, etc.]


DISCLAIMER: I am a Java programmer.

Edited 2009-07-01 16:31 UTC

Reply Parent Bookmark Score: 4

RE[3]: Clarification
by graffic on Sun 5th Jul 2009 00:09 in reply to "RE[2]: Clarification"
graffic Member since:
2009-07-04

* Properties or how to spend your life typing { get; set; }. It is so "automatic". Sometimes I guess if they're "really" useful.

* Not being able to create a dummy anonymous class using an interface is not a good reason to put "delegates". So you get the compiler creating special classes and special objects to have a pointer to a type safe function. And you end up using the event keyword to use them on interfaces. Messy...

* Autoboxing and the using System for the upper case s in the string (String). "totally integrated"

* Generics, if they work don't care much how.

* Well, while working inside a generic class you don't know the future types unless you ask for the type and do your "hacky" things. What hacks are you doing in your code?

* I'm sure that there are 100 things in C# that work better than in java. But I'm sure of the opposite too.

* I felt the same "pain" invoking outside things in java, C# and python.

* The override and new keywords can "create" several errors. But as always it's on you, programmer, to use them right.

Mono is the ugly brother of c#. While your pretty brother has static reflection and many other nice things, you just say "hey, but I have cookies". Well, you can eat all your cookies.

DISCLAIMER: I was a java programmer, I'm a C# programmer.

Reply Parent Bookmark Score: 1