近日, 微软的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
【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】