Man, I read through these posts and I can't believe how negative some people can be.
Novell sponsored Mono development with M$ blessing. Why would M$ do such a thing? Pretend cross-platform compatibility? Make a couple Linux and Mac OS X devs switch to Mono and, hopefully, to Windows some day? It doesn't matter why, and Novell were no tourists, so they made an informed decision on this matter.
Is any company pursuing the Mono project liable if M$ want so? Yes, because the Mono project reverse-engineered a lot more than what M$ made public on the .NET specs. But that applies to 99.99% of anything an IT shop does. Once you hit the market with a new product, something that everybody wants, there will be a gazillion hungry wolfs out there making claims on your IP, asking to get a piece of it. Companies you never knew existed will claim that you infringed on their patents. This is how the IT industry works these days. And they actually don't want to go to trial, they just want a quick settlement. And the more money you made "infringing" on their IP, the more you'll have to pay to settle. The RedHat CEO once said that it's better to settle, even if you know you are right, cause it is cheaper, in the end.
M$ have no reason to kill Mono, or bring de Icaza and the gang down or anything--for now. When and if Xamarin or others make a lot of money (ahem!) selling Mono/Monotouch/Monodroid/whatever, then sure, there may be a settlement with M$. But that would happen even if all .NET specifications were made public. There will always be some loophole for a lawyer to discover, some detail that someone missed that will allow a company to drag another one to trial.
Now, I also noticed that Mono haters would have everybody think like they do. Have the same values. Teach the "plebeans" the good from the bad. What to do and what not to. This reminds me of two similar crowds: Linux evangelists and religious people. No further comments.
I have recently tried C#.NET, after many years of avoiding it, and it looks great. And BTW, I use MonoDevelop on Windows at work because I cannot update Visual Studio Express on my office computer due to IT policy restrictions. In a way, it was negative comments that I read on .NET that brought it to my attention and made me give it a try. In the end, it was a good for me that I read those comments.