又到了年末各种盘点出炉的时候,开源圈今年虽然没有“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 大会上,微软正式宣布 Edge for 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 中最受欢迎的版本。