近日,微软宣布为 C#和 CLI 的相关规范即 ECMA 334 和 ECMA 335 ,提供公众承诺( Community Promise ),这确保了任何人都可以用任何语言和方式来实现它们,而不会受微软侵犯知识产权及专利权的诉讼。这与开源.NET 项目 Mono 息息相关,直到目前为止它的合法性仍未澄清。具体的公众承诺如下:
微软不可撤销地承诺不对制造、使用、销售、提供销售、进口或分发任何实现而进行索赔。本承诺直接适用于所有制造、使用、销售、提供销售、进口或分发相关细节的个人或组织。目的在于授权开源的实现。
该公众承诺比起开放规范承诺的自由度要低些,因为公众承诺“要求实现的内容必须符合所有细节的规定部分”。但开发人员无需和微软签署任何许可协议或通知微软关于他们实现C#和CLI 规范的详情。
Peter Galli 在 Port25 站点上作出声明来解释当中的含义:
在公众承诺下,我们注意到任何人都可以用他们的技术、代码和解决方案来自由地实现这些规范。 我们不需要签署许可协议,抑或告诉微软我们是如何实现这些规范的。
该承诺适用于开发人员、经销商以及涉及相关实现的用户,与实现的开发模型、版权许可类型和业务模型无关。
一周前,GNU 之父 Richard M. Stallman 才刚刚警告过包括 Mono 在内的开源项目:
Debian 打算把 Mono 包含在 GNOME 的主要安装过程中,由于该应用程序用 C#编写,会让开源社区冒上极大的风险。依赖 C#非常的危险,所以我们并不鼓励用户使用。
问题不仅仅在 Mono;所有免费的 C#实现都会面临同样的问题。微软很可能迫使所有免费 C#实现的地下组织获得软件许可。
我们应该有条不紊地少用免费的 C#实现。换句话说,我们不鼓励人们用 C#编写程序。因此,我们不应该在 GNU/Linux 默认安装或者 GNOME 安装的主要方式中包含 C#实现,我们应该尽可能推荐用户使用非 C#应用程序。
Miguel de Icaza 就微软澄清 Mono 许可的问题做出如下报告:
几个月前,我们在微软接触过 Bob Muglia 和 Brian Goldfarb,要求他们就 ECMA 标准中包括的 C#和 CLI 作出说明。
由于 Mono 不仅仅实现了这两个 ECMA 标准,故 Icaza 还是有所担心:
在未来的几个月,我们将把庞大的 Mono 源代码大部分拆分为两份单独的源代码。一个是 ECMA,另一个则会包含我们对 ASP.NET、ADO.NET、WinForm 和其他部分的实现。
由于获取 Mono 的方式不同,也许你已经拿到这个拆分的版本或者还没有。
把 C#和 CLI 置于公众承诺之中说明微软不会针对开源开发人员和 Linux 经销商实现相关规格或者包含 Mono 到经销产品当中的行为进行诉讼。到目前为止,公众承诺仅包含了 VBA 语言规范、HealthVault 服务规范、UI 自动控制 1.0 和 XPS 规范 1.0。
查看英文原文: Anybody May Legally Implement the C# and CLI Specifications
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论