微软在GitHub上开源计算器:一夜爆火,获得5000星

嵌入式ARM 2019-03-08 17:08

来源:机器之心、快科技、infoQ,有删改


昨天,微软在 MIT License 下开源了一个 GitHub 项目——Windows 计算器,短短 24 小时内就获得了接近 5000 颗星,并引发大量讨论。这个项目爆红的速度可能连微软自己都始料未及。科技媒体 The Verge 评价道,「虽然计算器只是 Windows 的一个很小的部分,但开源计算器这一事件延续了微软近年来拥抱开源的作风。」


据美国科技媒体The Verge报道称,微软此举的目的是希望“与社区合作打造更好的用户体验。”开放“计算器”源代码意味着,任何人都可以贡献代码来改进这款应用。但微软希望在开始部署或审查代码之前,先评估这些新功能的原型或用户界面的变化。


目前,“计算器”的源代码已经上传到GitHub上,包括构建系统、单元测试,甚至还有Windows中“计算器”功能的产品路线图。虽然“计算器”是Windows的一个相对较小的部分,但此举代表着微软拥抱开源计划的重要一步。


另外,微软的“计算器”源代码将帮助Windows开发人员更轻松地将“计算器”集成到自己的应用程序中。


微软去年6月宣布,将以价值75亿美元的股票收购GitHub,开启“开源的敌人”这一称号的洗白之路。GitHub是全球领先的软件开发平台,拥有2800多万开发者用户。


  • 开源地址:https://github.com/Microsoft/calculator


此次开源的目的是想要「与社区一道打造更好的用户体验」。开源计算器意味着任何人都可以为改善这一 app 贡献代码,但微软会在实现新的功能原型、用户界面变动之前对它们进行评估或者审核代码。


这次开源的代码包括构建系统、单元测试,甚至 Windows 计算器功能的产品路线图。近年来,微软一改保守的作风,拥抱开源。此前,微软甚至开源了 90 年代原始文件管理器的源代码,允许它在 Windows 10 上运行。去年 10 月,微软宣布正式加入开放创新网络(OIN),向所有开源专利联盟的成员开放其专利组合。这意味着微软旗下的 60000 多项专利免费开放给 Linux 系统,帮助 Linux 的发展。



此次开源有助于 Windows 开发者更轻松地将计算器 logic 或 UI 整合到自己的 app 中,开发者还能报告并修复 bug,参与和 Windows 计算器未来有关的讨论,并帮助微软的工程师设计、构建该 app。微软表示 review Windows 计算器的代码将有助于开发者了解微软的最新技术,如 Universal Windows Platform、XAML 和 Azure Pipelines;了解微软的完整开发生命周期;重用这些代码来构建自己的项目。


以下为该开源项目的详细信息。


关于 Windows 计算器


Windows Calculator app 是使用 C++ 写成的现代 Windows app,预安装在 Windows 中。这款 app 提供标准型、科学型和程序员计算器功能,以及不同度量单位和货币之间的转换。


该计算器定期更新功能、修复 bug。用户可在 Microsoft Store 下载最新版本。


功能


具体来讲,Windows 计算器具备以下功能:


  • 标准计算器功能:提供基础运算,评估用户输入的命令。

  • 科学计算器功能:提供扩展运算,使用运算顺序评估命令。

  • 程序员计算器功能:为开发者提供常见的数学运算,如进制转换。

  • 计算历史和记忆能力。

  • 不同度量单位之间的转换功能。

  • 基于从 Bing 检索到的数据进行货币转换。


启动项目


Windows 计算器的 GitHub 页面介绍了启动该项目的大概流程。


依赖项


  • 计算机必须运行 Windows 10 1803 版本或更新版本。

  • 安装 Visual Studio 最新版

  • 安装「Universal Windows Platform Development」workload

  • 安装可选组件「C++ Universal Windows Platform tools」

  • 安装最新版 Windows 10 SDK



  • 安装 Visual Studio 扩展 XAML Styler 

  • 获取项目代码:


git clone https://github.com/Microsoft/calculator.git


在 Visual Studio 中打开 src\Calculator.sln,以构建和运行 Windows 计算器 app

Windows 计算器项目架构的通用描述,参见 ApplicationArchitecture.md


此外,微软开源了 Windows 计算器的路线图,详见:https://github.com/Microsoft/calculator/blob/master/docs/Roadmap.md


沸腾的群众


Windows 开源计算器的事件很快就在社交网络上引发了一股风潮,人们纷纷登陆 GitHub 开始尝试。查看计算器代码显然是了解最新微软技术(如通用 Windows 平台、XAML 和 Azure)的好主意。也有人呼吁微软开源更多程序的代码,目前呼声最高的是「纸牌」程序。


开源一个软件可以帮助微软通过社区的力量解决一些问题。在 Reddit 上,有眼尖的网友发现了 Windows 10 上计算器的一个 Bug:



一个像素没有对齐。看起来 Issue 提交了之后,这个问题就会在 2019 年第一季度的 Windows 10 四月更新中解决了


GitHub上那些爆火的微软开源软件


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/



参考内容:

https://www.theverge.com/2019/3/6/18253474/microsoft-windows-calculator-open-source-github


微软已然成为GitHub贡献最大公司之一

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
热门推荐
相关推荐
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦