@lsmn
2016-03-04T11:28:05.000000Z
字数 2080
阅读 2860
开源
微软
.NET
正如2月底的报道,部分社区成员和贡献者表达了对.NET开源现状的担忧。为了更深入地了解情况,InfoQ联系了前微软项目经理Phil Haack,他现在是GitHub的工程部经理。此外,Phil还是QCon“开源.NET的无穷力量”的专题出品人。
正如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问题。