GitHub如何征服了Google、微软及一切

2020-01-30 21:36栏目:龙电竞官网
TAG:

图片 1

Chris DiBona担心所有的东西会在一个地方终结。

图片 2

如果你目前还是觉得开源技术没有专有软件那样可靠,或者是安全性不够的话,我认为你是时候开始学习一下数字革命带来的巨大变化了。在过去的几年里,如 Google、Facebook 和 Microsoft 这样的科技巨头已经接纳了开源哲学,并且体现在了他们最新的软件版本里了。同样地,更多的公司正在使用专有软件的同时也在使用开源解决方案,毕竟,开源社区里面所具有的多样化、创新和合作是外界所缺乏的。如果你还在犹豫是否要将开源软件应用到你的业务里,我觉得你应该了解以下内容。1. 大公司也很青睐开源软件关于开源的定义其实是很复杂的,尤其是谈到许可证这一块,但不管怎么样,开源软件的源代码是可供免费试用、自由修改的,这一点是无可争议的好处。或许你会有这样的印象:开源就是一群业余爱好者浪费时间的东西。稍等,貌似这些开源大牛也很爱开源:The Emmys、The Grammy Foundation、NBC、CBS 和 Sony,他们都在使用开源工具开发网站。那么问题来了,为什么有这么多的公司转向开源?Metal Toad Media公司的总裁和创始人Joaquin Lippincott说,企业目前主要是关注技术创新,改革当前的系统,选择开源这一决定如果你是站在经济立场的话是很好做的。”开发开源软件同样也可以削减许可证费用,而且开源项目常常发展速度上要比传统软件的发展速度要快。现有的企业软件未能跟得上开源的进度,因为开源开发者有更多的机会关注创新方面的信息,而不是保护一个静态或过时的项目,Lippencott说。2. 大公司也主动开源软件一些大的科技公司现在对于开源越来越积极了,争当开源开发者。Google 是老大,除了移动操作系统 Android 是开源的,还有在过去半年开源出来的安全工具 Santa、Firing Range 和 Nogotofail。与此同时,Microsoft 宣布了将.NET 服务器栈完全开源出来了,在去年的10月份,Facebook 发布了OSquery——允许管理者利用 SQL 查询电脑状态和操作系统特性。在2013年,Facebook还发布了一个开源的 PHP 虚拟机,称之为 HipHop Virtual Machine。不仅仅是商业公司发布开源代码,去年11月,美国国家安全局发布了 Niagrafiles 数据管理工具。3. 专业开发者投身开源虽然现在行业内已经形成了一种共识,那就是专有软件能吸引比开源软件更多的开发者。但是,开源代码托管平台 GitHub 战略副总裁 Brian Doll 说,事实正好相反,开源软件不仅能让用户评估代码,还能评估开发者,用户阅读代码的时候发现问题,会不断的向上汇报,同时可以了解社区的整体气质,还可以依赖同行审查其软件”。这种项目用户和项目贡献者之间的关系使得用户和企业发掘有才能的开发者,并且参与工具的开发,进一步挽留住这些编程天才,对企业和开发者个人来说都是有利无弊的。4. 开源比你想象的要安全的多尽管部分流传很广的例如 OpenSSL 的 Heartbleed 漏洞现在还萦绕在人们的脑海了,但专家指出,即使开源软件并不比专有软件在安全性上高出很多,但至少可以说是同等安全的。Brian Doll 指出,“所有人都明白一个事实,那就是确保软件安全极其困难。对于专有软件,用户只能等待厂商确认、修正软件中的缺陷,在这一过程中用户是无自主能力的。”开源软件中的缺陷可能被贡献者修正,贡献者往往也是用户,无需等待批准或推荐这样的过程,自己就会修正缺陷。流行开源软件中缺陷的修正通常依靠“举国体制”,只要社区对补丁满意,就会向用户发布。5. 从对公司有益的项目开始对于有兴趣探索使用开源软件的公司来说,Doll 认为应该先关注流行项目之后再决定从哪里着手项目。了解有哪些项目有助于帮助开发者获得灵感,引导公司从与行业最相关的解决方案入手。Doll推荐企业通过 GitHub 的 Explore 频道去查看最流行的开源项目是很不错途径。Doll指出,利用开源软件不断扩张的这一日趋增长的趋势刻不容缓。随着大公司投资开源社区,专有软件的主导地位在迅速坍塌。“有很多的企业在鼓动员工在开源软件的发明方面投入精力,可见企业开源正在走向常态化、普遍化。”

那是10年前,当时开源软件的想法尚未把技术世界翻个底朝天。开源的Linux操作系统已经在华尔街等地的大量机器上运行,证明了通过与世界免费共享软件代码一样可以创造巨大价值和金钱。但是开源社区的力量仍然相对较小。码农启动新的开源项目时,往往要到一个相当geeky且有时不大可靠的网站上,它的名字叫做SourceForge。

引用本文来自:作者:唐小引引用拥抱开源的微软这几年究竟都做了些什么?去年今月,我在微软开发者峰会上见到了《设计模式:可复用面向对象软件的基础》联合作者、现任微软技术院士Erich Gamma,那是我第一次真正对「微软爱开源」的 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 年微软成立“微软开放技术有限公司”,其主要目标是“推动公司在开放性方面的投入,包括互操作性、开放标准和开源”。还是在 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,在微软 Build 大会上成立.NET 基金会,全力支持 .NET 平台上的开源研发与合作。2015 年,微软通过与 credativ 合作,将最流行的 Linux 发行版之一的 Debian 带到了它的 Azure 上。同年与 Red Hat 达成合作,将 Red Hat 企业版 Linux带到了 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 大会上,微软正式发布实现跨平台的 .NET Core 1.0 ,这意味着开发者可以使用 Windows 开发,用 Linux 部署。9 月,在 GitHub 的“对开源贡献人数最多的组织”的榜单中,微软击败 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 在其他平台上运行,我们可以看到在这方面很多的尝试。

DiBona ,Google的开源大牛担心把全世界所有的开源软件都放到一个篮子上的风险:“只有一个篮子,那个篮子就是SourceForge”。

于是,像许多公司一样,Google建立了自己的网站,让大家来托管开源项目,这个网站的名字叫做Google Code。Linux等开源软件是Google建立在线帝国的基石,Google提供一个SourceForce替代的想法是,确保开源教不断演进,让它最终遍布全网。

不过这中间杀出了个GitHub,而它的传播速度更快。

今天,也就是诞生10年后,Google宣布关闭Googe Code。这个决定并不难预料。过去3年Google已经将大概1000个项目移出了网站。不过它的正式死亡值得注意。Google Code之死跟大环境脱不开关系,因为现在势力庞大的开源界大部分都把自己的代码托管到GitHub上。

有人认为Google建Google Code可能有另外一个更加自私的想法:控制或者致力于把尽可能多的数据弄到它自己的机器上。但GitHub最终体现出了比上述更高的价值。GitHub以比SourceForge或Google Code更彻底的方式实现了软件开发的民主化。而这就是软件开发世界最有价值的货币。

GitHub:开发者的猫薄荷

上线仅7年的GitHub现在据称已有将近900万注册用户。每个月还有2000万的访客浏览。根据web流量监控服务Alexa的数据,GitHub位列全球百大流行网站之中。

可别小看GitHub的上榜,因为榜单上的其他网站不是社交网站就是Google在各国的局点,再就是媒体机构,主要用户为码农的GitHub是个异类。

不过,具有讽刺意味的是,GitHub的成功之处正好在于开源世界回归到一个集中容器上。但这次DiBona的感觉跟大多数其他码农一样,对于把所有东西都放到一个地方感到相当欣慰。集中到一个地方可以让大家更容易就所有事情进开展协作。由于GitHub的独特设计,把所有鸡蛋放到一个篮子的压力并没有像SourceForge那么大。

版权声明:本文由龙竞技官网发布于龙电竞官网,转载请注明出处:GitHub如何征服了Google、微软及一切