GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表

jopen 7年前
   <p style="text-align: center;"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/f73b14844f3723eddcde02db2c798b10.jpg" /></p>    <p>作者|木</p>    <p>环编辑|小智</p>    <p>在 GitHub 上贡献最多的公司,不是 非死book,也不是 Google,而是微软。InfoQ 对微软数个较受社区欢迎的项目进行了整理,以飨读者。希望开源的精神,能给技术社区带来更多的实惠!</p>    <p><strong>写在前面</strong></p>    <p>提起微软公司,不少人第一反应是老牌巨头专注于私有化软件盈利模式,这大抵是源于微软前 CEO Steve Ballmer 曾经宣称“Linux 是颗毒瘤(Linux is a cancer)”,并曾经偏执地认为所有开源软件都不值一提。但是,这是 2001 年的事情了,是时候更新大家对微软的刻板印象。</p>    <p>这里,不提继任者 Satya Nadella 的微软拥抱开源进行新式转型的决策,也不提微软去年加入 Linux 基金会等开源组织的举动。单单而言,只问一个问题:哪家公司在 GitHub 上贡献最多?不是 非死book,也不是 Google,而是微软公司,这个第一名还是多少有些出人意料。</p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/90613116278a0b655e64d26970315255.jpg" /></p>    <p>2014 年 10 月,出任微软首席执行官的萨提亚∙ 纳德拉,第一次公开宣布“微软爱 Linux”。同年,微软首次发布 .NET Core 并将其开源;众所周知,微软核心的技术栈长期以来基于 .NET 和 Windows 绑定。在重写标准库之后,2016 年 6 月 .NET Core 1.0 实现跨平台(Windows、Linux 和 Mac),这意味着开发者可以使用 Windows 开发而 Linux 部署。</p>    <p>2016 年 3 月,Windows 原生支持 Ubuntu Linux Bash, 这意味着 Windows 操作系统级别的开放,Win10 可以当作一台 Ubuntu 开发机来使用。</p>    <p>此外,微软称 Azure 全面支持所有开源技术栈,并且从 IaaS(VM),PaaS 和 SaaS(CRM、PowerBI、Office365)全面支持用户的灵活选择。</p>    <p><strong>InfoQ 对数个较受社区欢迎的项目进行了整理如下:</strong></p>    <p><strong> Visual Studio Code:跨平台源代码编辑器</strong></p>    <p>Visual Studio Code 是微软于 2015 年正式发布的项目,可以运行在 Mac OS X、Windows 和 Linux 之上,面向 Web 和云应用的一款跨平台源代码编辑器。</p>    <p>虽然它的名字与 Visual Studio 相近,但前者是代码编辑器,后者是集成开发环境(IDE)并且目前只运行在 Windows 上。</p>    <p>Star 数量: 24. 3k;  Fork 数量:3. 3k</p>    <p>GitHub 主页:<a href="/misc/goto?guid=4958972196762872603">https://github.com/Microsoft/vscode</a></p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/43a05bdf64d26f519618c52cde8690a7.jpg" /></p>    <p><strong>TypeScript:开源编程语言,JavaScript 的超集</strong></p>    <p>TypeScript 是 JavaScript 强类型的超集,可以编译成纯 JavaScript。由微软开发的自由和开源的编程语言,可以运行在各类浏览器和操作系统之上。</p>    <p>Star 数量:19. 8k ;Fork 数量:2. 8k</p>    <p>GitHub 主页:<a href="/misc/goto?guid=4959004519863575559">https://github.com/Microsoft/TypeScript/</a></p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/8675aa55c7b4e4b0254423d9db2f0faa.jpg" /></p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/6346ff61c97774ef3ac699956be5c7ae.jpg" /></p>    <p><strong>  CNTK: 深度学习开源工具包</strong></p>    <p>CNTK 全称为 The Microsoft Cognitive Toolkit, 将神经网络描述为计算机可处理的有向图,有向图的叶节点表示输入值或网络参数,其他节点表示输入对应的矩阵运算。CNTK 便于实现并且也结合了很多流行计算模型如前馈 DNN,卷积网(CNN)和复现网络(RNN / LSTM)。它可以跨多个 GPU 和服务器实现随机梯度下降(SGD,误差反向传播)学习与自动微分和并行化。</p>    <p>可以在 Python 或者 C++ 语言中如同库版应用,也可以使用其自有的描述语言 BrainScript 单机化使用。CNTK 可适用于 64 位的 Linux 和 Window,于 2015 年 4 月开源。</p>    <p>下图比较 CNTK 的处理速度(每秒处理的帧数)与四个其他众所周知的工具包的处理速度。 配置使用完全连接的 4 层神经网络(参见微软的基准脚本)和有效的迷你批量大小(8192)。在相同硬件上获得的结果。</p>    <p>Star 数量:9. 9k;Fork 数量:2. 4k</p>    <p>GitHub 地址:<a href="/misc/goto?guid=4958983746401317478">https://github.com/Microsoft/CNTK</a></p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/e56d474dff5b3e19926f8d770fe2bf82.jpg" /></p>    <p><strong>  Donnet:采用系统虚拟机运行的编程平台</strong></p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/942088b3fbd9409935a342465904270a.jpg" /></p>    <p>.NET 是微软研发的 XML Web services 平台,此框架支持多种语言(如C#、F#、VB.Net、C++、Python 等)的开发。.NET 框架历经亟待,最终于 2014 年开源。</p>    <p>C#通常被认为是微软专属,是 .NET 框架上最常用的编程语言之一, 其著名竞争对手是 Java。</p>    <p>Star 数量: 7. 8k ;Fork 数量:1. 2k</p>    <p>GitHub 主页:<a href="/misc/goto?guid=4959004520003871502">https://github.com/Microsoft/dotnet/network</a></p>    <p><strong>PowerShell :为任何系统提供 Windows 的命令行工具</strong></p>    <p>一个跨平台(Windows、Linux 和 macOS)自动化和配置工具/框架,可与现有工具完美配合,并优化用于处理结构化数据(例如 JSON,CSV,XML 等)、REST API 和对象模型。 它包括命令行 shell,相关的脚本语言和用于处理 cmdlet 的框架。</p>    <p>Star 数量:6. 4k;Fork 数量:800</p>    <p>GitHub 地址:<a href="/misc/goto?guid=4959004520095266795">https://github.com/PowerShell/PowerShell</a></p>    <p><strong>MSOpenTech/redis: 在 Windows 使用 Redis</strong></p>    <p>官方只支持 64 位,可自行构建 32 位版。</p>    <p>该开源项目,在 2.8 版本中,替代 UNIX fork()API 中的内存映射文件模拟写时复制行为。 版本 3.0 类似,为了便于系统文件分页,删除了内存映射文件,在管理堆碎片方面进行了改进。</p>    <p>Redis 对文件描述符的值做了一些假设,微软构建了一个虚拟文件描述符映射层。</p>    <p>Star 数量:5. 8k;Fork 数量:8. 7k</p>    <p>GitHub 地址:<a href="/misc/goto?guid=4959004520192595056">https://github.com/MSOpenTech/redis</a></p>    <p><strong>  WinObjc:Windows 下的 Objective-C</strong></p>    <p>为 Visual Studio 提供了一个 Objective-C 开发环境并支持 iOS API。通过重新使用 Objective-C 代码和 iOS API,配以 Windows 自有 Cortana(中文名:微软小娜,微软发布的全球第一款个人智能助理)和通知等功能,用户可以创建通用 Windows 平台(UWP)应用程序并运行在 Windows 设备上。</p>    <p>Star 数量:5. 8k;Fork 数量:745</p>    <p>GitHub 地址:<a href="/misc/goto?guid=4958964636342160632">https://github.com/Microsoft/WinObjC</a></p>    <p>GitHub 地址:<a href="/misc/goto?guid=4959004520312940952">https://github.com/Microsoft/api-guidelines</a></p>    <p><strong>ASP.NET 之 MVC 核:模型(model)-视图(view)-控制器(controller)框架</strong></p>    <p>旨在 TDD 友好,用于创建符合最新 Web 标准的复杂应用程序、构建动态网站,可以在 IIS 中托管或自我托管。</p>    <p>Star 数量:4. 4k;Fork 数量:1. 6k</p>    <p>GitHub 地址:<a href="/misc/goto?guid=4959004520409369385">https://github.com/aspnet/Mvc</a></p>    <p><strong>BashOnWindows:解决 Ubuntu Bash 在 Windows 的使用问题</strong></p>    <p>微软在 Build 2016 大会上宣布了一条振奋人心的消息,大家惊呼 Ubuntu on Windows。Bash on Windows 为开发者们提供了 Bash shell、Linux 类似环境,在不需要 Linux 虚拟机的情况下,大部分的 Linux 命令行工具基本上可以不经修改地运行在 Windows 上。</p>    <p>Star 数量:3. 7k;Fork 数量:129</p>    <p>GitHub 地址:<a href="/misc/goto?guid=4959004520500817056">https://github.com/Microsoft/BashOnWindows</a></p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/e975f1ae524f22b6f1025528ab6cb9c4.jpg" /></p>    <p><strong>  monaco-editor:基于浏览器的代码编辑器</strong></p>    <p>与 Visual Studio Code 类似,Monaco Editor 提供代码提示、智能建议等代码编辑器的功能,它运行在浏览器环境中,旨在开发人员们可以远程更方便地编写代码。与 Visual Studio Code 版本相比,Monaco 是一个直接映射源代码的库。</p>    <p>Star 数量:4k;Fork 数量:265</p>    <p>GitHub 地址:<a href="/misc/goto?guid=4959004520593674562">https://github.com/Microsoft/monaco-editor</a></p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/a6426e8a43033733179102f6fd9d2fee.jpg" /></p>    <p><strong>DMTK:分布式机器学习框架</strong></p>    <p>微软的 DMTK(Distributed Machine Learning Toolkit)参数服务器框架有很多版本:</p>    <p>LightLDA:用于大规模主题建模的可扩展、快速和轻量级系统。</p>    <p>LightGBM:基于决策树算法的快速、分布式、高性能梯度提升(GBDT,GBRT,GBM 或 MART)框架,用于排名、分类和许多其他机器学习任务。</p>    <p>分布式词嵌入(word embedding):实现的词嵌入的分布式算法。</p>    <p>Star 数量:2k;Fork 数量:487</p>    <p>GitHub 地址:<a href="/misc/goto?guid=4958976384652491049">https://github.com/Microsoft/DMTK</a></p>    <p><strong>Azure 相关:文档、SDK 和代码示例</strong></p>    <p>微软支持开发者们将各种开源软件工具和技术带入 Azure。Azure 应用市场支持很多 Linux 分发,包括 Ubuntu、Debian 和 SUSE;也支持借助支持 Node.js、PHP、Python 和 Java 的 Azure 应用服务,生成 Web 和移动应用。</p>    <p>在 GitHub 上 Azure 相关的存储库有 1700+ 个。</p>    <p>Star 数量(共计):149k;Fork 数量(共计):291k</p>    <p>地址:<a href="/misc/goto?guid=4959004520717757045">https://azure.microsoft.com/zh-cn/overview/open-source/</a></p>    <p style="text-align:center"><img alt="GitHub贡献第一的是这家「因循守旧」的公司?微软开源软件列表" src="https://simg.open-open.com/show/a355a03aaf06861facc136c4c413c086.jpg" /></p>    <p><strong>写在最后</strong></p>    <p>开源已经形成潮流,一家软件公司的竞争对手可能是同行企业,还可能是开源项目。</p>    <p>不过开源可不是公益,公司还是以赢利为导向的,那么开源对公司而言利益是什么呢?首先,企业级版本的使用往往并不免费,并且相关的技术支持、安装、系统整合、认证和培训等服务也是收取费用的。 其次,项目开源之后,可以吸引社区中对此热情的开发者们。传统模式下,软件巨头公司需要雇佣大量工程师进行开发、测试和本地化等。但是,开源相当于把一部分工作“外包”给社区。</p>    <p>此外,如果开源项目代码优质,则会很好地塑造技术形象并在开源圈产生影响力,从而起到推广公司品牌的作用。更重要的是,公司可以接触到社区中的高尖专家程序员,增加了对他们的吸引力也就增加了更多招纳贤士的可能性,他们有可能会以兼职或者全职的形式加入公司。单纯对项目本身而言,如果被其他公司采用、再回馈到社区,这是优化项目和丰富使用场景的良性循环。</p>    <p>其实微软很早开始关注社区开发者并有了开源的举措:MSDN 实现创立于 1992 年是使用层级的技术文件开放;CodePlex 创立于 2006 年先后托管了很多开源项目;CodePlex Foundation 开放源码基金会成立于 2009 年。</p>    <p>那么微软之外世界的时间发展线是怎样的呢?虽然其他几家开源软件基金会更早成立(自由软件基金会 1985 年、OSI 开发源代码促进会 1998 年、Apache 软件基金会 1999 年、Eclipse 基金会 2004 年、软件自由管理委员会 2006 年);但是程序界的大规模化关注并参与开源并不比微软的步伐早:1991 年 Linux 源代码开源;2007 年 Linux 基金会成立,而 GitHub 也开始提供软件源代码托管服务;2008 年 StackOverflow 问答讨论网站建立。</p>    <p>如此看来,其实微软并没有一直盲目赶路,并且也有着不算落后的开源和社区意识。不过,缘何留下了保守不开源的刻板印象?是因为 2001 年时前 CEO 的武断宣言?还是开源之路态度不够坚决、宣传力度不够?亦或是社区更欢迎独立的第三方开源平台而非某家企业的托管平台?不过,可以确定的一点是,如之前宣传的那样“Microsoft Loves Linux”,微软拥抱开源;并且更大程度地拥抱社区的选择(如 GitHub、StackOverflow 平台)。微软设的最有价值专家奖(Microsoft MVP Award)也开始欢迎开源社区的活跃分子加入。</p>    <p>有人认为微软这些开源举动晚了,错失了很多机会。不过,“种一棵树最好的时间是十年前,其次是现在”。业界接下来应该更关注的是,微软究竟会将开源做到什么程度,并因此对社区产生多么深刻影响。</p>    <p>来自: <a href="http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650995718&idx=1&sn=a7eadd8958be57754522f06bcd259070" id="link_source2">mp.weixin.qq.com</a></p>