微软真的拥抱开源吗?

前几天偶然看到一篇文章,题目是:教程:在Azure中构建一个Java EE和Postgres Web App。看起来挺普通的,但是这篇文章出现在微软的网站上,就变得不一般了。

Java是Sun发明的语言,Java EE是各大厂商联合开发的标准。为了对抗他们,微软专门开发了一种新的语言C#和。NET策略。

Postgres是开源数据库,微软自己的产品是著名的SQL Server。

微软从什么时候开始拥抱开源了?

如果你仔细看看这篇文章的左栏,你会发现它支持更多的编程语言和开源系统,更重要的是,这样的系统都运行在Linux上!

如果这样的文章出现在十年前微软的网站上,绝对会让人瞠目结舌。

因为微软的产品有一个非常重要的特点,那就是封闭性:

开发语言要用自己的C #,VB.NET。......

数据库应该使用自己的SQL Server。

操作系统应该使用自己的Windows服务器。

开发的系统应该运行在自己的IIS上。

开发工具当然是最好的IDE :Visual Studio。

封闭是微软最为人诟病的一点,也是微软攻城拔寨的利器。

现在微软推出了云服务Azure,可以不管你的语言、数据库、系统运行,基于开源操作系统Linux。

当然,有人可能会说这是云服务。云服务不仅要支持自己的产品,还要支持各种语言和系统。这没什么。

让我们来看另一个例子:Visual Studio代码。

2016年,Visual Studio代码在最受欢迎开发工具排行榜中排名13,只有7.2%的人使用。但是在2018的调查中,它跃居第一,有34.9%的人在用,包括老刘和我。

Visual Studio代码是一个完全免费的开源产品。是用微软自己的语言C#开发的吗?答案是否定的。

Visual Studio代码基于电子。电子呢?

Electron是由GitHub维护的开源框架(而且开源!)允许程序员开发跨平台(Windows、Linux、MacOS)的桌面GUI程序,对前端非常友好,因为开发GUI时使用了JavaScript、HTML和CSS。

电子的后台是著名的Node.js,以及Google发起的开源浏览器Chromium。

都是开源的,有竞争对手Google发起和主导的产品。

如果对比一下Visual Studio和Visual Studio代码的接口,会发现差距很大。这段Visual Studio代码更加“时尚”,其默认的界面风格、字体颜色甚至设置方法都更接近于Sublime、Atom等其他开源编辑器。

我不知道Visual Studio代码是如何选择它的技术的,但是要选择开源产品来开发,而不是用自己的语言和平台去开发一个只能在自己平台上运行的产品,这肯定需要公司层面有很大的改变:从封闭到开放,拥抱开源。

值得一提的是Visual Studio Code的Erich Gamma带团队做的。这是绝对的牛,设计模式之一GoF(四人帮),和Eclipse Java开发工具的架构师,IBM Jazz和RTC的主要开发者Kent Beck合写的JUnit。

这么多工作,随便拿出一个就足以载入史册,而且他居然全是自己干的。

Erich Gamma做了几乎所有的开源工作。曾在IBM工作,2011跳槽到微软。可惜IBM没有留住这样的人才。

另一方面,埃里希·伽马跳槽到微软也反映出微软是真的在拥抱开源,否则埃里希·伽马大概不会去。

2001,微软CEO史蒂夫·鲍尔默说:从知识产权保护的角度来看,Linux是毒瘤,无可救药。

13年后,微软新任CEO萨提亚?纳德拉一上任,就公开宣称微软对Linux和开源的新感情。当时看到新闻我也对同事信誓旦旦:微软要开源吗?绝对不可能!这只是市场口号!

现在看来,我被打脸了。微软真的付出了真爱。从程序员的角度来看:

微软在2016对GitHub的贡献最大,在2018干脆买下了GitHub,也引起了不少争议.....这家公司真的变了。

那么问题来了:微软会开源Windows和Office吗?

↓↓↓