图片 1

微软开源 2019:“讨好”开发者,当开源圈的“万人迷”

此次微软将为 OpenJDK
做贡献的消息发出后,也有网友(id:yanglbme)梳理了二十多年来微软与 Java
的一二事():

为了更好地理解微软的开源
2019,下面我们将会按不同的领域而非时间线进行回顾。

JClarity 首席执行官 Martijn Verburg 表示:

Borges 曾经是 Oracle 开发人员,现在担任微软 Java
的首席产品经理。他向大家介绍了 Java 工程团队负责人 Martijn
Verburg,Verburg 同时也是 jClarity 的首席执行官,而 jClarity 是
AdoptOpenJDK 的主要贡献者,于今年 8 月被微软收购。

本文就来和大家一起回顾微软在 2019 年与开源相关的重要事件 ——
主要是引发较多关注和广泛讨论的新闻。

根据 SlashData 4 月份发布的一份报告,全世界约有 760 万开发人员在使用
Java 进行代码编写。 

  • 1996 年,微软推出 J++ 语言,并推出了 Visual j++ 集成编程工具,对
    Java 进行了大量的修改。
  • 1997 年,Sun 公司以“歧视使用 Java
    软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法”为由起诉微软。
  • 2001 年 1 月,SUN 胜诉,根据双方达成的和解协议,微软不得对 Windows
    操作系统中包含的 Java 语言作任何改动,并获赔 2000 万美元。
  • 2001 年年底,微软在推出新版操作系统 Windows XP 和新版 IE
    时,故意不安装 Java 软件,并且推出高仿 Java 的语言 C# 和 .net
    框架。
  • 2002 年 6 月,微软称从 2004 年起,因为安全原因微软的 Windows
    操作系统将不再支持 Java 语言。
  • 2019 年 10 月,微软宣布加入 OpenJDK 参与开发。

开源文化

自 2018 年 6 月以来,微软一直赞助 AdoptOpenJDK 项目,目的就是帮助为
Linux 和 Windows 等平台构建 OpenJDK 的二进制文件。OpenJDK 是 Java
平台标准版(Java Platform Standard Edition)的免费开源实现。微软是
AdoptOpenJdf 到 2020 年的白金赞助商,为其 Visual Studio Code
轻量级代码编辑器构建并交付 Java 安装程序。

该邮件可以在 OpenJDK
邮件列表中找到:

微软将 exFAT 技术添加到 Linux 内核

微软宣布将其 exFAT 技术添加到 Linux 内核中。exFAT 文件系统是 FAT32
的替代者,它由微软开发,但是不仅用于 Windows 系统,目前 exFAT
在整个电子行业中都得到了广泛应用,特别是 SD 卡、USB 闪存驱动、数码相机和
MP3 播放器中使用最为充分。

如今微软开放了它的 exFAT 技术,并且把技术规范公开,这意味着,往后 Linux
内核可以直接堂堂正正地将 exFAT 支持开箱即用。微软还强调了一句:Linux
社区可以放心地使用 Linux 内核中包含的 exFAT。

jClarity,AdoptOpenJDK
项目的主要贡献者,也是开源的主要贡献者,该公司利用机器学习来查找其
Censum 工具中的内存泄漏,以及其照明诊断引擎的性能问题。

嗨,OpenJDK 社区,

在过去的一周中,微软正式签署了《Oracle
贡献者协议》,甲骨文公司对我们参与该项目表示了认可及欢迎。我代表微软
Java 工程团队,很高兴正式加入 OpenJDK 项目,并期待与你们的合作。

众所周知,微软及其子公司在许多方面都高度依赖 Java,并且在微软 Azure
云中向客户提供 Java 运行时服务。微软已经认识到在甲骨文成功有效管理下的
OpenJDK 项目所获得的巨大价值,它收购了
Java,得到了更广泛的软件生态系统,我们也期待做出自己的一份贡献。

我们团队在初期将致力于一些小的 bug
修复和反向移植,这有助于我们更好地成为 OpenJDK
的一员。例如,我们已经了解到,在发布补丁之前最好先讨论更改,并且我相信我们还有很多东西要学习。

由 Martijn Verburg 领导的 Java 工程团队已经与其他使用 Java
的微软组织及子公司,还有一些 Java 生态系统中的合作伙伴(例如 Azul
Systems、Oracle、Pivotal、Red Hat、Intel、SAP
等)合作。整个团队将加入一些 OpenJDK 邮件列表并参与会话。

我们期待参与 Java 的未来。

微软官方上线 Python 教程

微软上线了一套 Python 教程《Develop with Python on
Windows》,文档内容包括设置 Python 开发环境、在 Windows 与 WSL
子系统中安装相应开发工具,以及集成 VS Code 与 Git 工具并进行开发等。

在过去几年里,微软对 Java 的使用有所增长。jClarity 团队在数据驱动的
Java 虚拟机(Jvm)优化方面拥有公认的专业知识,将帮助微软的团队利用 Java
平台的进步。

微软 Azure 和 jClarity 工程师将共同努力,为我们的 Java
客户和内部团队打造一个更好的平台,提高 Java
开发人员和最终用户的体验和性能。我们坚信,通过与 Java
社区一起努力,我们可以为我们的客户做更多的事情。

微软首次向 OpenJDK 贡献代码是在 2014 年,贡献内容关于 Windows 上 TCP
回环快速路径机制方面的优化。2018 年 10 月,甲骨文计划将 OpenJDK
的源码库迁移至 GitHub,彼时的 GitHub 刚刚被微软收购,此后微软与 OpenJDK
的关系也更进了一步。

又到了年末各种盘点出炉的时候,开源圈今年虽然没有“GitHub
被微软收购”、“Red Hat 被 IBM
收购”如此重磅且出圈的新闻,但依然不失精彩。开源圈作为开发者密度最高的圈子,微软作为开发者群体中“渗透率”最高的商业公司,微软与开源之间的故事,天生自带流量属性。

jClarity 的收购进一步证明了微软承认 Java
和开源在现代开发世界中的重要性。毕竟,工作负载在云中运行,以及 Adobe 和
Daimler 等其他客户的工作负载都需要
Java,因此优化是必不可少的。另外,Azure 的计算工作量的一半以上现在是基于
Linux 的,Azure 已经成为开放源码的一个很好的平台,其中包括 Java。

近日,微软的 Bruno Borges 在 OpenJDK
邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到
OpenJDK 社区。在邮件中,Bruno Borges 提到,微软已正式签署《Oracle
贡献者协议》。同时,他重申了微软对 Java 的承诺,以及微软团队对回馈 Java
社区的期待。

微软开源 Bing 搜索背后的关键算法

微软开源了一项 Bing 搜索背后的关键算法——SPTAG,它使 Bing
能够快速将搜索结果返回给用户。

SPTAG (Space Partition Tree And
Graph)是分布式近似最近邻域搜索(ANN)库,为大规模矢量搜索场景提供高质量矢量索引构建、搜索和分布式在线服务工具包。利用
SPTAG 算法作为开源 Python 库的核心,Bing
能够在几毫秒内搜索数十亿条信息。

微软已经收购了 jClarity,此次收购将通过提高 Java
工作负载的性能来增强微软的 Azure 云计算平台。

消息来源:jaxenter

自由软件之父 RMS 受邀到微软发表演讲

自由软件运动发起人 RMS
受邀在微软进行了演讲,其中谈到微软在开源上的贡献,他表示微软未来活动的主要动力,无论如何都必定是基于利润的,微软的开源贡献其实对于“自由世界”毫无贡献。

RMS 还给了微软十条建议,代表性的包括开源 Windows、收回“毒瘤”言论以及指导
GitHub 正确许可证。

微软的程序管理副总裁 Montgomery 说:

编程语言

支持 Java 生态系统一直是 JClarity
的核心任务。我们从世界级的性能工具开始,之后成为 AdoptOpenJDK
项目的领导者。微软在支持开发人员和他们的社区方面领先于世界,在与他们的工程和程序领导人交谈之后,进入正式讨论是不需要考虑的。凭借微软员工的热情和深厚的专业知识,我们将能够比以往任何时候都更好地支持
Java 生态系统。

微软开源其 C++ 标准库实现 STL

微软开源了其 MSVC 的 C++ 标准库实现(也就是 STL),该库实现是 MSVC
工具集和 Visual Studio IDE 的一部分。

微软表示开源 STL
可以使开发者随时了解其发展情况,使用最新更新,并且帮助完善项目。“随着
C++
标准化的加速发展,并且每年都会有更多的重大特性被投票,我们相信从开源贡献中接受主要特性将很重要。”

图片 1

微软开源新字体 Cascadia Code

Cascadia Code 是微软在 Build 2019
大会上宣布推出的等宽字体,微软介绍它是与新的终端 Windows Terminal
一起开发的,官方建议将其与终端应用和 VS、VS Code 等文本编辑器一起使用。

Cascadia Code
为命令行和代码编辑器提供了全新的体验,并且它还支持编程连字(Programming
Ligatures),就是在编写代码的时候,可以组合字符创建新的字形,这对于代码的可读性和呈现后的用户友好度都是一种很好的机制,同时这也增强了
Windows Terminal 的现代外观。

图片 2

来源:venturebeat 

微软在 Windows 10 中搞了个真正的 Linux 内核

2019 年微软直接在 Windows 中安上了一颗“Linux 内脏”,这颗 Linux
内脏其实是今年 5 月份在 Windows 10 上推出的全新版本 WSL(Windows
Subsystem for Linux),新版本 WSL 2 使用了全新的架构,这是一个真正的
Linux 内核,它改变了 Linux 二进制文件与 Windows 和计算机硬件的交互方式。

图片 3

微软将新版 Edge 浏览器引入 Linux

继推出 WSL2、将 exFAT 技术添加至 Linux 内核,微软再次瞄准了 Linux。在
Ignite 2019 大会上,微软正式宣布 Edge for Linux 不久后将会发布。

微软高级编辑 Zac Bowden 称新的 Edge 是完全跨平台的,该浏览器将是支持
Windows 平台,包括服务器和客户端,以及 macOS、Android、iOS 和 Linux。

微软宣布加入 OpenJDK 项目

微软正式签署了《Oracle
贡献者协议》,甲骨文公司也对微软参与该项目表示了认可及欢迎。

微软及其子公司在许多方面都高度依赖 Java,并且在微软 Azure 云中向客户提供
Java 运行时服务。微软已经认识到在甲骨文成功有效管理下的 OpenJDK
项目所获得的巨大价值,它收购了
Java,得到了更广泛的软件生态系统,微软也期待做出自己的一份贡献,它表示自己的团队在初期将致力于一些小的
bug 修复和反向移植。

Visual Studio Online 公开上线

微软在 Build 2019 大会上宣布了 Web 版本的 VS Code – Visual Studio
Online,并在两个月后的 Ignite 2019 大会上推出 Visual Studio Online
公开预览版。

图片 4

▲Visual Studio Online

从页面上直观地看,VS Online 就是一个 Web 版的 VS
Code,但这其实只是它的一个前端界面,这个基于网页浏览器的编辑器同样支持
Git
存储库、扩展和内置的命令行接口,因此开发者可从任何设备编辑、运行和调试应用。而
VS Online 更强大的能力来自于背后 Azure
提供的云计算能力,并且这些能力可以支持到 VS Code 与 VS
中,这意味着,其实开发者不使用浏览器也可以体验到 VS Online
带来的强大云计算资源支持。

微软开源全新终端应用 Windows Terminal

微软在 Build 2019 大会上宣布开源全新的终端 Windows
Terminal,这是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多
Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU
运算的文本渲染等。

图片 5

微软推出新编程语言 Bosque

微软推出了一款全新的编程语言 Bosque,该语言参考了 TypeScript
的语法与类型,还有 ML 和 Node/JavaScript 的语义,其作者认为 Bosque
超越了主流的结构化程序设计。

Bosque
由规范化程序设计思想而来,旨在解决当前结构化程序设计中遇到的这些问题,作者把结构化程序设计的兴起认为是编程器与开发工具的第一个黄金时代,他相信此次提出的规范化编程模型将大大提高开发者的工作效率、提高软件质量,并带来编译器和开发工具的第二个黄金时代。

开发工具

微软将主办首场 Linux 会议 WSLConf

微软公布了明年 3 月在 Microsoft HQ 举办 WSLConf 的消息,WSLConf
是由微软主办的首个与 Linux 相关的会议,主要围绕 WSL
进行讨论,内容涉及该平台的最新发展动态,也会介绍 WSL 与一些 IDE 如
Visual Studio 和 JetBrains 的集成。

Canonical 宣布它将成为 WSLConf 的“特别赞助商”,毕竟 Ubuntu
是最早与微软合作的 Linux 发行版,它也是 WSL 中最受欢迎的版本。

(文/开源中国)    

操作系统

从拥抱 Rust 到开发基于 Rust 的安全编程语言

最初,微软表示正探索将 Rust 作为 C 和 C++
的安全替代方案,并且也对外展示了使用 Rust 重写 Windows
组件的体验。根据微软的说法,Rust 是一种从根本上考虑安全性的编程语言,他们将尝试使用
Rust 重写各种产品,因为在过去的十年里,微软 70%
以上的安全补丁都提供了与内存相关的错误,而
Rust 正是解决这个问题的“良药”。

到后来,微软为解决相应内存问题所做的工作,他们决定开发基于 Rust
的新编程语言 Verona,这是是用于微软“安全基础设施编程(safe
infrastructure programming)”的一种新语言。