DotGNU vs Mono

Go To StackoverFlow.com

24

DotGNU and Mono seem to be attacking the same problem - namely implementing the .NET CLR in a free, open-source way with an eye to cross-platform compatibility.

I've been reading quite a bit about both, and I'm having a hard time deciding which implementation to use for an upcoming project. My particular project doesn't need System.Windows.Forms, so the graphical UI part of the libraries won't be too important.

So: has anyone tried comparing the two directly? What are the pitfalls of either with respect to the other? Is one more supported by the FOSS community than the other?

Thanks to all who respond :)

2009-06-16 19:34
by Mike


36

Well, Mono looks like a much more complete port to me, with a lot more backing.

Judging by the web site, DotGNU seems to be as much about telling people not to use .NET as it is about providing a viable alternative. Many of the links (such as the "latest changes") don't seem to go anywhere useful.

Mono, on the other hand, is very obviously under active development, supports the new DLR, has implemented C# 3.0 and LINQ support, is available to install from packages for multiple platforms, has working documentation etc. The winner seems pretty clear to me.

2009-06-16 19:40
by Jon Skeet
I also got a similar impression looking at the DotGNU site. It looked like the biggest news since 2006 (and one of the few) they had was switching from CVS to git - crashmstr 2009-06-16 19:43
Yup. And if they're only going to go by ECMA standards, they'll be stuck with C# 2.0 - Jon Skeet 2009-06-16 19:44
Microsoft seems to be supporting Mono too - Joshua 2009-06-27 22:42
That's not really fair. Portable.NET actually had a lot of work put into it by a very talented programmer (Rhys Weatherley). It's an honest attempt to create an implementation of the ECMA specs; it's simply that there were two projects doing the same thing and Mono won the Mindshare war - Simon Howard 2010-10-22 18:20
@Simon: Which bit of my post are you actually disagreeing with? Whether Portable.NET is technically excellent or not, the website still seems to be more about politics than anything else - and I can't see how anyone could argue against my points that Mono is more complete, has more backing, is under more active development etc - Jon Skeet 2010-10-22 21:31
"Judging by the web site, DotGNU seems to be as much about telling people not to use .NET as it is about providing a viable alternative." seems to imply that you think DotGNU is just an anti-.NET campaign. And yes, I agree that Mono is more complete in every respect. If I had to choose one of the two to use for a project, I'd pick Mono every time. But DotGNU certainly isn't just a political campaign - Simon Howard 2010-10-24 14:26
@Simon: I don't think it's just an anti-.NET campaign - but the impression given is one where the politics matter as much as the technology, and I think for most developers that's just not the case. I think the web site does the technology side a disservice. I'm sure there's real technology in the project, but it's clouded by the politics, and I for one find that deeply offputting - Jon Skeet 2010-10-24 15:56
"I'm sure there's real technology in the project, but it's clouded by the politics"

It's a GNU project. Not much surprise there :-) And I agree. It's a shame because the Portable.NET compiler actually does some things that Mono doesn't - last time I checked it had a prototype C compiler, for example - Simon Howard 2010-10-26 09:54

@Downvoter: Care to comment - Jon Skeet 2011-02-26 20:22


4

Dotgnu does not support generics and anonymous delegates, while mono does.

I had successfully compiled dotgnu from git sources on a number of platforms with and without libjit. I had a much less success compiling mono from their latest sources.

If you compile pnet with libjit (./configure --with-jit) then the performance of dotgnu is slightly better than mono for the nbody benchmark.

So, if you need generics, go for mono. Otherwise go with dotgnu.

PS: There is certain development on dotgnu git-sources -- I update it once in a while and can see the new commits every so often.

2010-08-11 12:56
by Dmitri
Somebody negged me, I suppose for claiming that dotgnu is faster. Well, that what it is on a 64-bit Ubuntu 10.04 with supplied mono and fresh dotgnu 0.8.1 compiled from git-sources. Here is the result running nbody from computer language benchmarks:

mukjaj@mukjaj:~/Komod/js$ time mono nbody.exe 10000000 -0.169075164 -0.169077842

real 0m4.572s user 0m4.560s sys 0m0.010s mukjaj@mukjaj:~/Komod/js$ time ilrun nbody.exe 10000000 -0.169075164 -0.169077842

real 0m4.546s user 0m4.540s sys 0m0.000 - Dmitri 2010-08-11 13:16

Yes, and mono version was 2.4.2.3. The difference is not big, but it is there - Dmitri 2010-08-11 13:18
Yes, and memory usage was 35M for mono and 31M for dotgnu. So, here dotgnu is again slightly better. But then again, this was for numerically heavy calculations -- that's what I mostly do. For other types of applications your mileage may vary - Dmitri 2010-08-11 13:20
And also a question to the person who negged me -- could you please tell me how to compile the latest mono on a 64-bit Ubuntu 10.04? It fails on me: "make check" crashes... And I'd like to have the lates mono - Dmitri 2010-08-11 13:29
Ads