微软与开放源码的复杂之舞

使Visual Studio Code中的C#扩展成为专利的决议引起了人们的不满,但微软仍然是开源的一向支持者。

米格尔-德-伊卡萨(Miguel de Icaza)对微软的一连串批判是很有可信度的。这位开发者在他的职业生涯中大部分时刻都在微软的生态系统中构建开源项目,并在Xamarin和其他项目中为微软工作了多年。他的首要抱怨是什么?”微软会颠覆一个活泼的开源项目,强行参加一个专有扩展,持续锁定.NET”。这是在上一年的Hot Reload开源垃圾桶火灾之后产生的。

关于那些挑选把这看作是微软 “Linux是癌症 “的老套路的复生的人来说,没那么快。总的来说,微软一直是开源社区的持续奉献者,至少从2014年揭露宣告献身开源以来是如此。令人置疑的是,该公司忽然恢复了类型,封闭了其最明显的开源成功之一。相反,我置疑这是一个部门的决议,以满意企业的收入方针,即使是不受欢迎的答应模式。

还以为这只是微软在作恶吗?你在大公司工作过吗?

右手,遇到左手

大公司存在的现实是,”CEO说要这么做 “比 “我的搭档以为这是一个好主意 “更有说服力。此外,即使是行政命令也需求时刻和毅力来履行。这样想吧。首席履行官说,”每个人都必须出售咱们的新山公眼镜”。听起来不错,对吗?嗯,确实如此,直到斑马眼镜部门的总经理提示首席履行官,她有10亿美元取决于出售斑马眼镜而不是山公眼镜。哦,然后合作伙伴负责人提示首席履行官,他们有5亿美元的承诺,与河马眼镜有关的合作伙伴。出售人员需求接受培训,营销人员需求更新所有的宣传材料,等等,等等。一年后(或五年后),这一命令在很大程度上仍未得到满意。

回到微软:

2014年,微软首席履行官萨蒂亚-纳德拉(Satya Nadella)宣告,”微软酷爱Linux”。地狱并没有结冰,由于此时微软还能做什么?Linux是生活中的一个事实,就像开放源代码相同。我不会重提史蒂芬-J-沃恩-尼科尔斯(Steven J. Vaughan-Nichols)已经写得非常好的历史。TL;DR?云计算(IaaS、PaaS、SaaS)正在向开源冲刺,假如微软想拥有一个未来,它就必须学会尽量削减对Windows的痴迷。(还记得Azure被称为Windows Azure的时分吗?)

微软有一个令人信服的财务理由来全身心地投入到开源中去,并且它基本上做到了。但是,如前所述,行政命令需求时刻来履行。

这在2014年特别如此。正如西蒙-菲普斯(Simon Phipps)其时所写的那样,就在纳德拉为微软对开源的新发现感到高兴的同时,该公司的其他部门却在积极反对开源和支撑开源的准则。事情变得更好了。到2016年,我能够合理地写道,微软已经成为世界上最大的开源奉献者,这是以在GitHub上积极为开源项目做奉献的职工数量来衡量的。当然,这不是一个完美的衡量标准,但它在方向上是精确的。到了2018年,我又用一个开源项目 进行了计算,结果是,按照积极为GitHub开源项目做奉献的职工人数来衡量,微软又领先了。(你能够用这个项目来获得最新的数字)。

让咱们回到激怒德-伊卡萨和其他开源倡导者的具体问题上。微软通报了它对Visual Studio Code的C#扩展所做的一些改变,使其成为专利。那次沟通有点难以理解,导致de Icaza总结道。”随着时刻的推移,.NET平台正在变得封闭,以确保它只有在你是客户时才有用。”关于那些曾希望开放源代码的.NET将为C#和其他关键的微软技能铺平道路的人来说,这似乎是一个困难的逆转。

de Icaza帖子的一个评论者以为,虽然有 “咱们酷爱开源 “的公司标语,”许多在讨厌的时代的老前辈现在还在那里。他们有很多人,并且资格很深,有些人必定还有那些讨厌的想法”。对此,德-伊卡萨答复说:”是的。”

咱们能够接受德-伊卡萨对局势的观点,但仍然以为,总的来说,微软在开放源代码方面的决议是对的多于错的。便是这个微软,最近资助了GNOME项目,这是一个对Windows桌面的直接应战(假如不是特别有要挟)。它是Apache软件基金会的一个大赞助商,此外它还为Python、Java(!)、Kubernetes、OpenTelemetry等奉献现金和其他资源。

当然,对这一切的一个反驳是,微软当然会这么做!这契合他们的本身利益。这契合他们的本身利益,也许他们以为封闭.NET也契合他们的本身利益。对此,我的答复是,当然。我想不出有哪个公司是出于利他主义而为开源项目做奉献的。开放源代码本质上是自私的,这便是为什么它能持续维持自己并茁壮成长。开发者的奉献和公司支付给他们的费用中不乏自我利益的因素。

关于微软和.NET,我没有任何特别的抱怨。我重视微软二十多年了,也花了不少时刻来怒斥那台机器。我学到了一件事。一家公司永久不会像表面上看起来那么糟糕,由于最终它是由做出决议的个人组成的。其间一些决议我喜爱,另一些我不喜爱。不过,我的定见(可能还有你的定见)并不重要,由于对开发者和客户的测试才是最重要的。假如微软的.NET开发者社区进行反击,并把他们雇主的钱带走,微软就会眨眼,回收决议。就像其他公司相同,是金钱影响了微软对开放源代码的喜爱,在这种情况下,微软也会跟着金钱走。