无法追上 Java 的更新频率,负担不起 Java SE 的费用,让不少开发者、公司开始计划另想他法了。
在独立市场研究公司 Dimensional Research 以及现代云企业 Java 平台提供商 Azul 联合调研全球不同规模公司专业的 663 名 Java 开发者之后,其最新发布了一份《Oracle Java 使用、定价和迁移调查报告》(https://www.azul.com/oracle-java-usage-pricing-migration-survey/)。根据调研数据显示,超过 80% 的受访者透露,由于成本等各种原因,他们正在考虑放弃 Oracle Java 并开始寻找替代品。
这一最新趋势也让人担心,Oracle 掌管下的 Java 似乎已经走上了下坡路。
历经几次许可调整,Oracle Java 的份额一降再降
要知道 Java 发布的近 30 年时间里,一直以来都是免费的,至少对程序员来说是这样。从一开始,其开发商 Sun 公司就希望用免费的工具和硬件来吸引开发人员。1997 年,该公司大胆地将该语言及其虚拟机的许多部分开源,帮助开发人员实现「一次编写,在任何地方运行」的初步梦想,而无需支付一分钱。
然而现在,情况变得越来越模糊。Oracle 的许多 Java 版本都是免费的,但有些版本需要带有奇怪条款的许可证。Oracle 似乎希望程序员能够享受不受金钱限制的创作自由,但也希望从那些从 Java 中产生大量长期收入的企业那里收取税款或租金。这种矛盾的心态可以从其不断地对 Java SE 许可模式进行的调整中可以窥探出来。
此前,我们也曾报道过, Oracle 对于 Java 许可的改革始于 2019 年 4 月,当时 Oracle 首次为其商业 Java 平台标准版(Java SE)引入了两种新的许可模式,开始对以前免费的 Java 收取许可费,这要求用户需要为商业 Java SE 产品付费订阅,以便获得补丁和更新。
2021 年 9 月,Oracle 发布 Java 17 时,它又开始提供一个免费的许可模式,该许可会在三年内免费提供季度更新。但该模式只限于该版本的迭代,允许用户免费使用,甚至包括商业用途(不能与付费产品捆绑在一起),而不适用于 Java 7、8 和 11 等早期版本。
2023 年 1 月,Oracle 又对 Java SE 发布了新收费政策,声称可以提供“简单、低成本的每月订阅服务,其中包括用于桌面、服务器或云部署的 Java SE 许可和支持。”不过,当打开价格表一看时,很多人发现此番政策是基于公司内总员工数来收取对应的费用,而不是使用 Java SE 的员工数,即:
总员工数量 1-999: /人/月
总员工数量 1000-2999: /人/月
总员工数量 3000-9999:.5 /人/月
总员工数量 10000-19999:.25 /人/月
总员工数量 20000-29999:.75 /人/月
总员工数量 30000-39999:.70 /人/月
总员工数量 40000-49999:.25 /人/月
总员工数量 50000+:没有给出具体定价,需要详询 Oracle 官方。
简单来看,就是一家公司不管是行政、客服,还是开发岗,只要有一人用了 Java,就要按照总员工数量来收取费用。显然,对于大型公司而言,此举无疑会带来一笔不菲的支出,当时也有很多专业人士警告说,这可能会迫使企业每月为运行相同的软件在新的 Java 许可条款下多支付数万美元。
Gartner 对此也预估称,大多数适应 Oracle 新的 Java 许可条款的组织都认为,每位员工的订阅模式将比传统模式贵出 2-5 倍。
外界的质疑声并未左右 Oracle 的决定,而去年是实行此政策的第一年。据 Azul 于 2023 年发布的《Java 调查报告》数据显示,当时有超过 80% 企业关注新的 Oracle Java SE 定价和许可的变化。
对于使用 Java 的企业而言,假装不知道这条政策并行不通的,因为据外媒 The Register 多次报道称,Oracle 在过去一年多的时间里,主动审查了多家公司关于 Java 的使用情况。
同时据咨询服务公司 House of Brick 在其博客上反馈称,“即使你不是 Oracle 客户,他们也会跟踪产品下载并将 IP 地址与你的组织进行匹配。Oracle 已在印度部署了一整个团队,他们正在联系世界各地的组织,声称 Java SE 使用不合规。”
至于此举究竟带来了多大的影响?据 New Relic 的数据显示,Oracle 在 2020 年占据了 JDK 发行版市场约 75% 的份额,但在 Azul 的 2023 年 Java 调查报告中,该比例直接掉到了 42%。
如今这一下滑趋势还在持续,据 Azul 这次最新出炉的调查报告显示,86% 使用 Oracle Java SE 的受访者目前正在或计划将其全部或部分 Java 应用程序从 Oracle Java 迁移到基于 OpenJDK 的发行版。
其中,25% 的人已经完全放弃 Oracle Java,20% 的人目前正在做迁移工作,以及还有 15% 的人计划这样做。
相较之下,只有 14% 的受访者打算继续使用 Oracle Java。
价格调整带给 Java 开发者的恐慌
当被问到为什么他们决定离开 Oracle Java 时, 53% 的人吐槽称 Oracle Java 收费实在太贵了,这一因素占比第一。
此前也有人算了一笔账,假设有一家公司,员工总数为 500 人(包括全职和兼职员工以及代理、顾问和承包商),其中有 20 个 Java 开发人员。按照旧模式的收费标准,每年将被收取 20 X 25 X 12 = 6000 美元(旧版本付费按 25 美元/月来举例);按照新模式的收费标准,每年将被收取 500 X 15 X 12 = 90000 美元。其成本上升可不止 2-5 倍。
除了价格之外,对开源的偏爱(47%)和 Oracle 不断调整 Java SE 的价格所带来的不确定性(38%)也是很多企业决定不再使用 Oracle Java 的主要原因。再者,Java 审计的威胁在受访者中的得分也很高(25%)。
在这些因素之下,超五成的受访者称计划未来 1-2 年内从 Oracle Java 迁移。
迁移也并非易事
不过,选择替代品实则也不是一件容易的事情,上述提到的 14% 的受访者之所以声称会坚持使用 Oracle Java,主要有几个因素:约三分之一的人说,他们对 Oracle 的定价和政策感到满意;12% 的受访者提到他们曾尝试过迁移,但没有成功。
所以对于想要弃用 Oracle Java SE 的企业而言,也需要综合业务优先级以及传统业务的迁移难度来综合考虑。
用 OpenJDK 替代的难度如何?
在此,也有不少人建议道,或可以直接使用 OpenJDK 进行替代。针对这一问题,Azul 也进行了调研,最终发现当被问及希望在 OpenJDK 发行版中获得哪些特性和品质来实现替换时,降低许可成本、技术专长、客户支持、及时发布和修复、稳定的安全更新都是大家极为关注的重点。
数据显示,57% 的参与者希望在两年内完成从 Oracle Java 到 OpenJDK 发行版的迁移。其中,62% 已经开始迁移,而另外 38% 正在计划在未来迁移。
尽管 Oracle Java 用户对迁移到 OpenJDK 发行版感到不安,但大多数已经进行迁移的组织都对迁移过程和结果感到满意。90% 的受访者透露,其程序在两年内完成迁移到 OpenJDK,75% 在 12 个月内完成,23% 在不到 3 个月内完成。
41% 的受访者表示迁移比他们预期的要容易,其余 43% 的受访者则表示迁移按计划进行。
整体而言,超过一半的受访者在寻找 Oracle Java 的替代品时将价格作为一个重要因素。三分之二的人觉得从 Oracle Java 转换到 OpenJDK 发行版能够节省成本。
截至目前,只有 36% 的 Oracle Java 受访者称已转移到新的基于员工的定价模式。
接受调查的 Java 专业人士还明确表示,他们的公司需要 Java 支持,83% 的受访者需要对生产应用程序的支持,包括付费支持、与现有云和基础设施平台捆绑在一起的支持或两者兼而有之。
在考虑他们最看重 OpenJDK 发行版的付费支持时,参与者表示前五个原因是
技术专长(61%)
及时发布和修复(54%)
客户支持(42%)
稳定的仅安全更新(40%)
迁移专业知识(39%)
“大量用户离开 Oracle Java 是因为人们对价格变化的担忧日益增加,并且越来越倾向于使用开源替代方案。虽然一些组织最初犹豫不决,但我们的调查显示,那些迁移到 OpenJDK 发行版的人获得了积极的体验,”Azul 联合创始人兼首席执行官 Scott Sellers 表示,“很明显,Java 社区正在用行动投票,为他们的 Java 应用程序和基于 Java 的基础设施寻求更具成本效益、更灵活、更开放的解决方案。”
开发者的看法
对于这份趋势报告,不少开发者认可道:
Java 本应被视为 Oracle 内部的“亏损先锋”。在 Oracle 为 Java 带来良好体验的同时,可能会这家公司带来其他非常有利可图的业务。
但是没有……Oracle 想抓住所有东西,结果 Java 客户都在流失。
我们有一个使用 Java 的应用程序,现在已经重写为使用开源 JVM。我已经支付了 50 美元的专业许可证费用。这样我们就不会被 Oracle 的人找上门来,要求支付超过我们年收入的费用。
曾几何时,我是 Oracle 阵营的一员,甚至在他们 7.3.4 版本的数据库时代,我还是一名 DBA。然后他们与魔鬼结盟了。