事实证明大部分人还在用Java8
从Java8之后,Java的发布周期明显快了很多,而根据调查显示,80%的受访者仍然在使用Java8。
在这么多的版本中,只有Java8、Java11和未来的Java17是长期支持版本(LTS),Oracle会支持3年,其他的只会支持6个月,新版本一出,就放弃老版本的技术支持,这也是很少有人使用9~14的版本的原因。
03
既然高频更新,为什么开发人员还在坚持使用Java 8呢?
第一,Java8开创性的语言特性还在被编程社区吸收。
即使到了2019年,网上仍然在热烈讨论关于Steam和Optional的相关问题,Baeldung自己也发布了Java8Optional 指南。
第二,Java9引入了模块化系统,这是个看起来很美的特性,可是对程序员来说,这是一个破坏性的更新,因为JDK做了模块化,但是很多第三方库没有做模块化。
如果想让自己的项目也模块化,很有可能是一次不断填坑的经历,尤其在使用第三方库的时候。
第三,在Java8之后,新版本的特性似乎没有足够的说服力让人们下决心更新。
第四,在2019年1月份之后,JavaSE8的公共更新需要商业许可,这也是OracleJDK与 OpenJDK 之争的开始。
此外,在不同的供应商那里是否可以得到免费更新的相关计划,以及 (新的和现有的) 付费的支持模型,这些都是人们考虑是否更新的因素。

框架:Spring占据主导地位
在框架的采用方面,Spring占据了主导地位。与传统且臃肿的JavaEE相比,Spring是现代化的、基于Java的企业应用程序的轻量级框架。SpringBoot的采用率也很高。
构建工具:Maven断层式第一
在Java构建工具的调查中,Maven以相当大的优势排在了第一位,这表明排在第二位的Gradle仍然是Android的代名词,之后需要做更多的努力来摆脱这些限制,以便被开发者认可成为Java构建通用实践的一个可行选择。
IDE:IntelliJ大比例占据一位,Eclipse份额持续下降
在IDE的调查中,IntelliJ以将近60%的份额占据了第一的位置。为什么IntelliJ如此受欢迎呢?
Jetbrains市场总监安德烈·切普索夫曾在一篇博客中这样写道:“在你编写代码时,IntelliJ IDEA也忙着在构建它的语法树,在类、变量、字段、方法和它们的用法之间创建引用,分析执行流,利用这些信息,它可以提供补全功能,帮助你快速浏览代码,提供错误分析和方便的快速修复。”
而传统的Eclipse则有点不妙,其占比从去年的38%下降到32.8%。

Web/应用服务器:Tomcat占据第一
早在2011年,Forrester的首席分析师迈克·瓜蒂埃里就写过一篇既有预见性又不受时间限制的文章,名为《停止在 WebLogic、WebSphere 和 JBoss 应用服务器上浪费金钱》他开头写道:“使用Apache Tomcat 吧,它是免费的。”
事实证明,Tomcat一直保持着轻量级的资源消耗,毫无争议地击败 Jetty、WebLogic、WebSphere 、JBoss等夺得了冠军。
数据库:关系型数据库比NoSQL更受欢迎
MySQL和PostgreSQL是前两名,Oracle排名第三,第四、第五名分别是 MongoDB和MSSQL。
这里有两个值得注意的趋势,与Percona的数据库管理系统流行度调查结果一致,关系型数据库管理系统胜过NoSQL,而开源数据库管理系统则比大型商业数据库管理系统做得更好。就像前文中的Web服务器一样,人们寻求的也是更轻量级的等价物,尤其是PostgreSQL。
04
我们需要不断地学习Java新版本吗?
最新的版本就一定是最好的吗?并不见得。
因为Java8被个人/企业所广泛运用,用的时间长了,bug都差不多被找出来了,只会更加稳定、顺手。对于企业来说,稳才是重中之重,甚至有的企业还在用Java1.7版本。

那程序员们还有必要学习Java的新版本吗?
我认为是有必要的。
从技术来看:Java小版本更新基本上都是修复各种漏洞和bug,不会去改变现有的JDK,JDK其实都差不多,我们只需要知道它新增了什么功能而已,从这一点来看其实也增加不了很多的学习成本。
当Java大版本的更新,比如JDK7->JDK8,会增加一些新特性,花几个小时看看realse note就可以完成学习了,同样花不了程序员们的很多时间。
从个人来看:虽然很多公司还在用JDK6-7-8,但是我们更应该关注的是自身的知识基础和学习能力,不要因为现在公司的Java技术停留在某个版本上面而放弃学习,我们可以不为企业更新Java版本,但我们要为自己的知识深度与广度学习更多的Java知识。
如果你只会Java1.7,那么你的求职范围只能在使用Java1.7的公司中,一个用得上Java8、11、12的公司为什么要招一个连Java8都不会的人呢?
除了留意版本更新,程序员们同时要留意基于Java的一些流行框架和新技术,比如近几年兴起的SpringBoot、SpringCloud等。
一句话就可以概括:企业升不升级是他的事,你学不学是你的事。