Opinions on whether Mono is dangerous, and on whether it should be avoided or accepted fly thick and fast. If you're bored with the whole deal feel free to go read something else, but I suspect that the controversy is going to grow as more Linux distributions, such as Ubuntu, ship with Mono applications by default.
Here are some comments collected from here and there that I thought represented the major points in the endless Mono debates, and that are understandable to non-coders. I'm not a developer so I could be totally off the rails here, but these made a lot of sense to me and seem to clarify the issues.
This is an oft-asked question:
"...why is Mono (and .NET, for that matter) getting taken seriously by developers? Does it really have such significant advantages over Java?"
And this, I think, is a particularly good answer by our very own Grey Geek:
"Nine years ago Microsoft thought they had the "Killer Triumvirate", Passport, Hailstorm and .NET.
"Hailstorm was Microsoft's original "cloud" computing, where Microsoft "served" your data and you used .NET to write GUI front ends to access it. Like any cloud, your data actually is being held hostage and belongs to the cloud owner. Passport is now Windows Live ID, a single-signon facility which controls your access to Microsoft's "Cloud" services. Most people refer to it as MSN.
"I suspect that a LOT of people who sing the praises of .NET aren't familiar with equal or better tools, or are paid MS Evangelists. As Dave Winer said, "it's not rocket science, and it's not worth giving Microsoft a lock-in. .NET is merely a runtime environment and a set of development tools, not unlike Zope or Java,"
"Joel Spolksy put it this way:
"Think of the history of data access strategies to come out of Microsoft. ODBC, RDO, DAO, ADO, OLEDB, now ADO.NET - All New! Are these technological imperatives? The result of an incompetent design group that needs to reinvent data access every goddamn year? (That's probably it, actually.) But the end result is just cover fire. The competition has no choice but to spend all their time porting and keeping up, time that they can't spend writing new features. Look closely at the software landscape. The companies that do well are the ones who rely least on big companies and don't have to spend all their cycles catching up and reimplementing and fixing bugs that crop up only on Windows XP. The companies who stumble are the ones who spend too much time reading tea leaves to figure out the future direction of Microsoft. People get worried about .NET and decide to rewrite their whole architecture for .NET because they think they have to. Microsoft is shooting at you, and it's just cover fire so that they can move forward and you can't, because this is how the game is played, Bubby. Are you going to support Hailstorm? SOAP? RDF? Are you supporting it because your customers need it, or because someone is firing at you and you feel like you have to respond? The sales teams of the big companies understand cover fire. They go into their customers and say, "OK, you don't have to buy from us. Buy from the best vendor. But make sure that you get a product that supports (XML / SOAP / CDE / J2EE) because otherwise you'll be Locked In The Trunk." Then when the little companies try to sell into that account, all they hear is obedient CTOs parroting "Do you have J2EE?" And they have to waste all their time building in J2EE even if it doesn't really make any sales, and gives them no opportunity to distinguish themselves. It's a checkbox feature -- you do it because you need the checkbox saying you have it, but nobody will use it or needs it. And it's cover fire."
"Use .NET or set fire to your Linux distros. The results are the same."
These comments were posted to Bruce Byfield's interview with Miguel de Icaza:
"The biggest place Mono can help are the hundreds of thousands of businesses who have written their internal apps in .Net. Without Mono, the barriers to switching to Linux are they have to rewrite all those apps. With Mono, those barriers are significantly reduced. (And if you've ever worked in a business, rewriting a business app is generally a non-starter, because you don't touch things that are working, and in many cases, the person who wrote it is gone, and no one knows how it works.)"
"Except that the internal apps won't run mono. It's not a full implementation and it's not compatible with the majority (of the few) .Net apps that are out there.
Further, De Icaza has not given any concrete statement on where Mono users stand in regards to M$ software patents.
Developers are going to stick with what is proven to work better, such as Java, Python, Perl, Php and Ruby, and ignore boondoggles like .Net and half-implementations of boondoggles like Mono."
"My frustration with Mono is that, in my experience, it has not allowed me to run a single .Net app on Linux, and thus as a technology to enable migration to Linux it does not stack up. What it does do is offer FOSS developers a development environment with potential patent liabilities."
Wikipedia's entry on Mono, Mono (software), includes a list of applications built with Mono, such as F-Spot, Beagle, Gnome Do, and diva.
I found this graph that compares job demand for Ruby, Silverlight, and Linux Mono. I'm not sure it has any real significance, but it is an interesting way of looking at it: