Erich Gamma:微软爱开源的故事

微软公司杰出工程师Erich Gamma做主题演讲,谈到微软拥抱开源的过程。“五年以前在微软的会上谈开源,我不会有这样充满怀疑的态度,所以我今天向大家展示的是由开源所推动的,可以看到微软在这方面真正的热爱。”

ZD至顶网软件频道消息:2016年6月1日,2016微软开发者峰会在京召开。微软公司杰出工程师Erich Gamma做主题演讲,谈到微软拥抱开源的过程。“五年以前在微软的会上谈开源,我不会有这样充满怀疑的态度,所以我今天向大家展示的是由开源所推动的,可以看到微软在这方面真正的热爱。”

Erich Gamma:微软爱开源的故事

微软公司杰出工程师Erich Gamma

五年以前加入微软的时候,Erich Gamma的第一个任务,就是在浏览器内部建立起一个开发的体验,让浏览器更智能、快速到像台式机一样。

五年来,微软对于开发者的态度已经从专有的变成开放源,在三个方向上展现出爱开源的热情:微软为开源的开发者提供基于开源、免费的代码编辑器 Visual Studio Code,可在视窗、Linux与Mac环境上运行;为了解决JavaScript开发者在大型应用开发上的痛点与难点, 推出基于JavaScript、具备强型别的TypeScript 语言,已经由Google采用,作为其 Angular 2.0网页框架的编程语言;微软也将视窗环境下广受开发者喜爱的应用框架 .NET Framework 的核心部分开源,称为 .NET CORE,可以支持视窗、Linux 与 iOS 不同的操作系统,既开源也跨平台,已经成为GitHub上最受欢迎的开源项目。

据悉,Erich Gamma拥有多重权威身份。他是Jazz项目的主要领导人;是Eclipse的项目管理委员会成员,被业界称为“Eclipse之父”; 是经典书《设计模式》的作者四人帮之一,1998年与Kent Beck一起开发JUnit,使其成为Java社区的单元测试工具;有“敏捷开发方法的创始人”之称。

2011年加入微软后,Erich Gamma主持微软设立在瑞士苏黎世的一个开发实验室。微软的多个产品如 Visual Studio Online、Visual Studio Code和 Office 365 开发工具里都应用了由这个实验室开发出来的基于浏览器的开发套组件“Monaco”。 

以下是Erich Gamma现场演讲实录(官方版):

各位上午好。我很高兴来到这里,我要给大家介绍开源。我很多次谈到开源问题,五年以前在微软的会上谈开源,我不会有这样充满怀疑的态度,所以我今天向大家展示的是由开源所推动的,可以看到微软在这方面真正的热爱。在这之前,我首先给大家解开一个谜团。大家举起手来,你们有多少人使用这方面的代码,人不多。你们能不能解释一下这方面的问题?左边是我们现在连接的Connect,有很多积极的用户,再往下是我们的圣诞节,在圣诞节期间大家并不做很多的事情,我在这方面,2月13号出现了什么情况,这个数字错了,还是我们错了,还是我们做了一些错事?我的领导是中国人,他跟我说,好吧,这是春节。我当时感到有点不快,因为是新年,为什么有这个理由,而不用我们的代码呢。

开始讲我们的背景,到底在过去五年发生了什么,然后再讲讲开源本身,这是我工作负责的方面。五年以前我加入微软,当时给我的任务,我的使命非常简单,我们叫IDE方面,我们的任务很简单,一开始我们做在线的工具,或者Online Tooling,我们有这方面浏览器的技术、Java等等。所以我们第一个使命,当时我的第一个任务,就是在浏览器内部建立起一个开发的体验,让你能够忘却你是在一个浏览器里面,我们必须要非常快速,像台式机一样。所以从一开始就要不断考虑整个绩效。所以我们需要一些技巧,如果再看浏览器的话,必须要帮助浏览器,比如各种各样的会话,各种各样的内容,比如左边几千行的,我不希望所有都在浏览器,我们希望看到一些重点。

另外,速度如何能够更快。如果要很好的使用浏览器的话,速度会更快。在左边是一个很天真的做法,右边是CSS,使得你的工作效率大大提高。最后,如果我们在浏览器中做智能应该怎么做?我们在浏览器中要使你更好的在UI的线程之外,这是我们的主线。所以你需要有智能和各种各样位置的建议,我们把我们的建议发出,然后进行计算,使用我们的RPC很好的结构来结算,最后结果出来了,这只是一个例子,向你们表明我们在这方面,要在我们的浏览器中速度更快要做哪些工作。

看看我们几个产品,看看我们在线,比如可以看到我们整个这方面的代码,OneDrive,这也是我们的编辑器,进行渲染,包括上色等等。后面一张也很重要,我们使用我们的开发工具、源代码、编辑器,这对我们是非常好的压力测试。我们和原来相比速度提高了多少。另外,把所有东西加入到浏览器进行编辑,这是在线的Monaco,这是几年前做的项目,还有Linux,这是非常好的,因为它是和我们这个愿景,横跨各种不同的平台是一致的。另外,我们各种各样不同的在线编辑器也做了一些变化,微软做的变化,实际上在微软当中出现了不少很大的变化,而且时间对我们来说非常合适,因为我想在这五年的时间当中,这种转换发生了。所以大家光从Windows变成了各种各样,Azure也支持在Linux上跑。也是我们思想上、认识上发生了很大的变化,大家都可以进行Visual Studio,我们打开了这样一个门户,给了各种开发者更多的,让他们使用他们最喜欢的编辑器。还有一些技术方面的代码,必须使编辑器更加开放,我们也可以在不同情景下使用。同样很重要的,使我们的开发者帮助我们做得更好,我们从专有的变成开放源。在微软出现这些变化,很有意思,的确和我们做的工作是相一致的。

还有Hacker News,就是黑客新闻,作为开发者要不断和他进行对飙,对黑客新闻的打击清单,第一条.NET,点数达到276。还有OpenSource方面,C++,数字是1297。还有我们原来的CEO巴尔默,还有下一任CEO,也就是说我们开发者的社群非常喜欢这方面的服务。举一个例子,我们也看到ASP.NET4.6,可以看一下技术对战从下到上是开源的架构,除此之外,可以看到上面也是开放的,是把CPI开放化帮助你使用。Core 1.0版本可以确保也是开放开源的平台。根据现在的情况,一切看起来都很好,但是我们想一下开发工具怎么办呢?如果你能支持一个开源开放的平台,你也想要有这种工具,这种工具在别的平台上也能用,正是有这样的想法,我们就有Visual Studio Core,确保你选择你喜欢的编程语言,在你喜欢的平台上进行编程。我们看一下.NET Core Developer,如果是在OSI上面开发会做怎样的展示。这就是Visual Studio Core,我们想要成为一个包容性的项目,什么叫包容性的?也就是说无论你选择了什么代码编程源进行编程,你喜欢什么就可以用什么。我给大家看一下我们其中做的一个特性,真的是非常酷,可以用英语做,里面有中文转译版本,英文有过来了,是双语的,你两种都可以使用。主要是高屋建瓴给大家,略见一斑,让你了解到我们产品多么具有包容性。

接下来看一下命令行,这一行命令写完了,再写我在北京,在Net Core,非常好的一点是,你可以安装多种版本,不是用什么操作系统只能用这几个版本,我写上“.Net New”,这样一来帮助我们打造程序,我写上Core Insiders,再打开,这里面就有我们产品的描述了,当然这是虚拟,这里面是我们的资产,它需要一定的时间去进行开发。接下来我们必须要确保根据你的需要是什么,我们量体裁衣进行优化。这里面有一些因变量,取决于别的因子变化的因素,我写.NET Core,我还可以连上网,系统自动知道你想要什么。每一个过程中都有它的因变量,都有它取决的因素。

接下来看一下编码,展示一下怎么做。如果你是在Mac上面,我写上”Console.wrietline”,看起来可以,就是我在北京向您打招呼,编译的过程是非常非常满意的,因为是开源的系统。除此之外我们还可以代码重构,把代码重构重新命名都是可以的。写上“hello”,这里面被动态更新了,之后在括号里进行加,之后我在Linebob这边写上命令行,把Hello变成Hello1,编码的过程是不是非常顺通无阻。大家想一下在这个过程中经常会出新问题,我们系统中帮您解决这个诉求。我在这里写上,我们把Lanch进行描述,里面有Lanch、Bulit,到Dagen(音)这个过程了,它正在编译,之后我点一下进入,之后找到一些变量,看一下这一列,是不是看起来是你以前没有做过的,而且是非常新颖的。从命令行到最后,你在Visusal  Studio可以开发一些代码。这是第一个小的展示,再回到前面的幻灯片,进一步看一下Visual Studio能够给你带来什么好处。

Visual Studio会提供什么平台呢?在右下角可以看一下,这边有一个火焰形的标识,OmniSharp的标志,它会有开源的成份,而且每一个部件都是开源性的。OmenSharp所有想用的编译器都可以,在任何的一个平台上都可以,它是开放的平台。OmniSharp是用非Sharp的技术架构,微软后来看到了这一点,我们想我们也可以做到很好的,我们想用典型的开源式的方式做,所以我们加入了业态当中,OmniSharp的开源活动当中,我的团队当中有一个团队成员专门跟他们合作。除此之外,我们会在Resline(音)上运行,它也是一个平台。Visual Studio  Code能给大家带来什么样的不同呢,能够让你有比较竞争优势,如何实现呢。我们想要确保有一个代码编译器,能够确保你能够做Code、而且让它在多个平台上运行,我们就不一定是在浏览器当中了,比如说它达到了,比如你用Windows、OSX、Linux都是一样的。

我们想要确保打造一个编码的自循环,什么意思呢?我们在编译的过程中必须要有非常快的编译器,可以支持多语言版本。除此之外,大家看一下Visual Studio的背景,确保我们能够进一步优化,重新构建代码,都是可以帮助大家实现的。在Build这个环节中,我们必须支持多个Build工具才可以,这样一来才能确保,我们不需要去外面找这样的错误,内部就可以发现。Debug,我们必须要有一个整合的Debug,去定位编码在哪个地方出了问题。最后做完之后要Commit,这就是我们产品的定义和愿景。除此之外还有一个挑战,我们想要在网页程序开发过程中成为一个很好的平台,什么叫网页开发?你必须把很多API都进行管理,还有Build工具,很多框架,都需要管理。从我们角度来说,如果想要支持这些的话,要考虑一下能够找到一个正确的方法,不是把它们都加进来,而是创造一个命令行,而且能在整个资源池当中会有一个包容性的平台。所以这时候代码的开发者可以以他们喜欢的语言这样去做,所以我们喜欢编译器。

我们发现大概80年到00年期间,开发者喜欢editor,他们不太用IDE了,现在大家都喜欢用editor,他们喜欢轻量型的,能够快速的,只有文件夹版本的编译器,他们心血来潮,希望有多个工作流的能力,多种语言,比如只是用命令行解决所有的问题。另外一些IDE,它有这样的Project的系Visual Studio统,能够帮助了解理解您的代码,包括帮助你去理解ASTST,帮您做Debug。我们能不能做一个折中,天平朝Editor倾斜一点,我们想快速而且轻量型,想一秒钟解决问题。而且能够直接帮您打开文件夹,当然不是每一个开发者都喜欢这点,但是您用上的话,真的会喜欢Visual Studio  Code,因为它是一个家族式的平台,里面有很多工具,它所有的一切都是为代码而服务的。之后我的同事会给大家介绍一下这个平台,会给您多个选择,您可以选择您喜欢的工具,用您喜欢的工具打造出最酷的代码。除此之外,Editor下面有40-50种语言的支持,IDE也有它的优势,我们是Debugs包括译码的理解,把这些好的地方吸收并那到我们的Visual  Studio  Code中。

在Visual Studio  Code中是什么呢?它是我们开源的现实版,相当于站在巨人的肩膀上向前看。比如说我们的UA Sharl和Platform是开源的项目,它能够确保API能接入到您的文件系统当中。它把Colmule(音)内嵌其中,除此之外,它也是写代码的一种工具。它刚开始不是开源的,是叫做Monaco  Editor,确保使用我们技术当中越来越开放化。在这方面我们要确保在浏览器之外的工具,把它进行自用化,这样它可以在桌面上进行运行。

我们来看一下Electron,它是基于网络的技术,你想要API的话,你会有NoteAPI,你可以用它接触到你文件当中,确保过程更加顺畅,除此之外还能够达到其它的项目。它是一个开源性的平台,他们是由Github来进行维护的,而且是开放化的社区,非常活跃。,除此之外,它是一个跨平台的,而且利用了网络科技。Elecrtron这样一来它能够给您一个无缝体验,什么意思呢?如果你看一下Electron就像OIS,非常像,如果用Windows系统的话,你也非常熟悉它的样子。当我们刚开始发展这个项目的时候,我们是用JavaScript编程,大家都喜欢用JavaScript编程,如果你改了,按F5就被刷新了,如果改的话,每次F5就解决了。但是在这个过程当中,我们觉得随着我们代码的困难越来越多,在现有的基础上改动就很难了,牵一发而动全身。如果有一万行、一千行,像以前一两行改代码就很难了。大家想一下,每5万行就必须像倒积木一样,很难把三个橘子同时抓住,尤其是命令行特别多的时候,你用JavaScript进行改的话很难。给大家举一个例子,我们MySQL可以帮助我们去使用,大家想一下对于开发者来说,任何好的宝剑都有它的不锋利的一遍,就是JavaScript一样。我们知道Visual Studio能够支持35万行的命令行,除此之外可以进行更快的响应,可以解决JavaScript的痛点,五年以前就开始了这个过程。我们开始进行了一些研究,而且做了一些模型和一些实验,完全都是自己进行开发的。在这个过程当中我们感觉到了一些痛点,JavaScript痛点,书写是容易,但是修正特别难,因为你只有Name,没有Time,用JavaScript,如果代码有错误,想改的话就很难,不能轻易的去改,有的时候会造成大问题。我们的Visual Studio可以随便让你重写你的Code,你改个三四次都是可以的。当然也要有条件,必须有比JavaScript提供得比微软工具更好的才可以。我们的技术架构都非常了解,我们能不能确保API是开放使用的,JavaScript没有达到这一点,没有办法确保去描述一下我们怎么用我们的Library,做的只是把命令行写出来,让你连入一些信息,不能像我们这样让你描述一下。所以TypeScript,你开始一个命令行,之后可以用DevOps的形式,用TypScript,随着语言逐渐清晰化,格式化可以更好。除此之外,能够给您一个可选的静态的Type,Type找到了就可以找到Refers,就确保可以做代码重构。TypeScript给你可选择的静态Type,而且用散点的形式进行注解。除此之外,JavaScript  Code帮助你的书写和更改,能够让你大刀阔斧的进行代码重构。除此之外它的安全性也更高。可以看一下在项目运行过程中发现了这点,所以TypeScript的安全性就更高。当你运行代码的时候,你就是义无反顾的运行代码,不会注意到其中这些错误,但是这里面会有内存丧失的效应。TypeScript在过去几年发现了新的特点,它的语言一旦进行使用,就会有这样的限制性。就是说JavaScript必须把描述足够清晰,非常基准化才可以,TypeScript在底层可以支持你的代码,这样可以确保是面向未来的语言,不像JavaScript,针对当今的语言书写,TypeScript是面向未来的方法。

介绍一下最近的发展,看一下TypeScript最近的一些变化。可以看一下,其中有一个非常重要的增加的新性能,它就能够支持JavaScript,所以我们用智能的编译器,智能化的这些工具,帮助你用JavaScript进行编码点。我快速的给大家展示,这个展示表明,不仅仅用JavaScript写代码,实际上TypeScript可以把我们JavaScript进行优化和改善。再退回来一下,Solsa是代码的名字,提供了各种各样的支持,开始代码,我现在有了很清楚的文件间,可以告诉我整个项目的背景是什么,基本上是空的,我很快的把它包括进去,所以我需要我们编辑器选项,这样特别有帮助。各种各样的功能,Person(Name,age),人的名字、年龄。下面问你,我们得到多少智能语言,恐怕并不是太多,所以现在有一个变量的话。因为他不知道类型,这样的话,我可以打出“1,1”,所以我们这个工作能够很好的进行合作,各种各样的信息。它支持的是其它的文档节度,做好以后马上可以看到,通过这个指令收到了有关的信息,我再把名字写上,Erich,32岁。比如说你有一些办法,使用这些类型,这只是我们使用的一种方法,对于它的功能来说,它能理解这样一种类型,相当酷,因为现在我可以得到一些智能等等。三是欢迎,“Greet”,都是自动的,还不够好,我们想得到一些智能的话,现在有很好的办法用我们定义的文档,使我们的Java更加智能,更加便于理解。而且现在这种类型定义的文档,打上“Typings  install dt-jquery--save--global”,可以继续做我们的信息库。这是我们开放源社区很大的一个特点。

1800多个这样的库,不管你有什么样的库,可以从他们那里得到各种各样的信息,可以很快的上载。回过头同样操作一下,真的得到了ajax非常复杂的办法,得到各种各样的设置,得到各种各样的智能,在后面把它的定义打出。可以看到所有这些参数,实际上我们开发者社区创造了这种定义文档,所有这些都可以在工具里得到,这就是TypeScript优点,你可以用Java使用所有TypeScript智能。

再回到PPT的幻灯片上,TypeScript 2.0,刚才提到三项这方面的工具,再过两三个月就能推出,取决于我们项目的进展情况,我们使用了不同的流程,在下一版是一种非Nullable的类型,使我们代码正确性提高。所有这些只是一个数字,但是有了这些之后,非作废的类型,我们不再看作是数字,你必须要正确输入你的代码,这恐怕是一个数字,另外还有Async/owait,Downlanping的支持。另外我们的命令线,当我们获得这些Typing,更好的更容易的方式做一些,而且取决于你代码本身的情况。这就是TypeScript。

还有它的扩展,我们的开源生态系统也是非常重要的,去年11月进行了开源的处理。第一个问题来了,一年以前我们插入系统怎么样,我们有一段时间做好准备,去年我们做了一个预览,我们有六个月的时间开始使用Extensions,我们当时对结果非常满意,我们得到的反馈意见非常清楚,我们需要有一个很好的插接的系统,API在市场方面做得更好。

这是一个非常好的题目,我们如何进行代码的内部扩展,大家可以看到,我们的解决方法是什么。我想说一下最简单的解决方法是什么,Formelo(音)是一个是多流程的,包括主要流程,包括我们的Renderer  process,浏览器的窗口,所有的UI来进行这方面的,包括很多的智能,主要的流程,涉及到各种各样的事件。一个比较简单的办法,就是跑这种扩展,就像UR  Run一样,我想做某些功能,让它更加强劲有力,比如不使问题更加复杂,用户永远可以存储他的文档,可以在同样流程或者不同流程进行扩展的话,你可以永远来储存,因为我们的扩展是在一个没有穷尽的内环中,这是第一个好处。另外一个优点,我们可以很好的设计API的扩展,从头开始设计,有一个流程编辑的话,我们可以设计这样的API,更加容易理解,另外可以很好的满足客户的需求,这样的话,我们用一个不同的流程进行扩展,这是一个节点的流程。RDC进行总体流程,使我们带来很多有利的方面,因为我们是整个流程和扩展,我们能够完全扩展,如果没有这种完全管控的话,有时候会出现问题。我们可以重新使用我们的Node节点的模块,vscode.d.ts,有这个的话,我们就可以在一起书写一些扩展内容。

 “yo code”,这是一个代码的发生器,我们不用进行任何模块可以进行扩展,所以我们有了开放源,我们不是要重新发明,我们有可能参加了开放源的项目,就可以很好的进行这方面的扩展,所以我们微软的产品都是有这样的,像office等等,可以进行这方面基础架构的重建。开始我们可以用JavaScript进行扩展,用的名字是“EG2”,现在我不需要这样的存储器。我们的扩展能够做到什么样呢?觉得有点平淡无味,怎么做让它更加具有娱乐性,所以我们是这样设计的,我们可以回到命令线,回到开放源代码,为什么用Insider,这就是我们做的扩展,描述了扩展过程,版本、发布人和VS Code,我们的需求,VS Code,另外我们还有激活的事件,我想在这儿进行我们的扩展,JavaScript,我们把它叫做on language JavaScript。可以说VS Code,包括我们的智能语言,所有的API,现在大家看到,我们提供了这样一种类型,任何时候你想用API其他人给你数据的话,我们可以进行加工,按这样的准确性给我提供信息和数据,包括各种各样的供应,包括我们完成项目的供应商、信息定义的供应商。按照项目名称,haverProvide:vscode.haverprovide,看看haverprovide做哪些事情,很快的回到定义。整个API的描述在这里,大家可以看到两个回溯的回执,都是JavaScript,我们还有消除工具。现在我们要回到Hover上去,Hover也需要一个语言,我们还没有做完,我们是把它拽过来,“Hello from Beijing”。激活还是很容易的,推出这一点,把JavaScript打开、激活,现在我可以很容易把我们的Node.js打开,这方面可以进行很好的Debug,重新再来一遍,看到haverprovide到达我们真正来进行扩展的object的功能,在这儿看起来都不错,可以继续下去,到达真正进行扩展的Object,之后从北京向你打招呼就跳出来了,变得更有趣一点,让大家是乐享其中的。

退回来看一下,这一行删除,之后把他的这句话引用出来。找到服务,我来回忆一下,我们把Script写进去,把它作为指令来执行了,有两个结果,会把这个词填出来,我们可以把它从这个库中退出了,是非常直白的,但是我们在这个之前,想给大家看一下,实际上有其他的Article,在这个标志之后就会继续出现。比如变量A等于1进行定义,看看接下来会发生什么情况。大家看到了吗?这里面就可以看到,这一个动作,可以打成三行这么长。接下来有人说HTTP也是可以的,接下来可以把HTTP导入,这种编译的程序非常强,而且可以用Module的方式做。我们再点击一下绿色的箭头,看看我们成功运行了没有。如果这个服务是可以正常运行的,我们就大功告成了。看看现在服务上传了没有,不仅仅有我们的描述,不仅比JavaScript多一个描述,除此之外还能够有非常有意思的引用。当然,我对其中深深的着迷,我没有办法停下来,欲罢不能了。大家看一下所有有趣的引用的词,我都喜欢读一读,这些对我的生产力提高是不利的,会分散我的注意力。

我们来看一下艾伦说过这样的一句话,我也希望比尔盖茨的说也能够出现在上面。它对扩展书写非常直白,给大家留一个作业,当今天开发者峰会结束以后,大家回去以后,您试着用我们的方法玩一玩,写一个主页好不好。

再回到我们幻灯片中,我们有很多很多的扩展,我们的架构能够支持这些扩展。除此之外,还有很多内容我们也都可以提供,包括C++,包括PowerShell,如果从架构的角度来说,对于扩展我们不会作为托管Extension,但是Code可以融合多个平台。服务器给大家作一个案例,它作为Extension Host,有一个蓝盒子,可以管理它的服务器,这样一来,它能够自动进行执行,我觉得这个好处非常显而易见,书写代码更加容易。除此之外,看一下Visual Studio Code的工具都是加了JavaScript,这样一来你可以反复使用,在编码过程中你有这个选择权,选择用哪种语言进行执行,执行过程中可以选择你喜欢的语言,它已经存在了。GO的工具,我们用Comment工具,能够让大家确保有一个Insight,除此之外,我们有一个JavaScript服务器,确保使用不同的工具都可以配合使用。

回到刚才这一页,我写到扩展行,除此之外还要倒出来,非常强大、非常好用。大家可以看一下,能够更容易的把这些原服务器接入到其中。所以从协议的角度来说也是支持的,所以不需要再写更多了。

它是一个开源的环境,在开源的大家庭当中我加入了其中,我希望提醒大家的一点,就是让大家了解一下这个闭环。刚才已经解释过了,它是一个良性循环,作为一个开发者团队,实际上我们想要更开放、更加透明,这样有更多的用户反馈,用户反馈越多,我们就能够提高自己,变得更加透明。所以这是一个正向良性循环,更透明,就有更多的信息,就能够更加开放化。

我觉得透明度我们开发者来说非常重要,所以我们想要完全的透明,让大家了解我们在编写代码过程中是怎么样进行开发的,除此之外我们必须要确保所有这些Roadmap都以文件的形式被记录下来,除此之外所有的激活的计划也记录在案,比如我们在网上的一切都是开源化、透明化,所以大家多可以直视化。可以看到现在进展到哪一步了,之所以打造这个系统,就是让大家也知道我们在做什么,只有你们知道我们做什么,才能够指点迷津,给我们提出真知灼见和回馈。在这个过程当中,大家还可以点赞、点爱心、鼓掌,都可以。

如果你这样做的话,你可以得到很多用户的反馈,给大家举一个例子,可及性,我们是一个非常透明的环境,而且我们是高度可及易用的环境,很多人给我们反馈,这是一个良性循环的闭环,能够确保有一个包容的环境,我们微软真的做到这一点了,我们是一个协作的方法,我们和Github进行了合作,而且在可能性上得到了巨大的提高,包括ASP.net,包括Google HANA,可以和我们其他的团队进行透明的协作,使我们的透明性上了一个台阶。你可以看一下Visual Studio  code透明性不止如此,我们还有很多其它的平台。我们用绿色的图标做了展示,蓝色没有做,它会给您安稳、平稳性的保证。绿色的是每天用来更新的,每天不断使用的,蓝色是用来保证稳定的。你可以来回换,如果用绿色频道的话,每天都得到更新,是非常简单的。如果及时更新的话,你就会得到很多反馈,我们知道最近的一次改动得到其他同行或者用户怎么样的反馈,可以及时获知到您的手中,您的过程越透明化,就会有越多的反馈帮助到您的系统。除此之外,开源的平台也不是一路顺畅的发展,像之前也有一些摩擦,我必须要正确的工具和正确的流程才能运行起来。微软是怎么做的呢?我们希望对于开发者来说,开源的好用,让你的生活更简单,所以在这个过程中,微软投入了大量的时间和精力。我们再想说,我们了解到你们使用什么样的开源工具,我们必须要了解大家每天使用什么,而且你们对什么感兴趣。给大家举一个例子,Visual Studio Code,包括142个oss组建,90%都是节点的模组,现在必须把所有的许可协议层级进行新的定位跟踪,让大家了解到你写代码的时候喜欢使用什么样的开源系统。这样一来让大家了解到,我们每打造一个产品都应该了解到客户在使用什么,而且这是我们作为这样的企业,社会公民应当有的形象和义务。以前有很多律师站出来,比如谈到开源,他们就竖起了藩篱,这儿不合规,但是现在行业完全的开放化了,现在不会有人跟你说不了,实际上有人说不,这个不是在于你不能用这个系统,而是他帮你扫清一切阻碍开源化的时候说不,不能关门,必须开起门,使开发者的工作变得更加容易。对于系统的贡献者来讲,我不知道过去大家的感觉是如何,大家想一下,你把命令行写完,之后做一个Dogomen,就这样的两个步骤,你必须签一个CLA的协议,必须进行传真扫描。但是现在我们有Bot系统,它是Github当中的服务,如果你想把这个东西嵌入到系统当中,一两步就可以完成了,不用像以前这样专门签一个CLA的协议这只是一个冰山而已。我们要确保它的贡献开发,包括使用更加便捷。

我来总结一下,微软真的是深爱开源,而且非常精彩纷呈,所以我们知道它能够助力量开源社区的发展。对于开发者来讲,你们也喜欢用正确的流程、正确的工具打造开源软件。再次感谢各位的耐心聆听!今天下午的环节更加精彩,我希望今天下午大家也能够乐享其中。上午告一段落,再见!

来源:ZD至顶网软件频道

0赞

好文章,需要你的鼓励

2016

06/01

14:01

分享

点赞

邮件订阅
白皮书