
作者|木环
编辑|小智
在GitHub上贡献最多的公司,不是Facebook,也不是Google,而是微软。InfoQ对微软数个较受社区欢迎的项目进行了整理,以飨读者。希望开源的精神,能给技术社区带来更多的实惠!
写在前面
提起微软公司,不少人第一反应是老牌巨头专注于私有化软件盈利模式,这大抵是源于微软前CEO Steve Ballmer曾经宣称“Linux是颗毒瘤(Linux is a cancer)”,并曾经偏执地认为所有开源软件都不值一提。但是,这是2001年的事情了,是时候更新大家对微软的刻板印象。
这里,不提继任者Satya Nadella的微软拥抱开源进行新式转型的决策,也不提微软去年加入Linux基金会等开源组织的举动。单单而言,只问一个问题:哪家公司在GitHub上贡献最多?不是Facebook,也不是Google,而是微软公司,这个第一名还是多少有些出人意料。

2014年10月,出任微软首席执行官的萨提亚∙ 纳德拉,第一次公开宣布“微软爱Linux”。同年,微软首次发布.NET Core并将其开源;众所周知,微软核心的技术栈长期以来基于.NET和Windows绑定。在重写标准库之后,2016年6月.NET Core 1.0实现跨平台(Windows、Linux和Mac),这意味着开发者可以使用Windows开发而Linux部署。
2016年3月,Windows原生支持 Ubuntu Linux Bash, 这意味着Windows操作系统级别的开放,Win10 可以当作一台Ubuntu开发机来使用。
此外,微软称Azure全面支持所有开源技术栈,并且从IaaS(VM),PaaS和SaaS(CRM、PowerBI、Office365)全面支持用户的灵活选择。
InfoQ对数个较受社区欢迎的项目进行了整理如下:
Visual Studio Code:跨平台源代码编辑器
Visual Studio Code是微软于2015年正式发布的项目,可以运行在Mac OS X、Windows和Linux之上,面向Web和云应用的一款跨平台源代码编辑器。
虽然它的名字与Visual Studio相近,但前者是代码编辑器,后者是集成开发环境(IDE)并且目前只运行在Windows上。
Star数量:24.3k;Fork数量:3.3k
GitHub主页:https://github.com/Microsoft/vscode

TypeScript:开源编程语言,JavaScript的超集
TypeScript是JavaScript强类型的超集,可以编译成纯JavaScript。由微软开发的自由和开源的编程语言,可以运行在各类浏览器和操作系统之上。
Star数量:19.8k ;Fork数量:2.8k
GitHub主页:https://github.com/Microsoft/TypeScript/


CNTK: 深度学习开源工具包
CNTK全称为The Microsoft Cognitive Toolkit, 将神经网络描述为计算机可处理的有向图,有向图的叶节点表示输入值或网络参数,其他节点表示输入对应的矩阵运算。CNTK便于实现并且也结合了很多流行计算模型如前馈DNN,卷积网(CNN)和复现网络(RNN / LSTM)。它可以跨多个GPU和服务器实现随机梯度下降(SGD,误差反向传播)学习与自动微分和并行化。
可以在Python或者C++语言中如同库版应用,也可以使用其自有的描述语言BrainScript单机化使用。CNTK可适用于64位的Linux和Window,于2015年4月开源。
下图比较CNTK的处理速度(每秒处理的帧数)与四个其他众所周知的工具包的处理速度。 配置使用完全连接的4层神经网络(参见微软的基准脚本)和有效的迷你批量大小(8192)。在相同硬件上获得的结果。
Star数量:9.9k;Fork数量:2.4k

Donnet:采用系统虚拟机运行的编程平台

.NET是微软研发的XML Web services平台,此框架支持多种语言(如C#、F#、VB.Net、C++、Python等)的开发。.NET框架历经亟待,最终于2014年开源。
C#通常被认为是微软专属,是.NET框架上最常用的编程语言之一, 其著名竞争对手是Java。
Star数量:7.8k ;Fork数量:1.2k
GitHub主页:https://github.com/Microsoft/dotnet/network
PowerShell :为任何系统提供Windows的命令行工具
一个跨平台(Windows、Linux和macOS)自动化和配置工具/框架,可与现有工具完美配合,并优化用于处理结构化数据(例如JSON,CSV,XML等)、REST API 和对象模型。 它包括命令行shell,相关的脚本语言和用于处理cmdlet的框架。
Star数量:6.4k;Fork数量:800
MSOpenTech/redis: 在Windows使用Redis
官方只支持64位,可自行构建32位版。
该开源项目,在2.8版本中,替代UNIX forkAPI中的内存映射文件模拟写时复制行为。 版本3.0类似,为了便于系统文件分页,删除了内存映射文件,在管理堆碎片方面进行了改进。
Redis对文件描述符的值做了一些假设,微软构建了一个虚拟文件描述符映射层。
Star数量:5.8k;Fork数量:8.7k
WinObjc:Windows下的Objective-C
为Visual Studio提供了一个Objective-C开发环境并支持iOS API。通过重新使用Objective-C代码和iOS API,配以Windows自有Cortana(中文名:微软小娜,微软发布的全球第一款个人智能助理)和通知等功能,用户可以创建通用Windows平台(UWP)应用程序并运行在Windows设备上。
Star数量:5.8k;Fork数量:745
ASP.NET之MVC核:模型(model)-视图(view)-控制器(controller)框架
旨在TDD友好,用于创建符合最新Web标准的复杂应用程序、构建动态网站,可以在IIS中托管或自我托管。
Star数量:4.4k;Fork数量:1.6k
BashOnWindows:解决Ubuntu Bash在Windows的使用问题
微软在Build 2016大会上宣布了一条振奋人心的消息,大家惊呼Ubuntu on Windows。Bash on Windows 为开发者们提供了Bash shell、Linux类似环境,在不需要Linux虚拟机的情况下,大部分的Linux命令行工具基本上可以不经修改地运行在Windows上。
Star数量:3.7k;Fork数量:129

monaco-editor:基于浏览器的代码编辑器
与 Visual Studio Code 类似,Monaco Editor 提供代码提示、智能建议等代码编辑器的功能,它运行在浏览器环境中,旨在开发人员们可以远程更方便地编写代码。与Visual Studio Code版本相比,Monaco是一个直接映射源代码的库。
Star数量:4k;Fork数量:265

DMTK:分布式机器学习框架
微软的DMTK(Distributed Machine Learning Toolkit)参数服务器框架有很多版本:
LightLDA:用于大规模主题建模的可扩展、快速和轻量级系统。
LightGBM:基于决策树算法的快速、分布式、高性能梯度提升(GBDT,GBRT,GBM或MART)框架,用于排名、分类和许多其他机器学习任务。
分布式词嵌入(word embedding):实现的词嵌入的分布式算法。
Star数量:2k;Fork数量:487
Azure相关:文档、SDK和代码示例
微软支持开发者们将各种开源软件工具和技术带入Azure。Azure 应用市场支持很多Linux 分发,包括 Ubuntu、Debian 和 SUSE;也支持借助支持 Node.js、PHP、Python 和 Java 的 Azure 应用服务,生成 Web 和移动应用。
在GitHub上Azure相关的存储库有1700+个。
Star数量(共计):149k;Fork数量(共计):291k

写在最后
开源已经形成潮流,一家软件公司的竞争对手可能是同行企业,还可能是开源项目。
不过开源可不是公益,公司还是以赢利为导向的,那么开源对公司而言利益是什么呢?首先,企业级版本的使用往往并不免费,并且相关的技术支持、安装、系统整合、认证和培训等服务也是收取费用的。 其次,项目开源之后,可以吸引社区中对此热情的开发者们。传统模式下,软件巨头公司需要雇佣大量工程师进行开发、测试和本地化等。但是,开源相当于把一部分工作“外包”给社区。
此外,如果开源项目代码优质,则会很好地塑造技术形象并在开源圈产生影响力,从而起到推广公司品牌的作用。更重要的是,公司可以接触到社区中的高尖专家程序员,增加了对他们的吸引力也就增加了更多招纳贤士的可能性,他们有可能会以兼职或者全职的形式加入公司。单纯对项目本身而言,如果被其他公司采用、再回馈到社区,这是优化项目和丰富使用场景的良性循环。
其实微软很早开始关注社区开发者并有了开源的举措:MSDN实现创立于1992年是使用层级的技术文件开放;CodePlex创立于2006年先后托管了很多开源项目;CodePlex Foundation开放源码基金会成立于2009年。
那么微软之外世界的时间发展线是怎样的呢?虽然其他几家开源软件基金会更早成立(自由软件基金会1985年、OSI开发源代码促进会1998年、Apache软件基金会 1999年、Eclipse基金会2004年、软件自由管理委员会2006年);但是程序界的大规模化关注并参与开源并不比微软的步伐早:1991年Linux源代码开源;2007年Linux基金会成立,而GitHub也开始提供软件源代码托管服务;2008年StackOverflow问答讨论网站建立。
如此看来,其实微软并没有一直盲目赶路,并且也有着不算落后的开源和社区意识。不过,缘何留下了保守不开源的刻板印象?是因为2001年时前CEO的武断宣言?还是开源之路态度不够坚决、宣传力度不够?亦或是社区更欢迎独立的第三方开源平台而非某家企业的托管平台?不过,可以确定的一点是,如之前宣传的那样“Microsoft Loves Linux”,微软拥抱开源;并且更大程度地拥抱社区的选择(如GitHub、StackOverflow平台)。微软设的最有价值专家奖(Microsoft MVP Award)也开始欢迎开源社区的活跃分子加入。
有人认为微软这些开源举动晚了,错失了很多机会。不过,“种一棵树最好的时间是十年前,其次是现在”。业界接下来应该更关注的是,微软究竟会将开源做到什么程度,并因此对社区产生多么深刻影响。
今日荐文

从VS 2017谈起,解析微软技术生态进化之道
相关资讯
最新热门应用
非小号交易平台官网安卓版
其它软件292.97MB
下载
币交易所地址
其它软件274.98M
下载
iotx交易所app
其它软件14.54 MB
下载
zt交易所安卓最新版
其它软件273.2 MB
下载
币拓交易所bittok
其它软件288.1 MB
下载
u币交易所平台app
其它软件292.97MB
下载
热币全球交易所app官网版
其它软件287.27 MB
下载
多比交易平台app
其它软件28.28MB
下载
币赢交易所app官网安卓版
其它软件14.78MB
下载
toncoin币交易所安卓版
其它软件48MB
下载