9

Java 14 都快来了,为什么还有这么多人固守Java 8? - 博文视点

 4 years ago
source link: http://www.broadview.com.cn/article/419635?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Java 14 都快来了,为什么还有这么多人固守Java 8?

20013e9433d58d9d8e96

从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个月,新版本一出,就放弃老版本的技术支持。

2001c90dd355af3a7f34

这种快速的发布有好处吗?

有 ! 小步快跑一直是我们软件开发的利器,采用迭代的方式,每次发布一部分功能,推向开发人员去验证,典型的敏捷思路。

但是这种好处更有利于JDK的开发者,对使用Java的个人和公司来说,想要跟上每六个月就要升级的步伐,实在是太难了。JDK是个非常核心的基础设施, 除了安全漏洞,谁没事去升级生产环境的JDK啊?出了问题谁负责?

所以,按道理讲大家都会去找那些LTS的版本来升级,例如Java 11, 但是事实证明大部分人还在固守Java 8 :

2001343241117ae28f1c

这个调查显示,使用Java 8的公司和程序员高达80%, 这是为什么呢?大家为什么不升级到Java 11呢?

我个人觉得主要原因是对开发有利的重大特性升级很少,吸引力不够。

在过去的十几年中,Java相继引入的泛型、注解、NIO、函数式编程等核心功能,极大地影响了应用程序开发的方式,你能想象现在的Java中没有注解会是什么样子吗?

这几年的Java版本中,就缺乏这种重大功能的升级了,我把我有点印象的功能升级列一下:

200134549878ca836c1e

注意黑体的这几项, Java 9引入了模块化系统,这是个看起来很美的特性,可是对程序员来说,这是一个破坏性的更新,因为JDK做了模块化,但是很多第三方库没有做模块化, 如果想让自己的项目也模块化,很有可能是一次不断填坑的经历,尤其在使用第三方库的时候。

Java 11的ZGC是个有吸引力的特性,它的设计目标是:支持TB级内存容量,GC暂停时间低(<10ms),对整个程序吞吐量的影响小于15%,确实挺让人激动的!如果真的实现了,程序员就可以可劲儿造对象,而不用考虑GC了,可惜这仍然是个实验性质的版本。

至于局部变量类型推导,也只是方便了变量的声明而已。

一个JDK的版本如果想被广泛采用,一定得能提升开发效率(如泛型、注解),带来变革,这样才有吸引力, 如果给程序员们带来了麻烦, 大家就会用脚投票了。

优秀的技术人员应该具有广阔的技术视野,同时拥有贯通的技术深度,博文菌今天要向你推荐的这本书,可以算的上是还在学海中苦苦挣扎的程序员的福音——《码农翻身》

技术本来是很简单的,只是上面笼罩着层层迷雾,让初学者难以看清。本书讲了很多很多故事,在读故事的过程中就能轻松掌握相关技术,让你在畅快的阅读后,会有一种“原来如此”的感觉。

书中把计算机元素和行为用拟人手法编成一个个精彩纷呈的故事,绘声绘色且深入浅出地演绎晦涩枯燥的编程知识。学习优秀的架构师是如何思考、如何抽象、如何成长的,从操作系统、Java语言到Web技术,每个主题都深入浅出。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK