Microsoft just announced they will apply the Community Promise to ECMA 334 and 335!
The Good
This is big news and a great sign. For one thing it shows that the intesive criticism mono has recieved is producing some positive effects. This is thanks to mono critics; not mono apologists.
For another thing, anything Microsoft can do to make FLOSS projects safer is good news for the community. They absolutely will not do so without continuing demand from the community, so good work to the community.
The bad
Of course, nothing is perfect.
Does this cover the non-ECMA 334 and 335 parts of the .NET framework that mono implements? I’ve always said that the fear of patents doesn’t really apply to the standardized parts. I’ve also always said that RAND-Z is a possible, but unlikely threat.
It seems that the Community Promise will remove any worry at all about the RAND-Z stuff: great, fantastic.
It doesn’t seem that the Community Promise will remove any worry at all about the parts of mono that implement .NET and are outside of the ECMA standards. This is a very serious question, because we have internal emails from court records that show Microsoft discussed how much of .NET to standardize, and to protect the rest with patents to prevent commoditization of .NET.
This fear is slightly compounded by the difference between the Community Promise and the Open Specification Promise and related FAQs:
Q: How is the Community Promise (CP) different from the Open Specification Promise (OSP)?
A: The CP requires that implementations conform to all of required parts of the mandatory portions of the specification. Also, in specified cases (such as where the specifications have uses that exceed those needed to achieve the interoperability needs for which the release under the CP is being made), the CP may have special terms concerning what kinds of implementations are covered.
Q: If a listed specification has been approved by a standards organization, what patent rights is Microsoft providing?A: We are providing assurances regarding necessary claims consistent with the scope of our commitments in that organization.
Q: What if I don’t implement the entire specification? Will I still get the protections under the CP?A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered.
Q: The specification I am interested in has some required portions and some optional portions. Does the CP apply to both?A: Yes, the Promise also applies to the required elements of optional portions of such specifications.
Q: Does this CP apply to all versions of the specification, including future revisions?A: The Community Promise applies to all existing versions of the specifications designated on the public list posted at /interop/cp/, unless otherwise noted with respect to a particular specification.
Q: Why doesn’t the CP apply to things that are merely referenced in the specification?A: It is a common practice that technology licenses focus on the specifics of what is detailed in the specifications and exclude what are frequently called “enabling technologies.” If we included patent claims to the enabling technology, then as an extreme example, it could be argued that one needs computer and operating system patents to implement almost any information technology specification. No such broad patent licenses to referenced technologies are ever given for specific industry standards.
I don’t want to sound negative, but I’m not sure how much this actually buys in increased protection.
Summary
I am 195% sure mono apologists will crazy-go-nuts with this. However, while I think this gains some additional safety for mono, I am not sure exactly how much.
Virtually no one was raising the question on patents on the standard proper before, but focusing on those parts of mono outside the standard. Does this new promise do anything at all there? Or is it just basically a little extra coverage on something that was 95% covered already?

#1 by blah on July 7th, 2009
“Virtually no one was raising the question on patents on the standard proper before, but focusing on those parts of mono outside the standard.”
Except RMS:
http://www.fsf.org/news/dont-depend-on-mono
#2 by Jason on July 7th, 2009
blah, I see how that could be interpreted because Stallman does speak directly to “C#” rather than “.NET” or a broader term.
I didn’t take his remarks that way, but it is a fair criticism of his remarks.
#3 by jon skip on July 7th, 2009
No one writing Mono-based free software for Linux is using anything outside of the ECMA portions of .NET, so your fears are misplaced.
#4 by Jason on July 7th, 2009
No-one? My mistake, then.