本文转载自公众号「小肥羊聊Java」,
作者:杨晓峰,前 Oracle 首席工程师
最近一段时间, 关于 JDK 要开始收费的消息满天飞,各种讯息夹杂其中,不免有 Java 工程师或者使用Java 应用开发的公司有所担心,以下是前 Oracle首席工程师 杨晓峰老师对于该话题的分析。
最近有关Java收费的谣言不断,本不想对此发表评论,毕竟一些负责任的媒体早已经澄清了多次,我自己的立场也不中立,而且,仔细阅读那些文章,你会发现往往第一句话就是自相矛盾的呀。
不过,还是有一些企业的朋友不断咨询,甚至包括一位曾经工作于Java组的前同事,以后使用Java是否真的存在法律风险吗?Java未来还会发展吗?看来谣言带来的换乱超出了想象。
有鉴于此,明确一点, Java 仍然免费 !并且针对大家的主要疑问,谈谈个人的观点:
企业用户仍然有可靠途径获取 免费 的JDK,既可以使用Oracle等发布的GPL协议的OpenJDK,也可以使用AdoptionOpenJDK社区等发布的OpenJDK产品,甚至是有能力的用户自己从源码构建!
当然 可以 !这就是正常的软件EOL,OracleJDK 8只是在支持了近5年后,停止了免费更新,注意是“ 更新 ”。继续使用JDK8的用户,和目前停留在JDK 6、7的用户没有什么不同。为方便理解,大家可以对比现在还使用Windows 7或XP的客户,仅是无法获取安全更新,但并不会丧失使用的权力,这取决于用户自己的判断和选择。
这个就要看你使用的是什么JDK了,咨询下相应厂商的策略吧。大多数 企业 用户应该是在使用Oracle JDK,那么就需要订阅Oracle JDK支持服务才可以更新了,当然 个人用户 还可以继续免费更新到2020年12月。其他如Azul、Redhat、IBM等厂商的用户也是需要确认相关路线图,对于JDK 8的用户,这是唯一可能需要掏钱的情况。
不,这纯属无稽之谈,Java开发的应用与OpenJDK的GPL授权没有关系!
不止一个朋友表示了对Java GPL v2 +CPE协议授权的担心,源头似乎是最近某开源项目的宣传卖点,这个只能是佩服其想象力和价值观了,连GPL都能成为攻击点,真是掌握了核心竞争力了~
OpenJDK的GPL授权,只会约束基于OpenJDK源码 生产并发布 JDK 产品 的厂家,而 不是 Java开发的 应用 ,绝大部分用户根本就不可能是JDK生产商,所以这个担心完全没有必要,而且,Java不是今天才开源的,使用GPL授权的开源项目比比皆是,如Linux,这也是业界最普遍、最受欢迎的授权选择之一。
好了,不在这种问题上纠缠了,态度严肃的IT决策者可能一直就觉得这是个笑话,也许大家会好奇, 为什么Java最近引发了如此的困惑呢?
个人认为,这是历史原因和OpenJDK社区正在发生的变化叠加的影响,而且国内的部分自媒体也只在乎是否博眼球:
第一, JDK ! = Oracle JDK
长久以来,由于Oracle提供了近乎“免费”的JDK,让大多数Java用户,尤其是个人和中小企业,产生了这样一种错觉“JDK = Oracle JDK”,尽管,IBM、Azul、Redhat等都有自己的JDK产品公开发布,企业用户也大有人在。这种深度和自然的依赖,导致JDK 8免费支持期的结束令人产生了巨大的不适应。
第二,JDK 8等太成功了,后续的JDK得到采纳还需要一个过程。OpenJDK一个约定成俗的做法是,经过多年免费支持以后,该Oracle JDK版本进入EOL(End of Life),然后让出领导权,由社区接手并主导后续更新事务。
但是,JDK 8经过了近5年的发展,仍然很受欢迎,用户没有准备好,也没有足够动力去升级JDK,更不用提好多还在用JDK 6、7的用户了,这也许是所有基础软件面临的困扰吧。
第三,OpenJDK的权力中心正在向社区转移!Java正在逐步采用更加快速的迭代周期(半年一个大版本),更加开放的产品特性(Oracle开源了ZGC、AppCDS、JFR等)和更积极的社区协作(例如,ProjectSkara项目将把OpenJDK代码库等切换到github)等。
虽然长远来看很可能是利好,但不可避免地带来了困惑,因为开发者需要对Java生态的长久信心,企业IT决策者需要可预计的Java路线图,这些恰恰是往往来源于核心厂商的长期主导,“自由职业者其实最喜欢的就是五险一金!”。
好了,最后再次明确,Java仍然免费,OpenJDK正在变得并且更加开放和活跃,Java/JVM拥有清晰的发展路线图,时间会说明一切。套用官宣用语,Java开发者和IT决策者可以吃下“定心丸”了:-)
参考:
关于这个问题Java Champion早就发表了公开信,但在Google Docs里,你懂的,看这个吧
https://www.infoq.com/news/2018/09/java-support-options-sept18
https://www.oracle.com/technetwork/java/eol-135779.html
https://adoptopenjdk.net/
文中图片来自于Google Image,版权属于原作者。
关于java收费事件官方给出的方法,参考我的另一篇博客:
公共更新结束是一个过程,而不是一个事件(JAVA收费后,使用者如何应对?)