爱开源的微软是如何击败 facebook、google 成为 github no.1 的? -买球官网平台

引用
本文来自:
作者:唐小引

引用
拥抱开源的微软这几年究竟都做了些什么?

去年今月,我在微软开发者峰会上见到了《设计模式:可复用面向对象软件的基础》联合作者、现任微软技术院士(technical fellow at microsoft),那是我第一次真正对「微软爱开源」的 slogan 有了清晰而深刻的认识,从可在视窗、linux 与 mac 环境运行的 vs code,基于 javascript、具备强型别的 typescript,到既开源也跨平台的 .net core 等,微软已然成为了开源领域的佼佼者。彼时还很好奇微软为什么会从封闭到积极拥抱开源,对此,erich 如此言说:
引用
其实开源对于微软而言并非新鲜事物,只是方法和心态上发生了变化。过去,我们只是自己编写,自己维护产品。现在,既使用别人的,也提供给别人使用。开源对我们来说,就是一扇门,打开了就可以接触到更多的开发者。

所以,微软爱开源,不只是使用到了很多开源的东西,我们也做了非常多的贡献。就像是“给”和“拿”的关系,这是一个非常重要的变化。我们不仅有完整的流程去使用现在的开源技术,也有完善的过程将我们的工具开放给大家使用。

从 pc 时代一路走来,曾经“因循守旧”到成为 linux 和开源社区的头号敌人,颇让开发者嗤之以鼻的微软究竟如何在开源上发力甚至击败了 facebook、google 成为 github 贡献第一的公司?而从诋毁开源到拥抱开源,为何微软会做出截然不同的开源战略转型?追本溯源,也许我们能够从微软开源历程的几个重大事件中找寻到答案。

2004 年,基于 oss 许可协议发布的 wix 工具集成为了微软发布的第一个开源项目,该工具集包括了编译器、链接器、库工具和反编译器。

2006 年,微软推出开源托管网站 codeplex,在此网站所发布的所有程序都可以下载源码使用。尽管微软已经宣布此网站即将于今年关闭,但不可否认的是,这是微软首次重要的开源社区尝试。

2007 年,微软的开源许可证 microsoft public license (ms-pl) 和 microsoft reciprocal license (ms-rl) 得到了 osi 认证。在一篇文章中,osi 写道,“这个决定的通过获得了开源社区大多数人的认可(虽然还有不同意见),这些许可证符合开源定义的 10 项准则,所以应该通过。”

2008 年,微软加入 apache 软件基金会并成为白金会员,逐渐向开源 web 服务器 apache 项目靠拢。

2009 年,微软向 linux 内核贡献了超过两万行的代码。这些代码大大增强了在 windows server 2008 hyper-v 或 windows server 2008 r2 hyper-v 上运行的 linux 操作系统虚拟机的性能。这些贡献让微软在一段较短的时间内成为了 linux 内核排名第一的贡献者。

2009 年,asp.net mvc 基于 microsoft public license 开源,这些代码没有平台限制,也可以被移植到 java 或 ruby 平台中去。

2012 年,微软基于 apache 2.0 许可证开源了它的部分 web 产品体系,包括 asp.net mvc、razor 和 web api。

2012 年,微软开源了用来强化 javascript 开发大型应用程序的工具语言 typescript,后来更被 google 用于打造自家维护的下一代 javascript 应用程序框架 angularjs。

2012 年微软成立“微软开放技术有限公司(microsoft open technologies inc.)”,其主要目标是“推动公司在开放性方面的投入,包括互操作性、开放标准和开源”。

还是在 2012 年,微软开源了用来强化 javascript 开发大型应用程序的工具语言 typescript,后来更被 google 用于打造自家维护的下一代 javascript 应用程序框架 angularjs。

2014 年,微软云端和企业部门执行副总裁 scott guthrie 在 connect() 会议上正式宣布.net 核心将开源,包括 .net framework 4.6、.net core 5、还有 runtime 和编译平台 roslyn 等。这不是微软第一次宣布产品开源计划,但却是最让全球开发者震撼的一次宣布。

同年,新上任的 ceo satya nadella 提出了“微软爱 linux“,并加入了 ocp(open compute project),在微软 build 大会上成立.net 基金会,全力支持 .net 平台上的开源研发与合作。

2015 年,微软通过与 credativ 合作,将最流行的 linux 发行版之一的 debian 带到了它的 azure 上。同年与 red hat 达成合作,将 red hat 企业版 linux(rhel)带到了 azure 云上。

同在 2015 年,微软还开源了 visual studio code, 并且发布了 visual studio gdb 预览版,允许开发者远程调试 linux 对象。

2016 年初,微软和 canonical 展示了在 azure 上运行 ubuntu linux 的第一个技术预览版。至此,微软已经将所有的领先的 linux 发行版带到了 azure 云上。

同年 3 月,在 eclipsecon 大会上,微软宣布加入 eclipse 基金会,在 11 月的 connect 开发者大会上,微软公司加入 linux 基金会成为第 11 位白金会员,取得董事会席位,同时也宣布 google 加入微软 .net 开源基金会。

且在 6 月的 red hat devnation 大会上,微软正式发布实现跨平台(windows、linux 和 mac)的 .net core 1.0 ,这意味着开发者可以使用 windows 开发,用 linux 部署。

9 月,在 github 的“对开源贡献人数最多的组织(organizations with the most open source contributors)”的榜单中,微软击败 facebook、google 一跃成为 no.1,至此,微软彻底赢得了来自业界及开源社区的认可。

而到了今年,微软在开源领域已经有了诸多动作,比如开源 gvfs (git virtual file system) 虚拟文件系统、azure service fabric sdk、用于帮助开发者创建跨平台应用的 reactxp,以及可用于训练无人机和自动驾驶汽车的模拟器平台 airsim 等。

在《》一文中,作者如此总结道:“对企业来说开源作为一个武器,无论是进攻还是防御,首先要考虑的都应该是商业的利益。微软帝国从 pc 时代崛起,经历了互联网时代的短暂迷惘,新的君主能够领悟到了开源的价值,转变战略乘云之势重回宝座不得不说是企业开源战略转型的一个典范。”

而从技术角度出发,我们又不禁想问,开源对于微软究竟产生了怎样的影响?erich gamma 给出了他的答案:
引用
开源的发展速度非常惊人,尤其是微软。五年前谈到开源时,整个 windows 没有什么开源的东西。这五年来我们发生了很大的变化,现在微软内部也有了很多流程与方法,能够让我们的工程团队去使用开源。

五年前,我们的律师一听到开源,第一反应就说“no”,但现在律师也在帮助我们更好地往开源上做努力了。我们知道开源领域有很多争议,特别是 license 的部分,有些“license”也许存在一些灰色地带。然而在微软,我们的工程部门和法律部门都在帮助我们更加合规地做开源项目,比如 gpl。现在,在他们的帮助下,我们能够清楚地了解哪些是我们可以使用的。

虽然是开源,但事实上对微软对我们所提供的开源软件是负责任的。微软对开源技术的运用横跨多个不同的产品线。我们内部对整个开源的软件都做了详细的记录,来帮助开发者和产品团队,让他们避免陷入到一些 license 问题里。我们很多开源的软件都有数据库去记录它用在哪个产品里,能够实现正向和反向的追踪。比如有的开源软件造成一些问题,我们可以很清楚地对相关产品进行迅速准确的修正。

而说到影响,我所看到的最大的贡献便是来自于效率的提升。比如当我们把 .net core 开源之后,有诸多来自社区的人帮助我们审阅代码,给出了很多改进意见。同时,许多开发者会希望能不能实现让 .net core 在其他平台上运行,我们可以看到在这方面很多的尝试。

  • 大小: 30.1 kb
2
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • bug报告模板经典

  • 提示“an unknown error has occurred”,detail info最上面的那行,大概是提示exception “/usr/lib64/python2.7/site-packages/pyanaconda/bootloader.py”。出现这个信息时,可能是你的硬盘里面有些raid的数据,与安装程序发生了冲突,你要把你的硬盘格式化掉,一般可以用diskg...

  • 转载:http://www.hellokvm.com/?p=659 an unknown error has occurred this program has encountered an unknown error. you may report the buy below or quit the program. this program has encountered an unknown error. you may report the buy below or quit the pro

  • 序言 在小米商店上架过程中,如果发生错误。可以下载日志,但是日志文件需要特殊工具查看。而且买球官网平台官网上也没有相应的教程。特别记录一下。 下载下来以后解压出来是这样的。 mp4里面是测试视频。而压缩包里面是日志文件。解压以后是这样的。 这个时候需要在这个文件夹中放入一个jar包。 工具包下载 然后输入命令,其中的bugreport-xxx.txt 就是同目录下的错误日志文件,名字取同目录下的名字。 java -jar chkbugreport-0.5-216.jar "bugreport-xxxx.txt"

  • 如何写一个好的bug报告:(为了方便描述把服务器以及客户端都简称为程序) 简单地说,报告bug的目的是为了让策划以及程序员看到程序的错误。您可以亲自示范,也可以给出能导致程序出错的、详尽的操作步骤。如果程序出错了,程序员会收集额外的信息直到找到错误的原因;如果程序没有出错,那么他们会请您继续关注这个问题,收集相关的信息。 在bug报告里,要设法搞清什么是事实(例如:“我点击了xx”和“xx出现

  • 一 1 月 27 号,我在编辑公众号文章时,发现了微信公众号的一个前端显示 bug,就顺手给贴到一个测试论坛上,因为不是自己产品的 bug,所以就想着有腾讯的人看到可以自己去跟进来着。 结果等了几天都没动静,直到第三天,也就是 1 月 30 号,终于有一个坛友肉身帮忙重现,竟然发现问题不重现了,我勒个去。 其实她一开始给我说没有这个问题时,我还是不相信的,毕竟我在提 bug 前反复验证过,并且给出了必现步骤,以及其他关联场景的验证结果,但是,我再次去验证时,竟然真的不重现了。 这真是哑巴吃黄连,有苦说不出,

  • 原文出处:http://nckiki.cnblogs.com/articles/242451.html编写优秀bug报告的艺术及案例分析---rex black原著《fine art of writing a good bug report 》---kiki翻译于2005/5/28前言在99年的quality week上的一次演讲中,微软的一个测试经理,roge

  • 一、 *牛牛有n张卡片排成一个序列.每张卡片一面是黑色的,另一面是白色的。 * 初始状态的时候有些卡片是黑色朝上,有些卡片是白色朝上。 * 牛牛现在想要把一些卡片翻过来,得到一种交替排列的形式,即每对相邻卡片的颜色都是不一样的。 * 牛牛想知道最少需要翻转多少张卡片可以变成交替排列的形式。 * 输入描述: * 输入包括一个字符串s,字符串长度lengt

  • 题目:https://vjudge.net/problem/uva-1600 思路:bfs求最短路径问题,需要注意对于穿过障碍时的处理,具体见代码及注释。 代码:c #include #include #include #include using namespace std; const int movex[] = {0, 0, -1, 1}; con

  • 有一个xxy的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。 给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小于等于12。 其实就是用了递归的方法,限定好初试条件就好了 import java.util.*; public class robot { public int countwa

  • 机器人控制算法 文章目录机器人控制算法感知算法环境感知视觉slam算法路径规划控制算法决策算法运动控制算法pid控制算法避障算法合理的创建标题,有助于目录的生如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右smartypants创建一个自定义列表如何创建一个注脚注释也是必不可少的katex数学公式新的甘特图功能,丰富你的文章uml 图表flowchart流程图导出与导入导出导入 感知算法 环境感知 视觉 slam算法 如扫地机器人(定位机器人

  • 作者 | developerhaoz 地址 | http://www.jianshu.com/p/6c21bbaebb9d 声明 | 本文是developerhaoz  原创,已获授权发布,未经原作者允许请勿转载 前言 身为一个有追求、有修养的程序员,除了要能解决 bug,也需要懂得如何有效的报告 bug。本篇文章主要内容来自于一篇英文博客,我翻译之后又做了些加工,英文好的

  • 50%的手机用户如果遇到出现bug的应用就会直接删掉。 这是smartbear2013年十月到十一月的调查报告中的结果。 报告证实了应用质量的确是手机用户最关心的,也是手机开发者的头号挑战。 原作者 pete goldin 原文链接:http://apmdigest.com/consumers-delete-mobile-apps-when-they-encounter-bugs

  • 在拨号页面输入*##286##* 解压bugreport压缩文件找到压缩文件点击进去找到bugreport文件夹点击进去找到bugreport压缩文件解压后打开此文件找到bugreport.txt文本搜索healthd关键词 找到fc对应的数字就可以看到手机电池现在进电量比上官方标识总电量就可以得出现在电池的电量百分比 ...

  • 十分有用的一篇文章,为了提醒自己做一个好的bug报告者,特保存文章在此。另外,为了以后方便查阅,提取了文章内容,加入自己的一些想法。欢迎留言讨论。

  • 一、             编写bug report的原则bug report是测试中最重要的一部分,也是测试人员价值的终极体现,一个有效的bug report,在编写的时候需要遵循以下原则:(1)                  bug可重现,尽可能找到重现规律。测试人员在编写bug report之前必须在检查问题是否可重现,问题重现才可以让开发更有效地查找到原因并解决问题,对于比较

  • 缺陷报告是测试过程中最重要的部分,对产品的质量有较大的影响,是测试人员价值的终极体现。好的缺陷报告可以减少研发部门的二次缺陷率、提高研发修改缺陷的速度、提高测试部门的信用度、增强测试和研发部门的协作。

global site tag (gtag.js) - google analytics