[email protected] wrote:
I couldn't believe my eyes:
http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx
Mono hacker and "open source" enthusiast Miguel de Icaza has announced
an intention to continue to add Microsoft's code to Mono stating "Like
we did in the past with .NET code that Microsoft open sourced, and like
we did with Roslyn, we are going to be integrating this code into Mono
and Xamarin's products." (http://tirania.org/blog/archive/2014/Nov-12.html).
But is that a wise course of action? Was it wise to do this in the past?
It's worth looking at history to see what traps Microsoft has set and if
those problems still exist.
In 2009 the FSF advised against writing software in C#
(https://www.fsf.org/news/2009-07-mscp-mono) and pointed to a practical
way out.
Neither Microsoft's Patent Promise
(https://github.com/dotnet/corefx/blob/master/PATENTS.TXT) nor
Microsoft's chosen license
(https://github.com/dotnet/corefx/blob/master/LICENSE) grant you an
irrevocable patent license. Microsoft has promised to not sue you. A
promise not to sue and an irrevocable patent license are not the same
thing because the circumstances that make the promise true today can
change tomorrow rendering the promise obsolete. The same is not true of
an irrevocable patent license.
To my reading, what you get from Microsoft here is just as risky for us
to depend on as what they offered years ago. So, as the FSF pointed out
years ago, "It only says that Microsoft will not sue you over claims in
patents that it owns or controls. If Microsoft sells one of those
patents, there's nothing stopping the buyer from suing everyone who uses
the software.".
As a result, FSF's advice from that 2009 essay is still worth heeding:
If Microsoft genuinely wants to reassure free software users that it
does not intend to sue them for using Mono, it should grant the
public an irrevocable patent license for all of its patents that Mono
actually exercises. That would neatly avoid all of the existing
problems with the Community Promise: it's broad enough in scope that
we don't have to figure out what's covered by the specification or
strictly necessary to implement it. And it would still be in force
even if Microsoft sold the patents.
This isn't an unreasonable request, either. GPLv3 requires
distributors to provide a similar license when they convey modified
versions of covered software, and plenty of companies large and small
have had no problem doing that. Certainly one with Microsoft's
resources should be able to manage this, too. If they're unsure how
to go about it, they should get in touch with us; we'd be happy to
work with them to make sure it's satisfactory.
Until that happens, free software developers still should not write
software that depends on Mono. C# implementations can still be
attacked by Microsoft's patents: the Community Promise is designed to
give the company several outs if it wants them. We don't want to see
developers' hard work lost to the community if we lose the ability to
use Mono, and until we eliminate software patents altogether, using
another language is the best way to prevent that from happening.