又到了年末各种盘点出炉的时候,开源圈今年虽然没有“GitHub被微软收购”、“Red Hat被IBM收购”如此重磅且出圈的新闻,但依然不失精彩。开源圈作为开发者密度最高的圈子,微软作为开发者群体中“渗透率”最高的商业公司,微软与开源之间的故事,天生自带流量属性。
本文就来和大家一起回顾微软在2019年与开源相关的重要事件——主要是引发较多关注和广泛讨论的新闻。
为了更好地理解微软的开源2019,下面我们将会按不同的领域而非时间线进行回顾。
编程语言
从拥抱Rust到开发基于Rust的安全编程语言
最初,微软表示正探索将Rust作为C和C++的安全替代方案,并且也对外展示了使用Rust重写Windows组件的体验。根据微软的说法,Rust是一种从根本上考虑安全性的编程语言,他们将尝试使用Rust重写各种产品,因为在过去的十年里,微软70%以上的安全补丁都提供了与内存相关的错误,而Rust正是解决这个问题的“良药”。
到后来,微软为解决相应内存问题所做的工作,他们决定开发基于Rust的新编程语言Verona,这是是用于微软“安全基础设施编程(safe infrastructure programming)”的一种新语言。
微软推出新编程语言Bosque
微软推出了一款全新的编程语言Bosque,该语言参考了TypeScript的语法与类型,还有ML和Node/JavaScript的语义,其作者认为Bosque超越了主流的结构化程序设计。
Bosque由规范化程序设计思想而来,旨在解决当前结构化程序设计中遇到的这些问题,作者把结构化程序设计的兴起认为是编程器与开发工具的第一个黄金时代,他相信此次提出的规范化编程模型将大大提高开发者的工作效率、提高软件质量,并带来编译器和开发工具的第二个黄金时代。
微软宣布加入OpenJDK项目
微软正式签署了《Oracle贡献者协议》,甲骨文公司也对微软参与该项目表示了认可及欢迎。
微软及其子公司在许多方面都高度依赖Java,并且在微软Azure云中向客户提供Java运行时服务。微软已经认识到在甲骨文成功有效管理下的OpenJDK项目所获得的巨大价值,它收购了Java,得到了更广泛的软件生态系统,微软也期待做出自己的一份贡献,它表示自己的团队在初期将致力于一些小的bug修复和反向移植。
微软开源其C++标准库实现STL
微软开源了其MSVC的C++标准库实现(也就是STL),该库实现是MSVC工具集和Visual Studio IDE的一部分。
微软表示开源STL可以使开发者随时了解其发展情况,使用最新更新,并且帮助完善项目。“随着C++标准化的加速发展,并且每年都会有更多的重大特性被投票,我们相信从开源贡献中接受主要特性将很重要。”
微软官方上线Python教程
微软上线了一套Python教程《Develop with Python on Windows》,文档内容包括设置Python开发环境、在Windows与WSL子系统中安装相应开发工具,以及集成VS Code与Git工具并进行开发等。
开发工具
微软开源全新终端应用Windows Terminal
微软在Build 2019大会上宣布开源全新的终端Windows Terminal,这是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多Tab支持、富文本、多语言支持、可配置、主题和样式,支持emoji和基于GPU运算的文本渲染等。
Visual Studio Online公开上线
微软在Build 2019大会上宣布了Web版本的VS Code -Visual Studio Online,并在两个月后的Ignite 2019大会上推出Visual Studio Online公开预览版。
▲Visual Studio Online
从页面上直观地看,VS Online就是一个Web版的VS Code,但这其实只是它的一个前端界面,这个基于网页浏览器的编辑器同样支持Git存储库、扩展和内置的命令行接口,因此开发者可从任何设备编辑、运行和调试应用。而VS Online更强大的能力来自于背后Azure提供的云计算能力,并且这些能力可以支持到VS Code与VS中,这意味着,其实开发者不使用浏览器也可以体验到VS Online带来的强大云计算资源支持。
微软开源新字体Cascadia Code
Cascadia Code是微软在Build 2019大会上宣布推出的等宽字体,微软介绍它是与新的终端Windows Terminal一起开发的,官方建议将其与终端应用和VS、VS Code等文本编辑器一起使用。
Cascadia Code为命令行和代码编辑器提供了全新的体验,并且它还支持编程连字(Programming Ligatures),就是在编写代码的时候,可以组合字符创建新的字形,这对于代码的可读性和呈现后的用户友好度都是一种很好的机制,同时这也增强了Windows Terminal的现代外观。
操作系统
微软在Windows 10中搞了个真正的Linux内核
2019年微软直接在Windows中安上了一颗“Linux内脏”,这颗Linux内脏其实是今年5月份在Windows 10上推出的全新版本WSL(Windows Subsystem for Linux),新版本WSL 2使用了全新的架构,这是一个真正的Linux内核,它改变了Linux二进制文件与Windows和计算机硬件的交互方式。
微软将exFAT技术添加到Linux内核
微软宣布将其exFAT技术添加到Linux内核中。exFAT文件系统是FAT32的替代者,它由微软开发,但是不仅用于Windows系统,目前exFAT在整个电子行业中都得到了广泛应用,特别是SD卡、USB闪存驱动、数码相机和MP3播放器中使用最为充分。
如今微软开放了它的exFAT技术,并且把技术规范公开,这意味着,往后Linux内核可以直接堂堂正正地将exFAT支持开箱即用。微软还强调了一句:Linux社区可以放心地使用Linux内核中包含的exFAT。
微软将新版Edge浏览器引入Linux
继推出WSL2、将exFAT技术添加至Linux内核,微软再次瞄准了Linux。在Ignite 2019大会上,微软正式宣布Edgefor Linux不久后将会发布。
微软高级编辑Zac Bowden称新的Edge是完全跨平台的,该浏览器将是支持Windows平台,包括服务器和客户端,以及macOS、Android、iOS和Linux。
微软开源Bing搜索背后的关键算法
微软开源了一项Bing搜索背后的关键算法——SPTAG,它使Bing能够快速将搜索结果返回给用户。
SPTAG(Space Partition Tree And Graph)是分布式近似最近邻域搜索(ANN)库,为大规模矢量搜索场景提供高质量矢量索引构建、搜索和分布式在线服务工具包。利用SPTAG算法作为开源Python库的核心,Bing能够在几毫秒内搜索数十亿条信息。
开源文化自由软件之父RMS受邀到微软发表演讲
自由软件运动发起人RMS受邀在微软进行了演讲,其中谈到微软在开源上的贡献,他表示微软未来活动的主要动力,无论如何都必定是基于利润的,微软的开源贡献其实对于“自由世界”毫无贡献。
RMS还给了微软十条建议,代表性的包括开源Windows、收回“毒瘤”言论以及指导GitHub正确许可证。
微软将主办首场Linux会议WSLConf
微软公布了明年3月在Microsoft HQ举办WSLConf的消息,WSLConf是由微软主办的首个与Linux相关的会议,主要围绕WSL进行讨论,内容涉及该平台的最新发展动态,也会介绍WSL与一些IDE如Visual Studio和JetBrains的集成。
Canonical宣布它将成为WSLConf的“特别赞助商”,毕竟Ubuntu是最早与微软合作的Linux发行版,它也是WSL中最受欢迎的版本。