Fork me on GitHub

年末展望:Oracle 对 JDK收费和.NET Core 给我们的机遇

2018年就结束了,马上就要迎来2019年,这一年很不平凡,中美贸易战还在继续,IT互联网发生急剧变化,大量互联网公司开始裁员,微软的市值在不断上升 ,在互联网公司的市值下跌过程中爬到了第一的位置,我们展望2019年,相信前方的坑很多,这里想聊下一个和我们的工作生活息息相关的问题,那就是Oracle 对 JDK收费和.NET Core 给我们的机遇。 

Oracle宣布,"2019年1月之后",如果没有商业许可,Java SE 8公开更新将无法用于"商业,商业或生产用途"。组织现在需要对运行Java SE 8的所有软件进行评估,并开始计算明年他们正在寻找的潜在账单。

图片截自

https://www.oracle.com/assets/java-se-subscription-pricelist-5028356.pdf

国内又有那些互联网公司是使用Java作为核心技术的公司呢?这些公司是否给Oracle付费了,是否所有服务器都付费了呢?中国的政府机构又有多少需要给Oracle付费购买授权?中美贸易战的90天限期谈判在继续, 打击侵犯知识产权,中国已经在行动。新加坡亚洲新闻台报道说,中国38个部门12月4日发布联合政策,以应对一系列侵犯知识产权的行为。中国拟在这一领域建立一个“社会信用体系”,公布全国范围内严重侵犯知识产权者的名单。12月5日耿爽表示,中美双方关于知识产权问题的讨论一直在进行,从没有停止过。中方在这一问题上的立场和态度,美方是非常清楚的。中方也将继续致力于在下一步磋商中,同美方共同探讨妥善解决有关问题的办法。

阿里巴巴

腾讯

唯品会

京东

快手

携程

美团

....

 

这些互联网只有阿里巴巴有自己的AJDK(基于openJDK 魔改),其他的小公司呢? 当然其实并不一定摇给钱,只要JDK永远只使用JDK 8u192版本。

首先我们要搞清楚JDK到底是什么?

JDK != Oracle JDK

由于Oracle长久以来提供近乎免费的 JDK,让大多数Java的用户错误的以为JDK就是 Oracle公司的那个 Java Development Kit。其实,Oracle也有一个免费的社区版JDK:OpenJDK。另外,IBM、Azul、Redhat等都有自己的JDK产品公开发布,企业用户也大有人在。

前2年Android系统就因为Java的授权问题被Oracle给告了。而机智的Oracle这次又在JDK的收钱套路上给用户准备好了律师函,Oracle律师团队整装待发。

其次,我们要搞清楚对我们的影响是什么?

从Oracle JDK发布以来,一直采取的策略是,经过多年的免费支持以后,该Oracle JDK版本EOL(End of life),然后让出领导权,由社区接手并主导后续更新事务。 但是,Oracle JDK 8经过了近5年的发展,仍然很受欢迎,用户没有准备好,也没有足够动力去升级,更不用提好多还在用JDK 6、7的用户了。

此次,OracleJDK 8只是在支持了近5年后,停止了免费更新,注意是"更新"。继续使用JDK8的用户,和目前停留在JDK 6、7的用户没有什么不同。为方便理解,大家可以对比现在还使用Windows 7或XP的客户,仅是无法获取安全更新,但并不会丧失使用的权力,这取决于用户自己的判断和选择。

那如果还想要得到JDK8 的更新怎么办?

这个就要看你使用的是什么JDK了,咨询下相应厂商的策略吧。大多数企业用户应该是在使用Oracle JDK,那么就需要订阅Oracle JDK支持服务才可以更新了,当然个人用户还可以继续免费更新到2020年12月。其他如Azul、Redhat、IBM等厂商的用户也是需要确认相关路线图,对于JDK 8的用户,这是唯一可能需要掏钱的情况。

那么,有人说 "我公司想要使用JDK 11等新版本,但不想付费,怎么办?"

企业用户仍然有可靠途径获取免费的JDK,既可以使用Oracle等发布的GPL协议的OpenJDK,也可以使用AdoptionOpenJDK社区等发布的OpenJDK产品,甚至是有能力的用户自己从源码构建!

引申:"Java是GPL授权,我是不是要将Java开发的应用也开源?" 不,这纯属无稽之谈,Java开发的应用与OpenJDK的GPL授权没有关系!OpenJDK的GPL授权,只会约束基于OpenJDK源码生产并发布JDK产品的厂家,而不是Java开发的应用,绝大部分用户根本就不可能是JDK生产商,所以这个担心完全没有必要,而且,Java不是今天才开源的,使用GPL授权的开源项目比比皆是,如Linux,这也是业界最普遍、最受欢迎的授权选择之一。微软为Xamain的Android开发发布了自己的微软OpenJDK, 可以在安装Visual Studio 的移动开发里面看到,我猜测微软也会发布全功能的OpenJDK, 毕竟Visual Studio 2019和 Visual Studio code支持Java开发了。

众多没有能力开发维护OpenJDK的公司完全可以转向更具有竞争力的.NET Core,.NET Core从属于.NET基金会,由微软进行官方支持。使用最宽松的MIT和Apache 2开源协议,文档协议遵循CC-BY。这将允许任何人任何组织和企业任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版 权和许可提示,后者协议将会除了为用户提供版权许可之外,还有专利许可,并且授权是免费,无排他性的(任何个人和企业都能获得授权)并且永久不可撤销,用户使用.NET Core完全不用担心收费问题,你可以很自由的部署在任何地方,。

现在是云计算时代,.NET Core已经磨练5年时间,准备好了迎接云计算时代的云原生应用开发,云系统中,用更少的硬件为更高密度的用户提供服务是非常重要的。应用程序的占位面积越小,密度越高。容器只包含应用程序及其依赖项。文件大小要小很多倍,启动时间以秒为单位,只有应用程序加载到内存中,容器保证在任何主机上工作。鉴于容器的明显优势,.NET Core的设计决定之一就是使其成为模块化。这意味着你的.NET Core应用程序可以被"发布",使得它和它的所有依赖关系在一个地方,这很容易放入容器。

2018年8月我看好.NET Core的未来发展前景,离开工作11年的腾讯创立一家以.NET Core技术为主的公司在中国地区开展帮助企业从.NET 转向.NET Core的咨询服务,目前为止,我已经服务四家客户,客户的分布很典型,其中不凡大企业,也有进入B轮的工业互联网创业公司,也有传统的医疗行业,他们都有共同的特点是当年创业赚钱的业务系统使用.NET技术构建的,现在面对的一个环境,大量的公司在被忽悠转Java,他们自己也有系统使用Java构建,但是和.NET Core相比较,整体的成本增长很可观,例如项目的开发周期和团队规模被放大1/3,运营的服务器成本放大1倍以上,同样是跑在K8s集群上,.NET Core应用所需资源是Java应用的1/4到一半。

2018年年末的听到大量的互联网公司裁员消息,但是我服务这几家客户都有很强烈的招聘.NET Core开发人员的需求,这是大量学习Java的同学转向.NET Core平台的好时机,我一直认为做Java开发的同学比做传统.NET的人员更容易用好.NET Core, Java相比C#,在使用了C#后你不会再去想用Java,而且.NET Core有你非常熟悉的Spring Cloud那一套约定的编程范式,然而见过很多.NET 开发人员, 依赖注入都没用过,更别说用Linux了。在这里我没有贬低.NET开发人员的意思,技术更多的还是要靠自己的努力,我们努力一起成为一群不被时代抛弃的程序猿。

posted @ 2018-12-30 10:46  张善友  阅读(16372)  评论(104编辑  收藏  举报