写点什么

GitHub 贡献第一的公司是谁?微软开源软件列表

  • 2017-03-30
  • 本文字数:3939 字

    阅读完需:约 13 分钟

提起微软公司,不少人第一反应是老牌巨头专注于私有化软件盈利模式,这大抵是源于微软前 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

GitHub 地址: https://github.com/Microsoft/CNTK

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

.NET 最早是微软研发的 XML Web services 平台,C#是.NET 框架上最常用的编程语言之一,通常被认为是微软专属, 其著名竞争对手是 Java。

.NET 框架历经数代更迭,现已演变成通用的开发平台,支持多种语言(如 C#、F#、VB.Net、C++、Python 等)、异步和同步编程模型,具有本地互操作性,可跨平台实现多种场景,最终于 2014 年开源。

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

GitHub 地址: https://github.com/PowerShell/PowerShell

MSOpenTech/redis: 在 Windows 使用 Redis

官方只支持 64 位,可自行构建 32 位版。

该开源项目,在 2.8 版本中,替代 UNIX fork()API 中的内存映射文件模拟写时复制行为。 版本 3.0 类似,为了便于系统文件分页,删除了内存映射文件,在管理堆碎片方面进行了改进。

Redis 对文件描述符的值做了一些假设,微软构建了一个虚拟文件描述符映射层。

Star 数量:5.8k;Fork 数量:8.7k

GitHub 地址: https://github.com/MSOpenTech/redis

WinObjc:Windows 下的 Objective-C

为 Visual Studio 提供了一个 Objective-C 开发环境并支持 iOS API。通过重新使用 Objective-C 代码和 iOS API,配以 Windows 自有 Cortana(中文名:微软小娜,微软发布的全球第一款个人智能助理)和通知等功能,用户可以创建通用 Windows 平台(UWP)应用程序并运行在 Windows 设备上。

Star 数量:5.8k;Fork 数量:745

GitHub 地址: https://github.com/Microsoft/WinObjC

GitHub 地址: https://github.com/Microsoft/api-guidelines

ASP.NET 之 MVC 核:模型 (model)-视图 (view)-控制器 (controller) 框架

旨在 TDD 友好,用于创建符合最新 Web 标准的复杂应用程序、构建动态网站,可以在 IIS 中托管或自我托管。

Star 数量:4.4k;Fork 数量:1.6k

GitHub 地址: https://github.com/aspnet/Mvc

BashOnWindows:解决 Ubuntu Bash 在 Windows 的使用问题

微软在 Build 2016 大会上宣布了一条振奋人心的消息,大家惊呼 Ubuntu on Windows。Bash on Windows 为开发者们提供了 Bash shell、Linux 类似环境,在不需要 Linux 虚拟机的情况下,大部分的 Linux 命令行工具基本上可以不经修改地运行在 Windows 上。

Star 数量:3.7k;Fork 数量: 129

GitHub 地址: https://github.com/Microsoft/BashOnWindows

monaco-editor:基于浏览器的代码编辑器

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

Star 数量: 4k;Fork 数量:265

GitHub 地址: https://github.com/Microsoft/monaco-editor

DMTK:分布式机器学习框架

微软的 DMTK(Distributed Machine Learning Toolkit)参数服务器框架有很多版本:

LightLDA:用于大规模主题建模的可扩展、快速和轻量级系统。

LightGBM:基于决策树算法的快速、分布式、高性能梯度提升(GBDT,GBRT,GBM 或 MART)框架,用于排名、分类和许多其他机器学习任务。

分布式词嵌入(word embedding):实现的词嵌入的分布式算法。

DMTK framework(Multiverso): 参数服务器架构的机器学习。

Star 数量: 2k;Fork 数量:487

GitHub 地址: https://github.com/Microsoft/DMTK

Azure 相关:文档、SDK 和代码示例

微软支持开发者们将各种开源软件工具和技术带入 Azure。Azure 应用市场支持很多 Linux 分发,包括 Ubuntu、Debian 和 SUSE;也支持借助支持 Node.js、PHP、Python 和 Java 的 Azure 应用服务,生成 Web 和移动应用。

在 GitHub 上 Azure 相关的存储库有 1700+ 个。

Star 数量(共计):149k;Fork 数量(共计):291k

地址: https://azure.microsoft.com/zh-cn/overview/open-source/

写在后面

开源已经形成潮流,一家软件公司的竞争对手可能是同行企业,还可能是开源项目。

不过开源可不是公益,公司还是以赢利为导向的,那么开源对公司而言利益是什么呢?首先,企业级版本的使用往往并不免费,并且相关的技术支持、安装、系统整合、认证和培训等服务也是收取费用的。 其次,项目开源之后,可以吸引社区中对此热情的开发者们。传统模式下,软件巨头公司需要雇佣大量工程师进行开发、测试和本地化等。但是,开源相当于把一部分工作“外包”给社区。此外,如果开源项目代码优质,则会很好地塑造技术形象并在开源圈产生影响力,从而起到推广公司品牌的作用。更重要的是,公司可以接触到社区中的高尖专家程序员,增加了对他们的吸引力也就增加了更多招纳贤士的可能性,他们有可能会以兼职或者全职的形式加入公司。单纯对项目本身而言,如果被其他公司采用、再回馈到社区,这是优化项目和丰富使用场景的良性循环。

其实微软很早开始关注社区开发者并有了开源的举措: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)。

有人认为微软这些开源举动晚了,错失了很多机会。不过,“种一棵树最好的时间是十年前,其次是现在”。业界接下来应该更关注的是,微软究竟会将开源做到什么程度,并因此对社区产生多么深刻影响。

2017-03-30 19:006238
用户头像

发布了 58 篇内容, 共 47.0 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

大厂面试题:你知道JUC中的Semaphore、CyclicBarrier、CountDownLatch吗

Java鱼仔

Java 面试 并发 JUC

智能building之二 智能单体建筑

张老蔫

28天写作

MySQL查询——连接查询

程序员的时光

程序员 28天写作

贸易战的本质是什么?

JiangX

经济 28天写作 制造 美国 贸易战

我给职场新人提个建议

石云升

创业 28天写作 职场新人

Mysql报表下载为什么出现了重复的数据?

三石

MySQL性能优化 28天写作 mysql重复数据

网络故障排除工具,你用过哪些?

精选算法面试-数组II

李孟聊AI

面试 算法 数组 28天写作

日语复习Day01【~あげく(に)】

IT蜗壳-Tango

程序员 七日更 日语语法 情景句型

LeetCode题解:105. 从前序与中序遍历序列构造二叉树,递归+使用索引,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

我们设计的是微服务还是小单体应用

xcbeyond

微服务 方法论 DDD 28天写作

最近很火的京东、天猫超市飞天茅台抢购是怎么回事,从原理流程给你们分析一波

谙忆

甲方日常 85

句子

工作 随笔杂谈 日常

1月|日更挑战活动说明

InfoQ写作社区官方

七日更 热门活动

CSS14 - 元素可见性

Mr.Cactus

html/css

「大厂攻略」打开线程 | 进程 | 协程的大门

我是程序员小贱

面试 操作系统

读书笔记:《激荡三十年》上

lidaobing

28天写作 激荡三十年

JVM故障诊断和处理工具

Silently9527

Java JVM jvm调优

28 天带你玩转 Kubernetes-- 第七天(玩转 Dockerfile)

Java全栈封神

Docker Kubernetes k8s Dockerfile 28天写作

Flutter技术在会展云中大显身手

京东科技开发者

小程序flutter, 跨平台 云服务 移动开发

大小公司产品经理岗位对比

Kr

大厂面试官竟然这么爱问Kafka,一连八个Kafka问题把我问蒙了

五分钟学大数据

大数据 kafka

谈谈SpringFramework与IoC依赖查找

Java架构师迁哥

创业失败启示录|校园微生活之快叫外卖

阿萌

28天写作 创业失败启示录 青城

Python 循环语句

赵开忠

28天写作

面试官:你说一下对Java中的volatile的理解吧

Java 编程 面试 多线程

CSS15 - 界面样式&垂直对齐

Mr.Cactus

html/css

如何使用maven 轻松重构项目

田维常

maven

2020 全球 JS 调查报告新鲜出炉

蓝色的秋风

typescript Vue 大前端 React React Native

夜莺二次开发指南系列

ning

开源 监控 滴滴夜莺 夜莺监控 运维平台

京东RPA:以企业数字化转型为驱动的机器人流程自动化解决方案专家

京东科技开发者

RPA 企业信息化 数字化运维

GitHub贡献第一的公司是谁?微软开源软件列表_微软_木环_InfoQ精选文章