加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

开发者其实不太需要关注 Java 收不收费

发布时间:2019-02-15 03:38:03 所属栏目:优化 来源:h4cd
导读:作为继 Java 8 之后的第一个 LTS 版本,Java 11 的发布引起了广泛关注,一方面是因为这个版本带来了一些重要的新特性,比如热议的 ZGC、HTTP/2 Client、Flight Recorder等,在内存管理与 JVM 诊断/Profiling 等方面都有很强的能力突破。 另一方面是因为 Or
副标题[/!--empirenews.page--]

作为继 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客户,主要是指那些购买了 Oracle Java SE 相关服务支持的用户,比如,通过前边讲到的订阅模式购买服务的客户。
  • 商业用户,免费使用 Java 用于商业目的的实体。
  • 个人用户,在个人电脑上,免费使用 Java SE,以及不用于商业目的开发人员。

当前大部分使用 Oracle Java 的开发者/所在公司是属于哪一种类型的用户呢?是第二种——商业用户。

再来看看关于“Oracle 的 Java”。一方面,Oracle 主导着 OpenJDK 社区,它本身自己做了一个叫 Oracle JDK 的产品,这是它的商业产品,也是目前最为广泛使用的 JDK;另一边,Java SE 9 以来,Oracle 也提供 Oracle 的 OpenJDK 发行版 Oracle’s OpenJDK,而这个 Oracle's OpenJDK 就是完全开源免费的,可以用于商业用途。

杨晓峰解释:

OpenJDK 是基于 GPL v2 的开源项目,从 Java 7 开始,就是 Java SE 的官方参考实现。狭义上的 OpenJDK 往往是指基于 OpenJDK 构建的发行版,各个主流厂商的 JDK 产品基本上都是基于 OpenJDK 源码,或多或少增加自己的定制内容。

Oracle JDK 是 Oracle 提供的商业 JDK 实现,是目前应用最广泛的 JDK,在 JDK 11 之前,Oracle JDK 与 Oracle's OpenJDK 除了一些强大的商业特性,还有 CA 根证书等便利性内容和细微差别。

从 JDK 11 开始,Oracle JDK 使用原来的商业 BCL License,而 Oracle's OpenJDK 开始独立改用 GPL v2+CPE License,二者提供同样的功能,本质上没有不同,但是不同的 License 针对不同用户。

Java 8 更新不再免费

像前边所说,关于 Java 的使用困惑是一波接一波的,首先是 Oracle 公告从 2019 年 1 月以后,将不再为商业用户提供免费的 Java SE 8 更新服务。商业用户可以使用 Oracle Java SE 订阅模式继续享受更新支持;而个人用户不受影响,还可以继续享受免费更新到 2020 年 12 月。

杨晓峰解释:

这本来其实就是一个正常的软件生命周期结束(EOL),不必过度解读,Oracle 已经免费支持了 5 年 JDK 8 了。

OpenJDK 有一个约定成俗的做法,就是经过多年免费支持以后,Oracle JDK 版本会进入 End of Life,也就是生命周期结束 EOL,然后由社区接手并主导后续更新事务。

之所以目前只有这个 Java 8 的 EOL 导致恐慌,主要是因为这个 Java 8 太成功了,相当多用户还没有准备好,也没有足够动力去升级 JDK,这就像目前还使用 Windows XP 的用户,无法获取官方更新,但是还是很多用户停留在上面。

另外一个不容忽视的原因是,Oracle 显著缩短了其提供后续 JDK 版本的免费支持周期(目前建议为半年),社区会承担长期支持版本(LTS,Long-Term-Support)的后续更新工作。

所以实际上,开发者其实不太需要去关注 Java 8 收不收费这么一个问题,真正需要关注的人是企业 IT 决策者。一方面,个人开发者使用 Java 8 还是一样免费,还是一样可以获得更新支持;另一方面,所谓的收费,其实指的是在 2019 年 1 月之后的更新要收费支持,Java 8 本身就还是免费的,而要不要使用订阅模式去继续获得更新这是 IT 决策者要考虑的。

那么企业 IT 决策者可以怎么考虑呢?

杨晓峰介绍:

  • 付费的选项,除了 Oracle,还有其它厂商也提供了商业的 JDK 发行版,包括 Azul、IBM等,具体选择要看企业自己的判断。
  • 不希望付费的用户,Java SE 9 以来,Oracle 也提供 Oracle 的 OpenJDK 发行版 ,基于 GPL v2 协议,总体免费更新周期比较短,AdoptOpenJDK 会提供更长期的免费支持。当然,也有个别厂商声明会提供长期的 JDK 8 更新,可以参考 Amazon Corretto。

同时我们也注意到,因为目前已经是 2019 年 1 月份,也就是到了 Java 8 免费更新结束的日子,有一些公司的响应也被公布出来,比如这个:

开发者其实不太需要关注 Java 收不收费

杨晓峰表示:“这个公告比较专业也比较谨慎,我认为 8u201/202 是最后的一个免费 Oracle JDK 8 更新。涉及到 License 相关的决策,严格来说这不仅是个技术决定,更是个法务相关的决定。”

所以,总结下来,真正需要关注 Java 免费问题的是企业 IT 决策者,而且他们目前有上边讲的几种方案可选:

  • 使用订阅服务,花钱获得 Java 8 更新
  • 花钱使用其它厂商提供的商业 JDK
  • 选一个 OpenJDK 发行版迁移过去,由开源社区提供更新支持
  • 保持在 8u201/202 或者之前版本

杨晓峰还强调:“授权(License)和付费是商业行为,是企业的 IT 决策,本就应该是由专业人士来做的,耐心、客观一些,不要被自媒体收智商税。”

发布周期变化

其实 Oracle 早在 2017 年 9 月份就宣布改变 JDK 版本发布周期,这之后也陆续发布了 Java 10 与 11,12 也快要到来。

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读