年末展望: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开发人员的意思,技术更多的还是要靠自己的努力,我们努力一起成为一群不被时代抛弃的程序猿。
年末展望:Oracle 对 JDK收费和.NET Core 给我们的机遇的更多相关文章
- Install Oracle Java JDK/JRE 7u55 on Fedora 20/19, CentOS/RHEL 6.5/5.10
What’s new in Sun/Oracle Java 7 VM Compressed 64-bit object pointers Garbage-First GC (G1) JSR 292: ...
- apt 安装 Oracle Java JDK
apt 安装 Oracle Java JDK 8/10 "Linux Uprising"团队维护一个PPA存储库,其中包含适用于所有当前Ubuntu版本的Oracle Java 1 ...
- Ubuntu16.04中把默认JAVA设置为Oracle的JDK!
系统当中已经存在了OpenJDK,默认的JDK是它,并不是Oracle的JDK,执行下面操作就可以把Oracle的JDK设置为默认的了! 首先假设我们已经把Oracle的JDK安装和配置好了,但是就是 ...
- 三句话看明白jdk收费吗
对于从oracle下载的jdk8:JDK8u200(含)以下版本不收费. 对于从oracle下载的jdk11:JDK 11.0.0不收费,JDK 11.0.1不收费. 对于openjdk:免费 ——— ...
- 转://oracle 软件的收费模式
Oracle软件本身是免费的,所以任何人都可以从Oracle官方网站下载并安装Oracle的数据库软件,收费的是License,即软件授权,如果数据库用于商业用途,就需要购买相应Oracle产品的Li ...
- 在WIN10打造成能运行Oracle的JDK的Linux
1.开发WindowsFeature(程序)里的Linux扩展接口(其实从Windows2008发布前试用时,就发现悄悄藏着一个Unix接口选项). 2.在windows应用商店可以下载到Ubuntu ...
- Centos 安装 Oracle Java JDK
Centos 安装 jdk 创建目录,用来存放下载的 JDK cd /usr/local mkdir -p tools cd tools 下载JDK,后边的下载地址你可以到 orcal 官网去获取最新 ...
- oracle之 安装oracle指定jdk 或者如何解决提示框显示不全
在centos7下,安装oracle 11g. gnome的桌面.各个参数配置好后,运行runInstaller命令.此时弹出安装界面,在一次次点击[下一步]的时候,中间会弹出对话框,可是对话框显示不 ...
- 在Ubuntu 18.04中安装Oracle Java JDK 8
Webupd8 Team维护一个PPA存储库,其中包含适用于所有当前Ubuntu版本的Oracle Java 8安装程序脚本. 1.打开终端并运行命令添加PPA: sudo add-apt-repos ...
随机推荐
- Oracle-10:分析函数
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 分析函数: 分析函数,可以修改排序的规则!!!!!!!!!!!!!!!!!!!!!!!! 首先把数据库脚本给放 ...
- swoft 源码解读【转】
官网: https://www.swoft.org/ 源码解读: http://naotu.baidu.com/file/814e81c9781b733e04218ac7a0494e2a?toke ...
- 在Python中用Request库模拟登录(四):哔哩哔哩(有加密,有验证码)
!已失效! 抓包分析 获取验证码 获取加密公钥 其中hash是变化的,公钥key不变 登录 其中用户名没有被加密,密码被加密. 因为在获取公钥的时候同时返回了一个hash值,推测此hash值与密码加密 ...
- 运维监控利器Nagios之:nagios配置详解
http://ixdba.blog.51cto.com/2895551/752870 一.nagios配置过程详解 1.nagios默认配置文件介绍 nagios安装完毕后,默认的配置文件在/usr ...
- Python反序列化 pickle
# 若需要处理更复杂的数据, 用pickle. pickle只有在Python里能用, 其它语言不行. # 序列化. import pickle def sayhi(name): print('hel ...
- 开机出现loading Operating System的解决方案
今天清理机箱之后开机发现电脑屏幕出现以下界面,提示的内容是"正在加载操作系统,磁盘启动失败,请插入系统盘..",出现这种状况的原因有以下几种: 1.主引导的扇区的损坏或者信息的错乱 ...
- BZOJ_2809_[Apio2012]dispatching_可并堆
BZOJ_2809_[Apio2012]dispatching_可并堆 Description 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿.在这个帮派里,有一名忍者被称 ...
- Spring中bean的注入方式
首先,要学习Spring中的Bean的注入方式,就要先了解什么是依赖注入.依赖注入是指:让调用类对某一接口的实现类的实现类的依赖关系由第三方注入,以此来消除调用类对某一接口实现类的依赖. Spring ...
- .Net Remoting 调用远程对象
根据需求,我们的系统必须以C/S方式构建,而且是三层架构,这样一来,就出现了服务器端和客户端通信的问题. 为了解决双方的通信问题,还要考虑效率.性能等方面,经过分析.试验,我们根据效率.移植.开发难易 ...
- 我和Python的Py交易》》》》》》数据类型
Python里的变量 ---门牌 Python在使用变量之前无须定义它的类型,但是必须声明以及初始化该变量. Python中给变量赋值就是声明,初始化变量(也就是创建一个相应数据类型的对象,而那些数据 ...