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