One of the major planks in Microsoft's purported embrace of openness is the Open Specification Promise (OSP):
Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation to the extent it conforms to a Covered Specification (“Covered Implementation”), subject to the following. This is a personal promise directly from Microsoft to you, and you acknowledge as a condition of benefiting from it that no Microsoft rights are received from suppliers, distributors, or otherwise in connection with this promise. If you file, maintain or voluntarily participate in a patent infringement lawsuit against a Microsoft implementation of such Covered Specification, then this personal promise does not apply with respect to any Covered Implementation of the same Covered Specification made or used by you. To clarify, “Microsoft Necessary Claims” are those claims of Microsoft-owned or Microsoft-controlled patents that are necessary to implement only the required portions of the Covered Specification that are described in detail and not merely referenced in such Specification. “Covered Specifications” are listed below.
There then follows an impressive list of specifications. But of course the devil is in the details. For example, that word "irrevocably" sounds pretty definitive, doesn't it? And yet the Software Freedom Law Center points out in a detailed analysis of the OSP that it is pretty much negated by another section:
Irrevocable but Only for Now
Microsoft makes its promise “irrevocably,” but upon careful reading of the entire OSP, this promise is weakened considerably in the definition of Covered Specifications. In that provision, Microsoft clarifies that:
New versions of previously covered specifications will be separately considered for addition to the list.
Because of this narrow definition of the covered specifications, no future versions of any of the specifications are guaranteed to be covered under the OSP. Each new version is subject to Microsoft's ongoing discretion on a case by case basis. In other words, every time a specification changes, Microsoft can effectively revoke the OSP as it had applied to previous versions of that same specification. Microsoft states that it will commit to renewal of the promise for future versions of specifications subject to standardizing activity “to the extent that Microsoft is participating in those efforts,” which means that Microsoft reserves the right to cancel the promise with respect even to standardized specifications, by merely withdrawing from the relevant standard-setting workgroup or activity. While technically an irrevocable promise, in practice the OSP is good only for today.
The Software Freedom Law Center goes on to consider some other less than satisfactory aspects of the Microsoft Promise, and sums up by saying:
we publicly conclude that the OSP provides no assurance to GPL developers and that it is unsafe to rely upon the OSP for any free software implementation, whether under the GPL or another free software license.
In this light, the Open Specification Promise is a paradigmatic example of Microsoft's strategy for dealing with the threat posed by open source. It makes high-profile, grand-sounding declarations of its intent to "embrace" openness, but upon closer examination, what it really offers is circumscribed and dangerously laced with traps for the unwary. Those contemplating working with Microsoft on its other projects where it has publicly evinced a desire to reach out to open source - notably in the context of .Net and OOXML - would do well to bear this in mind. If they don't, they may well find that there, too, the commitments that Microsoft makes are indeed irrevocable, but only for now.