3 ms·
Hey, Xamarin dev here... Not that I want to defend Diablo-D3 (he's a troll), I do want to make a few slight corrections to your comment. 1. You are correct in
by jstedfast 15y ago
Hey, Xamarin dev here...
Not that I want to defend Diablo-D3 (he's a troll), I do want to make a few slight corrections to your comment.
1. You are correct in that Microsoft's .NET VM performs better than Mono overall (at least in the general case), but Mono does perform better than .NET in some cases.
Unfortunately I don't have a list of the areas where Mono outperforms .NET handy, so I can't list them here. Perhaps one of the other Mono devs can follow up and provide details. Most likely SIMD would be on the list.
Whether Microsoft would be interested in taking Mono's implementation for these areas or not for their own VM is questionable. Likely not, as it would likely not be easily adaptable to their implementation anyway.
2. SGen is actually stable these days. It is used in Mono4Android and we are working on moving MonoTouch over to SGen as well.
Moonlight was also being moved to SGen (it started out using Boehm because that was the default GC when the project was started) when the Novell layoffs came along.
As responsible developers, we have been taking our time moving to SGen as the default GC because we don't want the move to break any existing apps if we can avoid it. As with all new things, there are still likely to be bugs here and there, but overall we feel that it is ready for use and we've been eating our own dog food.
3. As was mentioned in another comment already, Microsoft's AOT isn't quite the same as Mono's AOT which allows generation of binaries that do not require an external CLR to run.
- jahewson 15y agoGlad to here that SGen is stable now, of course turning it on by default in Mono is the true test of 'stable', but as you say it's reckless to break things needlessly. There was once an entire company called Xenocode, founded by ex-MS devs, and built on the idea that it would be really useful to distribute .NET apps without the CLR. They had a tool which could do this, even with ngen'd assemblies. Turned out it wasn't so useful. They've now pivoted into enterprise application virtualisation, and their offering is similar to Softricity, which later became Microsoft App-V.
- jstedfast 15y agoDistributing .NET apps w/o a CLR is probably the biggest strength of Mono - it's how Mono is able to work on iPhone, Wii and other devices which do not allow dynamic code generation. I would say that Xenocode's failure wasn't so much that no one found .NET w/o a CLR useful, it was that they likely only supported Windows. Oh well, Xenocode's loss is our gain :-)