近日, 微软的 Bruno Borges 向 OpenJDK 的邮件列表发了一封信, 宣称微软已经正式签署了 Oracle Contributor Agreement , 从而加入 OpenJDK 社区.
看到这封信我不由得咧嘴笑了, 因为这封信写得很 "谦卑", 先是承认 Oracle 在 Java 领域的老大地位, 然后说我们会从小的 Bug fix 开始, 我们知道在做 change 之前之前要先讨论, 我们会做一个 OpenJDK 的良好公民......
这和印象中微软的霸道风格完全不符合.
遥想当年, Java 横空出世, 微软感到了巨大的威胁, 为了消除这个危险, 推出了 J++ 这门语言, 还有 Visual J++ 这个 IDE, J++ 也许是 Java ++ 的意思吧, 它号称是符合 Java 规范, 有着和 Java 一样的语法和关键字, 但是却没有实现 Java 的 RMI 和 JNI.
更有意思的是微软对 Java 进行了扩展, 在 J++ 中增加了 Delegate, Event, 还提供了一些直接调用 Windows API 的功能, 这样 J++ 在 Windows 上运行的效率肯定很高, VJ++ 由大神 Anders 操刀, 是当时最快的 Java 编译器, 但是它只能运行在微软的操作系统上, 运行在微软的 MS JVM 当中.
注意上图中有这么一句话: Activate the web with Java and ActiveX..... ActiveX 是微软的专有技术, 这样的程序, 肯定是没法跨平台的.
Sun 公司就不干了, 你居然敢破坏我大 Java "Write once, run everywhere" 的特性 ! 我要告你.
几场官司下来, 微软败诉, 最终付出 20 亿美金和解. 法官说 "在微软的垄断下, 大部分 PC 上安装的 Java, 要么是旧版本, 要么是仅适用于 Windows 的版本, 这使得其他开发者对 Java 产生了厌恶情绪....."
直到现在, 在 Windows 上安装并且配置好 Java 运行环境, 对刚开始学 Java 的小白还是巨大的折磨.
后来微软彻底和 Java 说 Bye Bye, 大神 Anders 干脆搞了一个新的开发语言 C#, 成为. NET 战略中的核心语言.
这场微软和 Sun 的世纪之战发生在 90 年代末和新世纪的前几年, Steve Ballmer 上台以后, 更加敌视开源, 说 Linux 是毒瘤, 微软逐渐变成了一个暮气沉沉, 老气横秋的公司.
最近几年, 微软转型云计算, 拥抱开源, 云端的服务器要运行 Linux,Linux 上还要跑 Java 应用, 作为一个基础设施提供商, 必须得对 Linux 和 Java 有更深入的理解和掌控才可以.
微软在今年 8 月份收购了 jClarity, 一个用于 JDK 性能调优的工具, 现在正式加入 OpenJDK 社区, 可以看出微软的 Java 策略. 值得一提的是领导着微软 Java 开源团队的, 正是 jClarity 的前 CEO Martijn Verburg.
对 Java 来说, 又来了一个重量级的玩家, 这是一件好事情.
微软的云服务 Azure 发展势头极好, 近日击败亚马逊, 赢得了一份五角大楼价值 100 亿美元合同, 在这种大背景下, 我认为微软加入 OpenJDK 社区, 将来一定会基于 OpenJDK 为自己的 Azure 定制一个 JDK, 就像亚马逊的 Corretto, 阿里巴巴的 Dragonwell 那样, 让我们拭目以待.
20 年过去了, 微软的转变正是应了那句老话: 没有真正的朋友, 也没有真正的敌人, 有的只是永恒的利益.
微软发给 OpenJDK 的信:
https://mail.openjdk.java.net/pipermail/discuss/2019-October/005173.html
来源: http://zhuanlan.51cto.com/art/201911/605368.htm