前几天无意中看到一篇文章, 标题是: Tutorial: Build a Java EE and Postgres web App in Azure, 看起来挺普通的, 但是这个文章出现在微软的网站上, 那就变得不寻常了.
Java 是 Sun 发明的语言, Java EE 是各大厂商一起搞的标准, 为了对抗他们, 微软当年特地搞出了新语言 C# 和. NET 战略.
Postgres 是开源的数据库, 而微软自己的产品就是大名鼎鼎的 SQL Server.
这微软什么时候开始拥抱开源了?
再仔细看看这个文章左边栏, 会发现它支持更多的编程语言和开源系统, 更重要的是这样的系统都跑着 Linux 上面!
这样的文章如果十年前出现在微软的网站上, 绝对会让人惊掉下巴.
因为微软的产品有个很重要的特点, 那就是封闭:
开发语言要用自家的 C#, VB.NET......
数据库要用自家的 SQL Server.
操作系统要用自家的 Windows Server.
开发的系统要跑在自家的 IIS 上.
开发工具当然是号称最好用的 IDE :Visual Studio.
封闭性是大家最诟病微软的一点, 也是微软攻城拔寨的利器.
现在微软推出了云服务 Azure, 不管你什么语言, 什么数据库, 什么系统, 都可以运行, 还是基于 Linux 这个开源的操作系统.
当然, 可能有人说, 这是云服务嘛, 云服务肯定不能只支持自己产品, 得支持各种语言和系统, 这不算什么.
我们再来看看另外一个例子: Visual Studio Code .
2016 年, Visual Studio Code 在 Stack overflow 举办的调查中, 位居最流行开发工具榜单的第 13 位, 仅仅有 7.2% 的人在用它, 然而, 在 2018 年的调查中, 它就蹿升到了第一位, 有 34.9% 的人在使用, 也包括老刘我.
Visual Studio Code 是个完全免费, 开源的产品, 它是不是用微软自己的当家语言 C# 开发的呢? 答案是否定的.
Visual Studio Code 是基于 Electron 搞起来的, Electron 又什么?
Electron 是 GitHub 维护的一个开源框架 (又是开源的!), 让程序员可以开发跨平台 (Windows,Linux,MacOS) 的桌面 GUI 程序, 对前端非常友好, 因为在开发 GUI 时, 使用的是 JavaScript,html 和 CSS.
Electron 的后台是大名鼎鼎的 Node.JS, 还有 Chromium 这个 Google 发起的开源浏览器.
全是开源的, 还有竞争对手 Google 发起和主导的产品.
如果对比下 Visual Studio 和 Visual Studio Code 这两个产品的界面, 就会发现差距挺大的, 这个 Visual Studio Code 更加 "时尚", 它的默认界面风格, 字体颜色, 甚至于设置方式都更加接近其他一些开源的编辑器如 Sublime, Atom.
我不知道 Visual Studio Code 是怎么做技术选型的, 但是能选择开源的产品来开发, 而不是沿用固有思维, 使用自己的语言和平台来开发一个只能在自家平台运行的产品, 这肯定需要公司层面的巨大变革: 从封闭到开放, 拥抱开源.
值得一提的是 Visual Studio Code 的 Erich Gamma 带着团队搞的, 这可是一位绝对的大牛啊, 设计模式 GoF(四人帮) 之一, 和 Kent Beck 合写了 JUnit,Eclipse Java Development Tool 的架构师, IBM Jazz, RTC 的主要开发人员.
这么多工作, 随便拿出来一个就足以名垂青史, 他一个人竟然全干了.
Erich Gamma 做的几乎都是开源的工作, 他原来在 IBM,2011 年跳槽到了微软, 这样的人才 IBM 没有留住, 实在是可惜可叹啊.
从另外一方面看, Erich Gamma 跳槽到微软也反应了微软确实在拥抱开源, 要不然 Erich Gamma 估计也不会去.
2001 年, 微软的 CEO Steve Ballmer 说: 从知识产权保护角度来看, Linux 就是毒瘤并且无可救药.
13 年后, 微软的新 CEO 萨提亚 ∙ 纳德拉在上任时, 公开宣示了微软对 Linux 和开源的新感情, 当时我看到这个新闻, 我还给同事信誓旦旦地说: 微软要开源? 绝对不可能! 这就是市场口号而已!
现在看来被打脸了, 微软的确付出了真爱, 从程序员的角度看:
SQL Server 已经跑在 Linux 上
Visual Studio Code 被广泛采用
TypeScript 被 Google 采用, 作为 Angular 的编程语言. .
NET Core 开源, 实现了跨平台运行
Windows 原生支持 Ubuntu Linux Bash......
微软 2016 年是 GitHub 上贡献最多的公司, 2018 年干脆把 GitHub 给收购了, 这也引起了不少争议...... 这家公司确实是变了.
那么问题来了: 微软会不会把 Windows 和 Office 给开源了呢?
往期精彩回顾
我是一个线程
关于老刘和码农翻身
我是一个 Java Class
面向对象圣经
函数式编程圣经
TCP/IP 之大明邮差
CPU 阿甘
我是一个网卡
我是一个路由器
一个故事讲完 HTTPs
编程语言的巅峰
Java: 一个帝国的诞生
JavaScript: 一个屌丝的逆袭
来源: https://juejin.im/entry/5c497dcae51d4503834d8f35