您的位置 首页 java

免费的JAVA没能挽救SUN的没落,收费后Oracle是起还是落?

过去三十年,科技公司的潮起潮落本是一种常态,但在很多程序员心里, SUN 这家公司的地位却很独特,因为Sun曾经发明了 JAVA

而Java一度是程序员的梦想阶梯,从1995年诞生以来,在过去24年的时光里,长期稳坐最热门语言宝座的Java已经形成了庞大的生态圈,因为Java技术具有卓越的通用性、高效性、安全性和平台移植性,从PC时代到移动时代,Java无处不在。

其实Java的生态圈能够如此繁荣,能够长期受到开发者的喜爱,这与Java长期的免费不无关系,很多开源的社区和项目都是基于Java免费这一基础条件。很多企业也是基于开源的Java构建了后台系统。

但如今,天似乎要变了。

收费的Java将何去何从?

Sun曾经是一家伟大的公司,当初Sun开发Java的初衷是:在互联网的时代,提供一种和机器无关,和操作系统也无关,可以运行在任何平台上的语言。

这一设想无疑是成功的,经过了20多年的发展,Java已经成为一个巨大无比的 软件开发平台 ,这些年很多重要的开源项目都是基于Java来实现的。

技术永远比公司的生命周期更长,当年如日中天的Sun,衰落的速度更为惊人,2009年就被Oracle收购,从历史长河中消失,而Oracle所看中的其实就是Java。以至于,Oracle的CEO 拉里·埃里森 将Java称作是:“有史以来收购的最重要的资产,没有之一。”

所以,从商业目的来思考,Oracle一定不会任由Java就这样免费下去。早在2016年,Oracle开始酝酿对Java收费。当时的策略是:Java SE是免费的,但是Java SE Advanced Desktop组件、Advanced 组件和 Suite 是收费的。

就在去年底,Oracle正式宣布,“2019年1月之后”,如果没有他们的商业许可证,Java SE 8 将不会再收到公开更新,也将无法用于“商业,商业或生产用途”。这表示,未来开发者还想使用 JDK 8,Oracle将不会提供免费的技术支持,需要另外收费。

如果还想继续免费使用Java 8,你只能做如下两种选择:要么不再更新,继续无限期地使用 Oracle JDK8 ;要么使用来自其他服务商的免费 Java SE 8或Open JDK 8二进制分发版。

在诸多开源社区当中,很多开发者都表现出了类似的担忧,Oracle JDK的收费,似乎会带来一些阵痛,尤其是那些已经部署了Java服务器的企业客户。

最大的一个疑问就是成本的提升。对于Java的重度商用客户来说,要继续使用Oracle的服务,必然会带来了成本的大幅上升,而重要的是这些客户之所以当初选择了Java,看中的因素之一就包括成本。他们将何去何从,如何选择?

其次是Java逐渐从开源转向闭源,尽管这个过程还较为缓慢,但Oracle对Java的目的就是商业化,未来完全走向闭源也存在很大的可能。

最后是Oracle对Java未来的升级和服务进行收费,在成本提升之外,这会导致Java客户整体的使用体验变差,这些客户极有可能投入到其他开源JDK的怀抱。

Java的未来应属于生态

Oracle的官方声明显示:对Java 8的官方支持时间持续到2020年12月,之后将不再为个人桌面用户提供 Oracle JDK 8的修复更新;在 2019年1月之后,不再提供免费的商业版本更新,届时想要继续获得Oracle的商业支持和维护,需付费订阅。

好在Java SE已经形成了良好的生态,开发者还可以选择由第三方服务商提供的Java SE 实现,比如IBM、Azul、Eclipse、RedHat、SAP 等等。

我们知道,绝大多数Java用户使用的都是非商业购买的Java版本,他们并未与Oracle或任何其它供应商签署正式的支持合同。Oracle的商业化战略的目的,就是迫使企业客户转向签订商业支持合同。

这给了其他提供Open JDK的品牌以机会,IBM就是其中非常重量级的一家。

首先,Java的技术体系非常成熟,有研究表明,来自于不同提供商的Java SDK都是严肃的产品,在执行标准Java代码上是基本相同的,这意味着它们之间的共性要远远大于它们之间的差异。

而IBM从一开始的Sun时代,直到随后其被Oracle收购都一直是Java授权的长期持有者。IBM除了拥有对Java技术的授权外,还具有使其提供的Java版本符合Java Compatibility Kit (JCK)的义务,同时IBM已经独立地实现了Java中许多符合规范的组件,这保证了IBM提供的Java服务会保有很强的一致性,用户对此丝毫不必担心。

其次,OpenJDK是一个开源代码库,包含了源自Sun开发的所有标准化Java类库。这代表了被称为“商业Oracle Java”的98%的部分,而其他2%的部分是Oracle所称的“封闭代码”组件,这些组件不是开放源代码的。而IBM Java,通常打包在IBM软件中,并作为IBM软件一部分进行发布的各个IBM Java版本。在这部分中包含了Open JDK中所没有的Oracle的2%的封闭代码的商业扩展。

客观的说,Oracle的收费策略是无可厚非的,但它也必然会留给IBM这些竞争对手切入的良机,Java成功是生态的成功,IBM这样的生态贡献者,理应得到回报。

如何衡量IBM Java的价值?

如果说前两点证明了IBM Java完全可以替代Oracle,那么第一个疑问就是:两者之间能否顺畅的迁移。

实际上,在将应用程序从Oracle Java迁移至Open JDK环境时,由于同样版本的两者具有相同的Open JDK功能,因此不应该存在功能方面的问题。从相同版本的IBM Java环境出发进行迁移的话,尽管IBM Java也具有同样的Open JDK部分,但是相对于Open JDK之外还包含了一些额外的扩展,例如各种IBM SecurityProvider。在实践中,对于一个基于标准J2SE API的应用程序来说,从IBM JDK迁移至Open JDK并不会比从Oracle JDK环境中迁移更复杂。

与此同时,IBM Runtimes for Business提供了对Adopt上的“LTS”(Long Term Support)Java构建(目前是Java 8.0)的支持,不提供对IBM Java的支持。这是两个独立的构建,具有不同的打包系统和分发环境。即便是从源代码一层来说两者功能是相同的,但仍是两个独立的发布流程。

既然迁移也不成问题,那最后的比较就在于:成本和体验。

据我了解,成本上,IBM Java本身的费用就要比Oracle低大概2/3左右。不仅如此,IBM还提供了免费的工具和免费服务以及免费升级。对于本身苦于Java收费之后导致成本激增的用户来说,IBM显然是一个很好的选择。

更何况IBM提供的产品会更丰富,比如IBM Runtimes for Business除了支持Adopt发布的OpenJDK version 8 with EclipseOpenJ9外,还支持Java应用监控(APM Server及J2SE Data Collector)。

而计费体系则更能体现服务体验,对比Oracle,IBM提供的计费体系更灵活。比如Oracle是从下载开始就收费,而IBM是以实际的商业应用来收费。在其他收费服务商,无论是虚拟机还是普通服务器,IBM都会比Oracle灵活很多。这对于企业的业务拓展来说,无疑是体验更好,成本更优。

所以不难总结,Java的商业化趋势已不可逆转,而IBM作为Java生态中不可或缺的组成部分,是众多企业客户和开发者一个非常重要的选择。

文章来源:智云一二三科技

文章标题:免费的JAVA没能挽救SUN的没落,收费后Oracle是起还是落?

文章地址:https://www.zhihuclub.com/198299.shtml

关于作者: 智云科技

热门文章

网站地图