2010年,Oracle公司以74亿美元收购了Sun Microsystems。这笔交易在Java社区引发了巨大的恐慌——Sun是Java的创造者,虽然商业模式上并不成功,但一直以开放和包容的态度维护Java生态。而Oracle,这家以数据库和商业软件闻名的公司,在开源社区中的口碑并不算好。很多人担心:Oracle会不会将Java闭源?会不会对Java开发者收费?会不会扼杀Java生态的活力?
事实证明,这些担忧并非毫无根据,但也并未完全成为现实。Java的命运在过去十几年间经历了复杂的博弈,这场博弈的结局,塑造了今天Java开源生态的格局。
Oracle接手Java后做的第一件事,是清理Java的知识产权问题。Sun在Java的发展过程中,遗留了一些模糊不清的授权问题——某些技术专利的归属、某些代码的版权声明、某些第三方组件的使用许可。Oracle用法律手段澄清了这些问题,但也因此与Google、Apache等公司陷入了漫长的法律纠纷。这些纠纷在一定程度上损害了Java社区的信任感,但也为Java的商业化扫清了障碍。
参考:https://rvxif.cn/category/yellow-tea.html
更根本的变化发生在Java的发展模式上。在Sun时代,Java的版本发布节奏相对缓慢——Java 5到Java 6用了两年,Java 6到Java 7用了五年。这种慢节奏虽然稳健,但也让Java在面对新语言挑战时显得反应迟钝。Oracle接手后,加快了Java的演进速度——Java 8引入了划时代的Lambda表达式,Java 9带来了模块化系统,此后Java的发布周期缩短到每六个月一个版本。
但真正让Java社区安心的,是OpenJDK项目的成功运作。OpenJDK是Sun在2006年启动的开源项目,目标是提供一个开源的Java实现。Oracle接手后,不仅没有关闭OpenJDK,反而加大了对它的投入,最终将OpenJDK打造成了Java的参考实现。如今,Java开发者在官网上下载的JDK,本质上就是OpenJDK的构建版本。
OpenJDK的成功,在于它建立了一个多方的治理机制。虽然Oracle仍然是OpenJDK的主导贡献者,但IBM、Red Hat、Amazon、Microsoft、Apple等公司也深度参与其中。Java的演进不再是Oracle一家说了算,而是由整个生态共同决定——JCP(Java Community Process)负责Java技术规范的制定,JEP(JDK Enhancement Proposal)负责JDK功能的演进,OpenJDK社区负责代码的开发和维护。
这种多方的治理模式,在Java的几个关键决策中发挥了重要作用。当Oracle试图收紧Java的商业授权时,社区的力量制衡了这种倾向;当Java 9的模块化系统引发兼容性问题时,社区的反馈促使Oracle延长了Java 8的支持周期;当Oracle对Java的长期支持(LTS)版本收费时,多家公司推出了免费的OpenJDK构建版本,削弱了Oracle的垄断地位。
Java的开源之路,本质上是一场关于“控制权”的博弈。Oracle作为Java的知识产权所有者,自然希望从中获得商业回报;而社区作为Java的使用者和贡献者,则希望Java保持开放和免费。这场博弈的结果,形成了一种微妙的平衡——Oracle保留了对Java商标和规范的控制权,但OpenJDK的代码是完全开源的;Oracle可以对企业级的商业支持收费,但任何人都可以免费使用OpenJDK;Oracle主导了Java的发展方向,但社区的声音能够影响决策。
参考:https://rvxif.cn/category/white-tea.html
这种平衡并非完美。批评者指出,Oracle对Java的控制仍然过于集中——OpenJDK的主导权仍然在Oracle手中,Java技术规范的审批流程仍然由Oracle把控,Java社区的治理结构仍然偏向于大公司。但支持者认为,正是Oracle的商业投入,才保证了Java能够持续演进——如果没有Oracle的资金和工程师支持,Java的发展速度会大幅放缓,甚至陷入停滞。
Java开源之路的另一个重要节点,是Android对Java的使用。Google在开发Android时,使用了Java语言和部分Java API,但采取了“独立实现”的方式,没有向Oracle支付授权费。这引发了Oracle和Google之间长达十年的法律诉讼,案件一直打到美国最高法院。2021年,最高法院最终裁定Google的“合理使用”成立,这一判决确立了API复用的合法性边界,对整个软件行业产生了深远影响。
参考:https://rvxif.cn/category/puerh-tea.html
从Oracle到OpenJDK,Java的开源之路充满了博弈和争议,但也展现了一种可能性——一门编程语言可以在商业公司和开源社区的共同治理下,既保持活力,又保持开放。Java没有走向闭源,没有走向分裂,没有走向衰落,而是在多方力量的制衡中,走出一条独特的发展道路。
对于Java开发者而言,这场博弈的意义在于:你可以放心地使用Java,不用担心它突然变成收费软件;你可以自由地选择JDK发行版,从Oracle JDK到OpenJDK,从AdoptOpenJDK到Amazon Corretto,从Azul Zulu到Red Hat build of OpenJDK;你可以参与Java的演进,通过邮件列表讨论JEP,通过提交PR贡献代码,通过社区活动表达意见。
Java的开源之路仍在继续。随着云原生、AI等新技术的兴起,Java面临着新的挑战和机遇。Oracle和OpenJDK社区能否继续保持良性的合作关系,能否在商业利益和社区价值之间找到更好的平衡,将决定Java的未来走向。但至少有一点可以确定:Java已经从一个公司的产品,变成了一个社区共同守护的资产——这种转变,是Java三十年发展历程中最宝贵的成就。
参考:https://rvxif.cn