正如 2 月底的报道,部分社区成员和贡献者表达了对.NET 开源现状的担忧。为了更深入地了解情况,InfoQ 联系了前微软项目经理 Phil Haack,他现在是 GitHub 的工程部经理。此外,Phil 还是 QCon“开源.NET 的无穷力量”的专题出品人。
Phil 首先描述了.NET OSS 当下的变化:
我认为,.NET OSS 社区之所以让许多人觉得沮丧,是因为与其他社区相比,它还相对年轻。虽然它已经有了许多进步,而且还会继续进步,但它有很大的惯性需要克服。对于像微软这种规模的公司,其变革速度令人印象深刻。但是那种变化的影响是滞后的。毕竟,有多人仍然在生 IE 6 的气,它破坏了 Web 标准,而那是 15 年之前推出的!
传统上,微软在每个领域都必须有自己的产品。从某种程度上讲,这是客户的需求。古谚有云,“没有人会因为购买了 IBM 的产品而被解雇”,这同样适应于微软。
不过,近年来它变了,因为它开始认识到 OSS 是未来。例如,他们研究了构建自己的 DVCS 的可能性,但他们醒悟过来,并一心一意地使用 Git。类似地,他们有自己的分布式缓存,但之后切换到了 Redis。他们还为 OpenSSH 做贡献。在这个方面,微软不仅开始采用 OSS,而且开始为它做贡献。
此外,他们还将许多代码转换为开源代码,MSBuild、ASP.NET Core、.NET Core 等都在 GitHub 上开源就是证明。但是,这种巨大变化的影响要过一段时间才能真正显现出来。现在正是时候,一个真正创新的.NET 项目有了成功的机会,因为如果它变成一种标准,变成一种微软现在没有但需要的东西,微软就变成了一个潜在的赞助商。
开源项目赞助是人们关心的主要问题之一,多位.NET 贡献者都提了出来。他们声称,虽然部分企业广泛使用开源项目,但他们却不回馈项目。Phil 答复说:
说企业不回馈项目,这个问题的关键在于你如何衡量它。没有人可以提供任何数据证明这是真是假。我觉得,这个问题是每个 OSS 社区都有的问题。只要看看 OpenSSL 中的安全漏洞以及那个项目如何资金不足就知道了,它可是哪里都用!
关于这一点,我们需要做更多研究。我敢打赌,在使用 OSS 项目的用户数和为那个项目做贡献的公司数之间,有一个典型的比值。例如,对于一个 OSS 库,每 100 万用户就有一个公司赞助商。考虑到.NET 社区的规模比较小,那就意味着很少有.NET OSS 项目有企业赞助商。
我认为,这种挑战在开源社区中是普遍存在的,不只是在.NET 社区,这也是我想做出改进的。我认为,我们需要帮助公司,让他们看到回馈他们使用的软件项目有益于他们的根本利益。那不仅会让所有的人都受益,而且与工程师的日常工作相比,为这些项目做贡献更具挑战性,因此是一种培养可信赖的工程师的不错的方式。此外,这还能提升士气,提供良好的公共关系。作为开源社区,我们需要在让公司看到好处以及如何有效回馈方面做得更好。
虽然微软现在接受不是它创建的技术,向外部项目敞开了大门,但它仍然在.NET 开源中扮演一个关键的角色。Phil 阐述了微软商业策略与.NET OSS 之间的关系:
我认为,分析下微软的长远发展非常重要。他们的 Windows 和 Office 业务依然强劲。不过,随着越来越多的人拥抱开源、Web 和移动,这些支撑微软未来长远发展的业务,其力量会削弱。他们销售应用程序、库和框架来赚钱的能力也会走上同样的道路。我认为,Azure 及其相关服务才是微软未来的业务,其受 OSS 商业化的影响较小。以他们的立场来说,他们不关心你使用什么构建,只要你构建的东西运行在 Azure 上就行了!
这就是为什么我们会看到 OSS 是自上(Satya Nadella)而下为人所接受。这不是一个公关噱头。没有人会将那么多钱、时间和基础设施压在公关上。虽然这种巨大的变化要影响到一般的.NET OSS 项目还需要一些时间,但它会的。
例如,GitHub 上的 C#库就超出了一般项目的发展速度,是 GitHub 成长最快的语言之一。我们看到,以 Windows 为主操作系统的新用户增加了。GitHub 上的.NET 开源项目当然没有停滞不前;它发展得很快。Octokit.Net 是其中一个我帮助维护的项目,这是一个连接 GitHub API 的客户端库。这是一个相对比较小也没什么名气的项目,但我们最近有了许多活跃的贡献者。它真得发展起来了。
Phil 总结道:
所以,同其他社区相比,.NET 开源社区还没有那么大、那个强或者那么健康。但它不像大多数人所认为的那样差别大,而且正在活跃发展。我认为,将来需要重点努力的方向是让公司懂得回馈,但那不只是.NET 的问题,而是一个更大的 OSS 问题。
评论