开发者其实不太需要关注 Java 收不收费
作为继 Java 8 之后的第一个 LTS 版本,Java 11 的发布引起了广泛关注,一方面是因为这个版本带来了一些重要的新特性,比如热议的 ZGC、HTTP/2 Client、Flight Recorder 等,在内存管理与 JVM 诊断/Profiling 等方面都有很强的能力突破。 另一方面是因为 Oracle 针对 Java 的一系列动作,比如宣布变更版本迭代周期、修改了商业支持方式,推出订阅模式、在两种不同的 License 下提供 JDK 发布版……这持续性的变化让大家不断困惑,开发者不知道还能不能愉快地免费使用 Java,也不清楚接下来将会面对一些什么。 虽然 Oracle 官方有解释,并且也有 30 几位 Java 社区领袖与专家联名发表了一篇文章,详细分析了 Java 其实还是免费的等相关问题,,但是因为普遍存在语言与网络障碍,并且也有理解上的偏差,再加上一些自媒体的过度制造焦虑,使得本身就复杂的问题变得更加难以理解。 在前阵子开源中国举办的技术会议“源创会年终盛典”上,资深 Java 专家杨晓峰为与会者带来了针对 Java 11 的最新解读,带领大家重新认识了现代 Java。 杨晓峰是 OpenJDK Committer,目前在京东担任大数据中心架构师,曾领导 Oracle 北京 Java 核心类库等团队,参与甚至负责过 Java 8~11 核心类库等部分新特性的相关任务。 我们借此机会邀请他为大家把 Java 这令人困扰的事理清楚了。 杨晓峰一开始就直接来了一句:Java 还是免费的。话是这么说,但实际上这并不足以打消疑虑,也存在一些更加具体的问题需要解释,具体是怎么回事呢? 相关概念首先要理清一些概念,一方面是 Oracle JDK 面向的用户类型:
当前大部分使用 Oracle Java 的开发者/所在公司是属于哪一种类型的用户呢?是第二种——商业用户。 再来看看关于“Oracle 的 Java”。一方面,Oracle 主导着 OpenJDK 社区,它本身自己做了一个叫 Oracle JDK 的产品,这是它的商业产品,也是目前最为广泛使用的 JDK;另一边,Java SE 9 以来,Oracle 也提供 Oracle 的 OpenJDK 发行版 Oracle’s OpenJDK,而这个 Oracle's OpenJDK 就是完全开源免费的,可以用于商业用途。 杨晓峰解释: Java 8 更新不再免费 像前边所说,关于 Java 的使用困惑是一波接一波的,首先是 Oracle 公告从 2019 年 1 月以后,将不再为商业用户提供免费的 Java SE 8 更新服务。商业用户可以使用 Oracle Java SE 订阅模式继续享受更新支持;而个人用户不受影响,还可以继续享受免费更新到 2020 年 12 月。 杨晓峰解释:
所以实际上,开发者其实不太需要去关注 Java 8 收不收费这么一个问题,真正需要关注的人是企业 IT 决策者。一方面,个人开发者使用 Java 8 还是一样免费,还是一样可以获得更新支持;另一方面,所谓的收费,其实指的是在 2019 年 1 月之后的更新要收费支持,Java 8 本身就还是免费的,而要不要使用订阅模式去继续获得更新这是 IT 决策者要考虑的。 那么企业 IT 决策者可以怎么考虑呢? 杨晓峰介绍:
同时我们也注意到,因为目前已经是 2019 年 1 月份,也就是到了 Java 8 免费更新结束的日子,有一些公司的响应也被公布出来,比如这个: 杨晓峰表示:“这个公告比较专业也比较谨慎,我认为 8u201/202 是最后的一个免费 Oracle JDK 8 更新。涉及到 License 相关的决策,严格来说这不仅是个技术决定,更是个法务相关的决定。” 所以,总结下来,真正需要关注 Java 免费问题的是企业 IT 决策者,而且他们目前有上边讲的几种方案可选:
杨晓峰还强调:“授权(License)和付费是商业行为,是企业的 IT 决策,本就应该是由专业人士来做的,耐心、客观一些,不要被自媒体收智商税。” 发布周期变化其实 Oracle 早在 2017 年 9 月份就宣布改变 JDK 版本发布周期,这之后也陆续发布了 Java 10 与 11,12 也快要到来。 (编辑:ASP站长网) |