07 July 2009

Are Microsoft's Promises For Ever?

This sounds good:

I have some good news to announce: Microsoft will be applying the Community Promise to the ECMA 334 and ECMA 335 specs.

ECMA 334 specifies the form and establishes the interpretation of programs written in the C# programming language, while the ECMA 335 standard defines the Common Language Infrastructure (CLI) in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite those applications to take into consideration the unique characteristics of those environments.

"The Community Promise is an excellent vehicle and, in this situation, ensures the best balance of interoperability and flexibility for developers," Scott Guthrie, the Corporate Vice President for the .Net Developer Platform, told me July 6.

It is important to note that, under the Community Promise, anyone can freely implement these specifications with their technology, code, and solutions.

You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications.

The Promise applies to developers, distributors, and users of Covered Implementations without regard to the development model that created the implementations, the type of copyright licenses under which it is distributed, or the associated business model.

Under the Community Promise, Microsoft provides assurance that it will not assert its Necessary Claims against anyone who makes, uses, sells, offers for sale, imports, or distributes any Covered Implementation under any type of development or distribution model, including open-source licensing models such as the LGPL or GPL.

But boring old sceptic that I am, I have memories of this:

The Software Freedom Law Center (SFLC), provider of pro-bono legal services to protect and advance free and open source software, today published a paper that considers the legal implications of Microsoft's Open Specification Promise (OSP) and explains why it should not be relied upon by developers concerned about patent risk.

SFLC published the paper in response to questions from its clients and the community about the OSP and its compatibility with the GNU General Public License (GPL). The paper says that the promise should not be relied upon because of Microsoft's ability to revoke the promise for future versions of specifications, the promise's limited scope, and its incompatibility with free software licenses, including the GPL.

That was then, of course, what about now? Well, here's what the FAQ says on the subject:

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.


Now, is it just me, or does Microsoft conspicuously fail to answer its own question? The question was: does it apply to all versions *including* future revision? And Microsoft's answer is about *existing* versions: so doesn't that mean it could simply not apply the promise to a future version? Isn't this the same problem as with the Open Specification Promise? Just asking.

12 comments:

David Gerard said...

And here's a key point: it applies to software meeting the spec. Not software that diverges from the spec to be bug-for-bug compatible with the .NET implementation. Ask the Wine project how much of MSDN is pure fantasy and how much they need to hack in bug-for-bug compatibility to make applications work.

glyn moody said...

@David: yes, lots of glorious wiggle room there, methinks...

zaine_ridling said...

Glyn you're right: it doesn't pass the stench test. This is what frustrates us about Microsoft --everything is conditional. Reminds me of the idea of Indian giving here in the US; you can have it until I want it back. And Microsoft won't want it back until it's too late for you, the consumer (or is it victim?) of their specs.

This is why Mono is bound to turn out badly.

glyn moody said...

@zaine: welcome back...

gus3 said...

As I see it, the requirement that the implementation of the ECMA standard be complete, leads to two undesirable consequences:

1. The "all or nothing" requirement means that Internet-based collaborative development is cut off at the knees. The first version checked in to a public RCS essentially has to be v1.0. Development versions implementing incrementally more of the ECMA standard cannot be published.

2. Fewer people having access to development versions means less robust testing, which means possible undetected variances from the ECMA standard, which means it wouldn't be covered by the so-called "promise" from MS not to sue.

Bad, bad, bad...

Anonymous said...

I'm getting a little lost in all the minutia, but it doesn't appear to me the this change in Microsoft's position is big enough of difference, to actually make a difference.

Who actually, unequivocally benefits from this change? How is a programmer or developer actually, in any significant and practical respect, any "safer" from patent-infringement claims -- or legal actions -- than they were before?

And in any case, would any of these alleged benefits even apply to GPL-licensed code? It appears to me that it wouldn't.

Does this "promise" (assuming that it's even legally binding) actually make a difference? After the promises Microsoft made regarding vFAT and their subsequent actions, I'm not sure it would matter in any case.

Bernard Swiss

glyn moody said...

thanks for the comments.

CHub said...

It will mean Linux will always be playing catchup to Microsoft setting the ship's direction.

We need to create a whole new totally open intermediate language to makes assembly language interoperable.

glyn moody said...

Indeed: dependence on Microsoft is not a safe state to be in.

David Gerard said...

@CHub - we have just the thing ... it's already hugely popular in industry use, its creator has made a patent promise that's actually good for something, and it's got a version that's entirely GPL free software.

It's called Java. The thing that .NET is a shoddy copy of!

Anonymous said...

Java, Python, Lua, etc. Why do some people insist on a risky MS patented technology when there are so many good safe free options out there?

glyn moody said...

answers on the back of a postcard...