I cannot remember anything like Mono that can divide the open source community so clearly. On one hand we have people that thinks Mono is not a problem like Canonical, and on the other hand people like RedHat thinks it should be avoided. The two Linux vendors quoted are not those that we normally classify as ideologically pure (SFLC) or the creator of the technology (Novell). I do not think the camp can be reconciled properly, at least not anytime soon.
My problem with Mono is about control over the technology. While the patent threat is real, I think it is remote enough that it will never happens. My concerns for Mono is exactly the same as the concern I have with any technology that appears to be directed by one company. I do not think any technology where there is one player that dictate its evolution is good for open source or free software. It is quite simply, too open to abuse.
Look at Eclipse, IBM had been doing a very good job before it hands it off to an independent foundation. It’s stewardship, however benevolent, proved to be a major hindrance to Eclipse’s adoption. If you do not believe me, simply compare Eclipse’ adoption rate before and after the Eclipse Foundation took the stewardship of the technology.
Microsoft’s decision to put it under the Community Promise banner certainly strengthen the pro-Mono camp, but only a bit. If you go and look into what is covered under that promise, you will find only a few “fringe” projects in Microsoft is covered, and the most valuable one, Visual Basic Application, comes with caveat. That is not very inspiring.
Moreover, it did not address my concerns about stewardship. I cannot accept any technology where one party can change the specification at its wimp, or a technology where one party can put the other implementations into a disadvantage by developing it in secret then spring it onto the market. This means the party will forever dominate the market, as others are forced to play catch up. To me, any open source projects and certainly Free Software should not rely on technology which is developed in such an opaque fashion and does not treat every major participant equally.
I am still reserving my judgement over Mono though. To use a human development anology, Mono left infancy and is no longer a toddler, it is growning up quickly. At this stage, to not give it a say towards the direction C# and .NET is going is still not a problem to me. However, it will be a problem two years down the line when Mono matures into an adult. At that point, I do requires Mono having a say in where C# and .NET is going before I will accept it as a technology suitable for open source project.
The argument over Mono seems to be reflecting the arguement aboug Java when it was in its infancy. It’s all about control. With Java, however flawed you think the Java community process is, at least you can say Sun tried.