GitHub 贡献第一的微软开源软件列表

  作者|木环

  编辑|小智

  在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

  Type:开源编程语言,Java的超集

Type是Java强类型的超集,可以编译成纯Java。由微软开发的自由和开源的编程语言,可以运行在各类浏览器和操作系统之上。

Star数量:19.8k ;Fork数量:2.8k

GitHub主页:https://github.com/Microsoft/Type/

  CNTK: 深度学习开源工具包

CNTK全称为The Microsoft Cognitive Toolkit, 将神经网络描述为计算机可处理的有向图,有向图的叶节点表示输入值或网络参数,其他节点表示输入对应的矩阵运算。CNTK便于实现并且也结合了很多流行计算模型如前馈DNN,卷积网(CNN)和复现网络(RNN / LSTM)。它可以跨多个GPU和服务器实现随机梯度下降(SGD,误差反向传播)学习与自动微分和并行化。

可以在Python或者C++语言中如同库版应用,也可以使用其自有的描述语言Brain单机化使用。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#、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

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):实现的词嵌入的分布式算法。

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平台)。微软设的最有价值专家奖(Microsoft MVP Award)也开始欢迎开源社区的活跃分子加入。

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

原文地址:http://mp.weixin.qq.com/s/ogdnrNHtRfMTqaGXMQc8VQ


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 画布控件,Android canvas画图操作之切割画布实现方法(clipRect)

本文实例讲述了Android canvas画图操作之切割画布实现方法。分享给大家供大家参考,具体如下:android切割画布的历程不算很难,可是理解起来也比较麻烦,这里写一下我的理解 但是不一定正确:canvas.clipRect(30,30,70,Reg…

老司机实战Windows Server Docker:5 Windows Server Dockerfile葵花宝典

前面两篇(简单运维1、简单运维2)介绍了一些Windows Server Docker相关的基本运维知识。今天这一篇,Windows Server Dockerfile葵花宝典,涵盖了许多典型场景的Windows Server下的Dockerfile实例,并且每一个都包含可直接…

2020蓝桥杯省赛---java---B---2(寻找 2020)+测试txt

题目描述 text 0020000002202020002220002022002222202022020200022200020200222022002202202020020022200202000000002200222002022220222202220000222202200200202220200222200222202200000220220020202200022002200200200222000202220202002000000202200200220022020002022…

新起点!新征程!

好久没有更新公众号了,其一是因为最近这段时间有点“忙”(迫于其他原因,目前包括本公众号一共运营4个公众号,精力不充沛),其次就是犯了懒病不想动。其中博客中也没有更新比较有质量的博文了。感觉自己堕落颓…

2020蓝桥杯省赛---java---B---3(蛇形填数)

题目描述 思路分析 找规律 看对角线 1481216 代码实现 package TEST;public class Main {public static void main(String[] args) {int res 1, t 4;for(int i2; i<20; i) {res t;t 4;//1481216}System.out.println(res); //761}}答案 761

linux微信公众号报警,zabbix报警媒介,微信报警,邮件报警

微信报警首先要申请微信企业公众号&#xff0c;创建相应应用&#xff0c;然后进行配置微信企业公众号申请&#xff0c;目前可免费前往该地址进行申请注册过程很简单&#xff0c;不信你试然后进行企业公众号的基础设置服务端报警微信脚本[rootbogon alertscripts]# pwd/usr/loca…

编写高效率的C#代码

周末空闲&#xff0c;选读了一下一本很不错的C#语言使用的书&#xff0c;特此记载下便于对项目代码进行重构和优化时查看。 Standing On Shoulders of Giants&#xff0c;附上思维导图&#xff0c;其中标记的颜色越深表示在实际中的实际意义越大。 名称内容和示例提供API时尽量…

2020蓝桥杯省赛---java---B---1(门牌制作)

题目描述 代码实现 package TEST;public class Main {public static void main(String[] args) {int sum0;for (int i 0; i < 2020; i) {int tempi;while (temp>0){if(temp%102){sum;}temp/10;}}System.out.println(sum);} }答案 624

使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件

转载自 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件 Mybatis属于半自动ORM&#xff0c;在使用这个框架中&#xff0c;工作量最大的就是书写Mapping的映射文件&#xff0c;由于手动书写很容易出错&#xff0c;我们可以利用Mybatis-Generator来帮我们自动生成文…

android拦截短信获取短信内容,《英雄联盟手游》先锋测试招募说明:仅安卓用户...

招募时间&#xff1a;5月10日~5月17日测试开始时间&#xff1a;预计5月下旬或6月上旬招募(体验)要求&#xff1a;1、测试期间有较长时间可投入游戏体验&#xff1b;2、能够积极反馈和表达自己的游戏体验感受&#xff1b;3、需提前完成招募问卷(最终是否获取资格需筛选后确认)。…

ASP.NET Core MVC 源码学习:详解 Action 的匹配

前言 在 上一篇 文章中&#xff0c;我们已经学习了 ASP.NET Core MVC 的启动流程&#xff0c;那么 MVC 在启动了之后&#xff0c;当请求到达过来的时候&#xff0c;它是怎么样处理的呢&#xff1f; 又是怎么样把我们的请求准确的传达到我们的 Action 上呢&#xff1f; 那么&am…

win10偶尔打不开开始菜单(按win键和点击开始菜单都没反应)

像我这种桌面上一个图标都没有的。习惯把所有的应用程序放在开始菜单里面&#xff0c;但是……最近发现点击开始菜单或者按win键的时候召唤不出来开始菜单&#xff0c;怎么都出不来&#xff0c;怎么办&#xff1f;&#xff1f;&#xff1f;难道只有重启电脑来解决吗&#xff1f…

Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题

转载自 Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题 使用Mybatis的时候&#xff0c;有些时候能输出&#xff08;主要是指sql&#xff0c;参数&#xff0c;结果&#xff09;日志。有些时候就不能。 无法输出日志的时候&#xff0c;无论怎么配置log4j&#xff0c;…

2019蓝桥杯省赛---java---C---9(等差数列)

题目描述 代码实现 package TEST;import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int nscanner.nextInt();int[] arrnew int[n];for (int i 0; i < n; i) {arr…

Win10 Bash\/WSL调试Linux环境下的.NET Core应用程序

一、简介 使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter&#xff0c;我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的。 在新的Win10系统中微软给我们提供了一个基于Ubuntu的Linux子系统&#xff08;Bash/WSL&#xff09…

公众号新上线微信小游戏(疯狂猜图)

为了活跃公众号&#xff0c;于2018.09.29推出一款小游戏《疯狂猜图》&#xff0c;可以赢大奖哦&#xff0c;那么小游戏怎么玩呢&#xff1f;关注公众号的用户只需回复“小游戏”即可弹出游戏链接&#xff0c;点击进入就可以啦~~目前已经有126人参与&#xff0c;期待您的参与&am…

android输入时背景颜色,Button根据EditText输入状态改变背景颜色

需求Button随EditText输入状态改变颜色有3个不同颜色状态&#xff0c;EditText未输入时&#xff0c;Button处于不可点击状态EditText输入时&#xff0c;Button处于高亮状态EditText输入且用户按下按钮&#xff0c;Button --> Pressed状态效果如下&#xff1a;演示图片EditTe…

小和问题

题目描述 思路分析 代码实现 package class02;import java.util.Arrays; import java.util.concurrent.locks.ReentrantLock;/*** 创建人 wdl* 创建时间 2021/4/13* 描述*/ public class Demo02SmallSum {public static int mergeSort(int[] arr){if(arrnull|| arr.length<…

移动用户免费领取15G流量(秒到)

爱刷抖音、头条、火山小视频、西瓜视频的福利来啦&#xff0c;移动用户15G流量免费领取&#xff01;&#xff01;&#xff01;是的&#xff0c;免费领取&#xff01;&#xff01;&#xff01; 我们来看看领取方式&#xff1a; 1.去应用中心下载“今日头条APP” 2.然后打开头…

深入浅出数据库索引原理

前段时间&#xff0c;公司一个新上线的网站出现页面响应速度缓慢的问题&#xff0c; 一位负责这个项目的但并不是搞技术的妹子找到我&#xff0c;让我想办法提升网站的访问速度 &#xff0c;因为已经有很多用户来投诉了。我第一反应觉的是数据库上的问题&#xff0c;假装思索了…