微软与开源,化干戈为玉帛
作者 | 局长
本文经授权转载自开源中国(ID:oschina2013)
从微软公开宣布 "Microsoft love Linux" 那一刻起,过去的几年里,微软积极拥抱开源的举动我们有目共睹,即便有过"Linux is a cancer"这种真香警告的 flag,但不得不承认的是,微软一系列“拥抱开源”的举措为 Linux 社区乃至整个开源社区都带来了很多巨大的惊喜。
2015 年,微软宣布支持开源视频编解码器 VP9,对自家的更多项目进行开源,并开始接受 LLVM/Clang;而在 2016 年微软收购了跨平台移动开发公司 Xamarin,推出了 Linux 版的 SQL Server,并表示会继续开源。2017 年也是非常有趣的一年,这一年,微软加入了 OSI 组织(开源计划,Open Source Initiative),继续积极发展 Windows 的 Linux 子系统(WSL),并在 Linux 平台上为 .NET 开发提供更多的便利特性。但今年,2018 年,可以说是微软最令人感到惊讶的一年。
下面不妨回顾一下 2018 年微软与开源有关的“里程碑意义”事件:
微软收购 GitHub
2018 年 6 月 4 日,微软宣布以 75 亿美元的股票收购代码托管平台 GitHub,并由微软副总裁、Xamarin 创始人 Nat Friedman 担任 CEO 一职。消息公布后,微软表示 GitHub 将仍然是一个开放平台,并保留其开发者优先的风格,独立运营。而这一事件,无论是对于微软,还是整个开源界,都是一件可以载入史册的大事。
微软采用 Chromium 内核开发桌面版 Edge 浏览器
2018 年 12 月,微软通过其博客官方宣布:未来将采用 Chromium 内核开发桌面版 Edge 浏览器,以便为用户带来更好的 Web 兼容性,并为所有 Web 开发者减少 Web 碎片化。
微软还计划将 Edge 浏览器引入 macOS 平台。此外,新版 Edge 可运行在所有受支持的 Windows 版本上,包括 Windows 7 和 Windows 8 系列 —— 直到微软终止支持,而不仅仅是 Windows 10。
微软加入 OIN 社区,并开放 6 万多项专利
2018 年 10 月 11 日,微软宣布正式加入 Open Invention Network (“OIN”) 社区。可以把 Open Invention Network 理解为是一个共享的防御性专利池,它成立于 2015 年,旨在保护 Linux 及其相关的开源项目。而为了提升 Linux 和其他开源技术的优势,微软给 OIN 带去了超过 6 万项已发布的专利。
在同一个月,微软宣布加入 LOT Network。LOT Network 是一个不断发展的非营利性社区,由 Google、Dropbox 等数家科技公司联合创办,是一个专门用于对抗专利流氓的组织。微软的加入意味着它正在就这一主题与其他行业领导者保持一致,并承诺在未来采取更多措施来应对知识产权风险。通过加入 LOT Network,微软承诺会将自家的专利免费许可给其他成员使用,而 LOT Network 大约覆盖了 135 万项专利。
微软开源三个主要的 Windows UX 技术:WPF, Windows Forms 和 WinUI 框架
在微软举办的 Microsoft Connect(); 2018 开发者大会上,微软为 .NET 开发者带来了重磅的信息。在大会上,微软宣布开源三种主要的 Windows UX 技术,分别是 Windows Presentation Foundation (WPF), Windows Forms 和 Windows UI XAML 库 (WinUI)。
WPF 是用于构建桌面客户端应用程序的 UI 框架,具有应用程序模型、控件、图形、布局、数据绑定和安全性等功能。WPF 的核心是一个利用现代图形硬件的渲染引擎。
Windows Forms 用于支持开发“智能客户端(smart clients)”,微软对其的描述为易于部署和更新的应用程序。无论这些应用程序是否连接到 Internet,它们都可以正常工作。Windows Forms 中的表单是用于向用户显示信息的可视界面。WinUI 具有 Windows 10 默认 UWP XAML UI 平台的向后兼容实现。
微软重新开源已诞生 36 年的 MS-DOS 1.25/2.0
2018 年 9 月,微软宣布在 GitHub 上重新开源 MS-DOS 1.25、2.0,相比原来的可下载压缩文件更容易查找、阅读和引用。MS-DOS 1.25、2.0 的所有源代码都是用 8086 汇编代码写的,其中 86-DOS 的代码最初完成于 1980 年 12 月 29 日。
而微软开源放出的除了源文件和目标文件,还有一些有趣的 .txt、.doc 文件,十分值得一读,其中包括很多代码注释。
微软的分布式系统平台 Service Fabric 正式开源
2018 年 3 月 14 日,微软宣布正式开源 Service Fabric,采用 MIT 开源许可证。Windows 内部为 Service Fabric 开发了将近十年的内部服务,其中大部分时间都是微软内部平台,比如 Office365,Azure Stack 平台等。
其中包括 Reliable Services,Reliable Actors 和 ASP.NET Core 集成库,Azure 基础架构服务以及 Azure SQL DB,Azure Cosmos DB 和 Cortana 等大型解决方案都在使用 Service Fabric 构建。
微软正式开源 Blazor ,将 .NET 带回到浏览器
2018 年 2 月,微软 ASP.Net 团队正式开源 Blazor,这是一个 Web UI 框架,可通过 WebAssembly 在任意浏览器中运行 .NET。
Blazor 旨在简化快速的单页面 .NET 浏览器应用的构建过程,它虽然使用了诸如 CSS 和 HTML 之类的 Web 技术,但它使用 C#语言和 Razor 语法代替 JavaScript 来构建可组合的 Web UI 。通过提供用于编译到 Web 的大小和高效加载的格式,WebAssembly 可让 .NET 在浏览器中运行。
微软代码托管平台 CodePlex 正式关闭,进入封存状态
随着 CodePlex 的不断没落,微软于 2018 年 1 月 30 日发文宣布,CodePlex.com 网站正式退役,现在打开该网址会跳转到一个封存归档页面。该存档包含在2017年下半年进入只读模式前托管到 CodePlex 上的所有项目。
CodePlex 是微软于 2006 年推出的一个开源软件托管平台,在提供服务 11 年之后,微软于 2017 年 4 月 1 日宣布将关闭该平台,并给出了结束时间:2017 年 10 月切换到只读模式,12 月彻底关闭(最终的关闭日期是 2018 年 1 月 29 日)。之后,CodePlex 将为之前的开源项目存档,人们可以浏览并下载这些项目。
微软力挺 Go,宣布参与 Athens 项目和 GopherSource
在 2018 年的 Go 开发者大会 GopherCon 上,微软宣布要为 Athens 项目贡献代码,以及与 GopherSource 进行合作。
Athens 是一个开源项目,旨在为 Go 模块(Go modules)创建首个代理服务器。微软表示该项目目前仍处于 alpha 阶段,并将联合 Athens 社区继续致力于改善模块体验,重点是确保 Go 模块与所有代理服务器能无缝协作,并努力建立一个联合的、组织多样化的代理网络。
而所谓的 GopherSource 其实是一项新计划,旨在通过在社区内为上游项目和关键 Go 项目(如 Athens)带来更多用户和贡献者,以增强和实现 Go 生态系统的多样化。
对于微软 2018 开源大事记的回顾到此为止,如有纰漏,欢迎留言指正。