java14早就有了,为什么还有人用java8?
▍java14早就有了,为什么还有人用java8?
为什么14有了,就不用8?
▍java14早就有了,为什么还有人用java8?
甭说java8,现在有的企业用的还是java5,你敢信?
首先我需要说明一点,任何企业所用技术未必是越新越好。技术新只是代表这种技术比原本已有的技术出现时间晚而已,好不好用谁也保证不了。在没有经过验证前就上很容易出问题。
于java而言,实际上从java7之后语法上并没有太大的改变,也就是说即使只用java7之前的版本也完全能满足开发需求。
之所以上java8无外乎是java8新增特性:lambda表达式和Stream流确实能极大简化代码,至于效率提升多少,我反正没感觉出来。而且java8之后的版本都是半年一更,而且现在只是出到java13 , java14应该还是在酝酿中。
再加上有些项目已经运行好几年的,贸然上最新版本,所有工具和插件的兼容性也有待考证。鉴于此,大多数企业用java8也就不足奇怪了。
▍java14早就有了,为什么还有人用java8?
别说Java 8了,就算是Java 5/6现在也是大一堆公司再用。原因很简单,码农想更新老板也不多加钱,出了问题还得加班解决。所以说来说去还是没动力。很多代码都是加班加点写出来的,实现都是一坨翔,这种玩意你让他去升级,谁也不想升级好吧。
当然,假如一家公司实力足够, 项目生命力旺盛,肯定会有意愿升级的。但是要升级也不会升级到14这个临时版本,而是Java 11,这是一个长期支持版,这才是重点版本。
假如你的项目有意图升级的话,最好还是尽量跟着长期支持版升级。假如再拖了好几年,等到下个长期支持版出来,想一次升级到位,那还不如当初跟着升级。有时候升级跨度太大的话,可能还不如重新写一个出来呢。
▍java14早就有了,为什么还有人用java8?
Java的升级迭代越来越快,Java 8之后,每半年差不多一个版本,让人眼花缭乱,但其颠覆性的技术,对研发人员的吸引力不够,做简单的demo还好,但若单纯追求技术,风险太高,如果使用于生产环境,就是更遥远的事情了。
Java 9引入了模块化系统,这是个看起来很美的特性,可是对程序员来说,这是一个破坏性的更新,因为JDK做了模块化,但是很多第三方库没有做模块化, 如果想让自己的项目也模块化,很有可能是一次不断填坑的经历,尤其在使用第三方库的时候。Java 11的ZGC是个有吸引力的特性,它的设计目标是:支持TB级内存容量,GC暂停时间低(<10ms),对整个程序吞吐量的影响小于15%,确实挺让人激动的!如果真的实现了,程序员就可以可劲儿造对象,而不用考虑GC了,可惜这仍然是个实验性质的版本,缺乏技术支撑的稳定性和线上业务的高并发检验, 用起来还是需要一定勇气的。
就个人观点而言,保持线上 jdk 版本维持现状的主要原因有:
1. java8之后,jdk升级迭代的周期缩短,所以同样6个版本,java8到java14和java2到java8的性质是完全不同的。
2. Java8后的除了模块化缺乏颠覆性的新特性,个人研究可以,生产环境使用动力不足。
3. jdk官方虽然宣称向前兼容,但是由于java中大量框架的使用,无法保证升级后一定没有问题,一旦有问题,排查成本异常高,引起的线上问题也是需要担责的。
4. 线上运行的jdk版本经过了时间和业务的检验,在非特别必要的条件下,保持现状是最好的选择。新项目中可以使用新版本,但也需要和团队技术栈保持一致,个人感觉jdk8已够用。
总的来说,jdk升级是有风险的,包与包兼容向下兼容需要全量功能回归检验,相较于锦上天花,升级带来的兼容性和线上问题,让研发感觉维持现状是最好的选择。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。
▍java14早就有了,为什么还有人用java8?
说换的真的用过么,7和8还好说,8换11jdk的基础包路径都改了,8的代码11已经都编译不过了你要换嘛?而且最重要的zgc一直没release,花人力去换你觉得都没事干么……
------------------
推荐阅读:
林黛玉的大红羽纱面白狐皮里的鹤氅,宝琴的凫靥裘,哪一个更为珍贵?