Java 14 都要来了,为什么还有这么多人固守Java8?
作者:刘欣
从Java 9开始,Java版本的发布就让人眼花缭乱了。
每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,Java 14就要来了。
说实话,这种频繁的发布有点儿让人审美疲劳,每次我看到介绍Java新版本,新特性的文章也没兴趣点开看了。
在这么多的版本中,只有Java 8, Java 11 和未来的Java 17 是长期支持版本(LTS),Oracle会支持3年,其他的只会支持6个月,新版本一出,就放弃老版本的技术支持。
这种快速的发布有好处吗?
有 ! 小步快跑一直是我们软件开发的利器,采用迭代的方式,每次发布一部分功能,推向开发人员去验证,典型的敏捷思路。
但是这种好处更有利于JDK的开发者,对使用Java的个人和公司来说,想要跟上每六个月就要升级的步伐,实在是太难了。JDK是个非常核心的基础设施, 除了安全漏洞,谁没事去升级生产环境的JDK啊?出了问题谁负责?
所以,按道理讲大家都会去找那些LTS的版本来升级,例如Java 11, 但是事实证明大部分人还在固守Java 8 :
这个调查显示,使用Java 8的公司和程序员高达80%, 这是为什么呢?大家为什么不升级到Java 11呢?
我个人觉得主要原因是对开发有利的重大特性升级很少,吸引力不够。
在过去的十几年中,Java相继引入的泛型、注解、NIO、函数式编程等核心功能,极大地影响了应用程序开发的方式,你能想象现在的Java中没有注解会是什么样子吗?
这几年的Java版本中,就缺乏这种重大功能的升级了,我把我有点印象的功能升级列一下:
注意黑体的这几项, Java 9引入了模块化系统,这是个看起来很美的特性,可是对程序员来说,这是一个破坏性的更新,因为JDK做了模块化,但是很多第三方库没有做模块化, 如果想让自己的项目也模块化,很有可能是一次不断填坑的经历,尤其在使用第三方库的时候。
Java 11的ZGC是个有吸引力的特性,它的设计目标是:支持TB级内存容量,GC暂停时间低(<10ms),对整个程序吞吐量的影响小于15%,确实挺让人激动的!如果真的实现了,程序员就可以可劲儿造对象,而不用考虑GC了,可惜这仍然是个实验性质的版本。
至于局部变量类型推导,也只是方便了变量的声明而已。
一个JDK的版本如果想被广泛采用,一定得能提升开发效率(如泛型、注解),带来变革,这样才有吸引力, 如果给程序员们带来了麻烦, 大家就会用脚投票了。
Java 14 都要来了,为什么还有这么多人固守Java8?的更多相关文章
- Java 14 开箱,它真香香香香
Java 14 已经发布有一周时间了,我准备来开个箱,和小伙伴们一起来看看新特性里面都有哪些好玩的.我们程序员应该抱着尝鲜.猎奇的心态,否则就容易固步自封,技术停滞不前.先来看看 Java 14 都有 ...
- Java 14 可能带来什么新特性?
JDK/Java 13 在一个月前已经发布,该版本带来了 5 大新特性,笔者观察到其中的 Text Blocks(文本块)特性似乎被讨论最多. 文本块特性与常见的 Python "" ...
- Java 14 令人期待的 5 大新特性,打包工具终于要来了
随着新的 Java 发布生命周期的到来,新版本预计将于 2020 年 3 月发布,本文将对其中的 5 个主要特性作些概述. Java 13刚刚发布给开发人员使用不久,最新版本的JDK于2019年9月发 ...
- Java 14 有哪些新特性?
记录为 Java 提供了一种正确实现数据类的能力,不再需要为实现数据类而编写冗长的代码.下面就来看看 Java 14 中的记录有哪些新特性. 作者 | Nathan Esquenazi 译者 | 弯月 ...
- Java 14 发布了,可以扔掉Lombok了?
2020年3月17日发布,Java正式发布了JDK 14 ,目前已经可以开放下载.在JDK 14中,共有16个新特性,本文主要来介绍其中的一个特性:JEP 359: Records 官方吐槽最为致命 ...
- Java 14 发布了,再也不怕 NullPointerException 了!
2020年3月17日发布,Java正式发布了JDK 14 ,目前已经可以开放下载.在JDK 14中,共有16个新特性,本文主要来介绍其中的一个特性:JEP 358: Helpful NullPoint ...
- Java 8 到 Java 14,改变了哪些你写代码的方式?
前几天,JDK 14 正式发布了,这次发布的新版本一共包含了16个新的特性. 其实,从Java8 到 Java14 ,真正的改变了程序员写代码的方式的特性并不多,我们这篇文章就来看一下都有哪些. La ...
- Java 14 来势汹汹,这回让空指针无处遁形!!
上篇:Java 14 之模式匹配,非常赞的一个新特性! 相信在坐的每一位 Java 程序员都遇到过空指针异常: NullPointerException(NPE),不甚其烦. 栈长之前也分享几篇避免空 ...
- JDK/Java 14 发布
3 月 17 日,JDK/Java 14 正式 GA. 此版本包含的 JEP(Java/JDK Enhancement Proposals,JDK 增强提案)比 Java 12 和 13 加起来的还要 ...
随机推荐
- mysql 安装完以后没有mysql服务
用管理员身份打开命令控制台(cmd),然后将mysql的安装文件的路径打开(bin文件的路径),然后再路径下打上mysqld.exe -install, 会出现提示 Service successf ...
- 51nod 1445:变色DNA 最短路变形
1445 变色DNA 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 有一只特别的狼,它在每个夜晚会进行变色,研究发现 ...
- GNS3 icmp之严格路由
路由配置: icmp记录路由抓取出接口的IP地址,最多可以抓取9个.ip协议头中的options为40个字节 R1 : conf t int f0/0 no shutdown ip add 192.1 ...
- Maven添加Tomcat插件实现热部署
Maven热部署,顾名思义就是可以不影响项目在服务器中的运行情况,可以实现项目代码的更新,减少启动,编译时间,达到快速开发的目的,也不需要手动拷贝war包到远程项目,可以直接将项目以及war包部署到远 ...
- PHP使用ElasticSearch做搜索
PHP 使用 ElasticSearch 做搜索 https://blog.csdn.net/zhanghao143lina/article/details/80280321 https://www. ...
- 如何在PHP中进行会话处理?
在PHP中会话处理是一个很重要的概念,它允许用户信息在网站或应用程序的所有页面上保持不变.下面本篇文章就来带大家学习一下PHP中会话处理的基础知识,希望对大家有所帮助. PHP中什么是会话(sessi ...
- ASP.NETCore -----导出Excel文件并下载
本事例分为nopi(安装DotNetCore.NPOI)下载和EPPlus(EPPlus.Core.dll)下载,其中npoi下载演示的是根据执行的模板进行数据下载 npoi帮助类NpoiExcelU ...
- 【剑指Offer】面试题32 - I. 从上到下打印二叉树
题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3 ...
- Makefile入门1
Linux中的编译脚本Makefile的讲解设计 概念 编译控制脚本(.c.h----->bin) Makefile最终要的是清晰编译链接的整个过程 Makefile的优化设计 工作原理 mak ...
- 每天一点点之vue框架学习 - uni-app 修改上一页参数
方法一:使用微信提供的 getCurrentPages() 来实现 // 更新上一级的数据 getPrevData(){ var pages = getCurrentPages(); var curr ...