Erich Gamma谈开源:微软与开源的那些事

日期: 2016-06-07 作者:蒋红冰 来源:TechTarget中国

根据Gartner研究机构的调查报告称,“2016年,在全球1,000的企业中将有99%的公司将开源软件视为关键任务软件。”2016年,开源技术已经在现代计算舞台上占据了重要的位置,尤其是在应用程序开发和IT基础设施领域。随着开源技术迅速崛起,越来越多的企业也加入到开源的阵营之中。

2016年6月1日,在微软开发者大会上,我们有幸见到了《设计模式:可复用面向对象软件的基础》一书的作者之一Erich Gamma。Erich Gamma给我们分享了微软与开源技术的一些故事。

Erich Gamma谈开源

左为Erich Gamma

微软爱开源

Erich Gamma 表示, ”开源的发展速度惊人,尤其是微软。五年前谈到开源时,整个Windows 操作系统 没有什么是开源的东西。“然而,五年之中,微软已经发生了很大的变化,现在微软内部有了许多流程与方法来支持其工程团队去使用开源技术、开源软件。”五年前,我们的律师一听到开源,第一反应就说“ NO”,但现在律师也在帮助我们更好地往开源上做努力了,“Erich Gamma笑着说,”我们知道开源领域有很多争议,特别是 License (认证许可)的部分,有些“License”也许存在一些灰色地带。然而在微软,工程部门和法律部门都在帮助我们更加合规地做开源项目。比如 GPL。现在在他们的帮助下,我们能够清楚地了解哪些东西是我们能够用的。“

虽然开源有种种的好处,可以减少开发成本、可以解除厂商锁定;但是却存在一个大问题,即是使用开源技术,出现问题时,谁该对此负责。对于这一问题,Erich Gamma 给出了肯定的答案,他说”微软对我们所提供的开源元件是负责任的 “。

从一个闭源的生态系统走向开源,拥抱开源,这一过程并不像说到的那么容易,其实背后必定要有相当投入,才能在不断拥抱开源是时,尽量减少错误的发生,才能少走弯路。微软对开源技术的应用横跨多个不同的产品线。其内部对整个开源的元件都做了详细的记录,来帮助开发者和产品团队,让他们避免陷入到License的问题里。微软内部很多开源元件都有数据库做记录,从而实现正向和反向的追踪。例如,有的开源的元件造成一些问题,微软人员却可以很清楚地对相关产品进行迅速准确的修正。

Erich Gamma爱开源

Erich Gamma 于2011 年以杰出工程师的身份加入微软 Visual Studio 团队。之所以加入微软,Erich Gamma 说是因为微软给他提供了一个很吸引人的挑战,即你能不能在浏览器里构建集成开发环境。”这一点对我非常有挑战,但是又很有吸引力。别的公司可能给我一个工作,但微软给我的是一个挑战,所以我决定加入,“Erich Gamma。具有挑战性的工作任务激发了Erich Gamma的工作热情,也激发了Erich Gamma拥抱开源的态度。

在Erich Gamma 所带领的项目Visual Studio Code里,就至少用了1500个开源的元件。这1500个元件里90%都是非常小的元件,如Node, Modules……这些小的开源元件让Erich Gamma 的项目很容易就可以使用;其中最大的元件是来自于谷歌的“Chromium Browser Support”的元件。虽然,在某种程度上,谷歌与微软是处于一种竞争的关系中,但开源项目上却有越来越多的合作。

事实上,Erich Gamma 解释说,”在开源项目里竞争和合作是非常有趣的,看起来公司间的业务是竞争关系,但在技术层面因为开源的关系,造成了多种合作的情形,也意味着在新的开源技术领域里,我们都在用对方开源的东西,但是我们搭建出来的东西在生意层面上会相互竞争。“

微软爱开源,Erich Gamma爱开源,在微软与Erich Gamma ,以及其它员工的不断的努力,微软在开源之后,已经得到业界和社区的认可。

开源对微软的影响

”微软爱开源,不只是说我们今天用了很多开源的东西,事实上我们也做了非常多的贡献,”Erich Gamma说。就像是给和拿的关系,这也是一个很重要变化。微软现在不仅有完整的流程去使用开源技术,也有完善的过程把开源技术开放给别人使用。

透过开源这样一个合作机制,微软将开源代码放在Github上,使其有机会与其它公司在产品研发上进行更为密切的合作。公司之间因为开源的分享,因为给和拿的机制,使他们的合作关系更为紧密。微软的工程团队可以帮助其它公司运用微软的开源技术进行改进和创新。例如,微软全球开发平台事业部协助网易公司,采用开源.NET CODE平台,进行新一代的手游产品开发,获得更好的效能与更低的开发成本。

NET Core的跨平台特性让.NET框架得以运行于Linux系统环境中,因此可以在跨平台开发场景中,实现前后端的开发一致性,提升开发效率。

网易游戏最新推出的移动游戏《绝代双骄OL》在开发过程中即得到了.NET Core的支持。这款游戏采用了同样是.NET基金会成员的Unity引擎开发,并通过.NET Core框架实现了在网易Linux服务器平台上的顺畅运行。以前,用C#语言开发的游戏要在Linux服务器上运行,需要大量的转换工作来实现前后端的对接。而现在,.NET Core直接实现了前后端的一致性开发,从而将人员和时间减少了30%,而且其单服务器支持1万人同时在线游戏的性能,也很好地满足了游戏运行的需求。

当.NET Core 走向开源之后,微软不仅得到了伙伴和客户的支持,也从社区开发人员那里得到了富贵的建议,使其产品得到了更快更好的改进。我们能够持续跟踪,这是我们持续改进的很重要的基础。

微软从闭源走向开源的过程中,付出了巨大的努力,出得到的不小的收获,但开源并不是想做就能做到的。Erich Gamma建议企业,”必须有一个完善的计划——如何选择哪些元件,针对每个元件的版本管理与集成测试,以及这些元件背后合规相关事宜。如果不能做到这些,那么大规模采用开源是一个非常有风险的事情。 “

事实上,开源对微软并不是新鲜事物,只是方法和心态上发生了变化。过去,微软更可以看作是贡献者,而现在微软则开始使用共享的技术。Erich Gamma 认为”开源对我来说就是一扇门,打开了就可以接触到更多开发者。“另外,去年微软在Docker 技术领域的贡献者当中排名第一。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

作者

蒋红冰
蒋红冰

TechTarget云计算主编,主要负责云计算和虚拟化网站的内容建设。长期专注于IT前沿技术,对云计算、虚拟化、人工智能、区块链等技术都有了解;对行业趋势、市场动态有一定的洞察。

相关推荐