首页

科技
手机搜狐
SOHU.COM

2016年Java工具和技术前景报告:趋势和历史数据

思诚开发者沙龙
2016-12-01
+关注

欢迎阅读“2016年Java工具和技术前景报告”。这是一份主要分析Java开发人员所使用工具和技术的数据的全面报告。

本报告分为三个主要部分:

第1部分:看一下关于Java开发人员所使用工具的原始数据

第2部分:以数据为基准

第3部分:(本博文内容)观察趋势和历史数据 — 继续阅读本篇博文

或者,您也可以点击阅读原文链接来下载pdf版本的整个报告,一次阅读所有内容。

Java工具和技术趋势

该报告的这部分内容将主要研究数据的趋势。当然,我们不会只查看今年的数据,由于我们每隔几年就会提出很多相同的问题,通过对比2016年、2014年和2012年受访者对相同问题的答案,我们可以了解到随着时间而改变的趋势与发展。同时也能对2018年进行预测。但我们也不会仅仅根据几年的数据就贸然做出假定。也就是说,本部分内容出现的数字和图表确实能够显示出几年来的连贯性和模式。请注意:前几年的一些数据必须集中规范化,才能符合多选问题的要求。这些年份已用星号进行标注,以便于您识别。

展开剩余92%

Java SE版本采用

我们很高兴地发现,这些年来Java版本的升级和迁移水平保持着非常良好的一致性。对于大型企业来说,迁移非常耗时,因此非常昂贵,所以相比于一种新的应用程序特性等方式而言,许多人可能会认为迁移只能带来“最小增益”。不妨听听项目经理的意见吧!仅仅是性能提高就已经足够成为您进行升级的理由,更不用说还有更新的并发库、功能方法和更多的新版本特性,升级为开发人员和生产环境带来的优势十分明显。

旧版本使用比例的下降也让我们感到高兴,尤其是库和工具制造商现在已经可以开始取消对旧版本Java的支持。鉴于Java 9不会在2017年3月之前发布,如果能够确保这一发布时间,我预计Java 8甚至将在Java 9的采用率开始攀升之前达到70-80% 的采用率。我不希望开发人员像Java 8发布时那样一拥而上快速地采用Java 9,因为它还没有为开发人员提供足够多的让人眼前一亮的功能。还有一个新的默认垃圾收集器和许多模块有待解决,因此我认为即使到2018年Java 8仍将是占据主导地位的版本。到那时,预计Java 6的使用率将会非常低,实际上也许会降到0%,而Java 7将接近5%左右。我已经开始期待在2018年的报告中回顾我的这些预测!

Java EE版本采用

现在,我们将视线转向企业应用的Java EE。从这些数据中我们可以看出两个有趣的事情。首先,Java EE 7不仅仅与Java EE 6一脉相承,而且今天它的受欢迎程度甚至更胜于2014年的Java EE 6。第二个重点是,人们还没有告别Java EE 5 和J2EE。考虑到这些技术已经非常过时,更重要的是,Java EE的标准已经与J2EE相差甚远,所以很难理解为什么这些古老的编程环境仍然存在。

但是,让Java EE社区更加担忧的是图3.2中并没有显示出的内容。我们对数据进行了归纳,以显示出Java EE开发人员在使用哪些版本,因此如果您细心计算的话,您会发现每年的百分比相加等于100%。让我们看一看有多少人没有使用Java EE。在2014年的调查中,32%的受访者没有使用Java EE,而2016年的调查结果为42%。这意味着,2014年的15%的Java EE用户在过去的两年里决定不再使用Java EE。这一点也印证了报告第2部分图2.4所示的数据,该数据表明早期采用者正在考虑替代的编程框架。总结来看,这一点对于Java EE社区的未来并不是很好的消息。

如果我们看一下Java EE 8 的JSR(规范请求)状态,看起来已经快要错过最终期限,尤其是Oracle引导的JSR,各种新闻之前已经对其进行了详尽的报道。这也正是Java EE监护小组成立的原因,他们将为Java EE的当前状态带来新的认识和改变。我预计,Java EE的采用度将会继续下降,尤其当Oracle继续对该技术缺乏兴趣时,因为供应商和用户对它的未来缺少信心。据我预测,Java EE 7的用户仍将来自Java EE 6的用户,虽然我希望看到Java EE 5和J2EE的使用率有所下降,但现实的数据并不支持我的这一期望。

IDE

在我们2014年的报告中,49%的受访者表示他们希望使用IntelliJ IDEA作为他们的IDE(集成开发环境)。这些受访者可能已经开始使用IntelliJ,或者他们可能已使用其他的IDE。我们可以在本报告第1部分的图1.11中看出,从那时起,IntelliJ就已经取代Eclipse成为了最受欢迎的IDE。如果我们观察图3.3的趋势曲线,就会明确发现两者位置对调这一事实,而Eclipse(下降)和IntelliJ(上升)的采用率总和则保持一致。

我预计2016年以后它们的采用率不会保持不变,即使是看到IntelliJ比Eclipse领先10-15个百分点也不会让我感到惊讶。我认为NetBeans不会发生很大的变化,尽管Oracle对NetBeans平台给予了非常大的支持,但��们自己的管理人员可能是他们失败的主要原因。尽管如此,NetBeans团队中有许多很出色的个人在缺乏支持的情况下,仍然会尽一切努力让该平台继续取得成功。

构建工具

另一个硝烟弥漫的类别是构建工具。但用战争来形容是否恰当呢?如果我们看一下从2012年到2016年构建工具的采用,我们可以很合理地说,这不过是一场只有一匹赛马的竞赛,Maven已经未跑先赢。实际上,如果这真是一场赛马的话,Ant已经被淘汰出局,人们也有可能已经扔掉了Gradle的那张1赔500的投注单。但黑暗的尽头也有可能迎来曙光,因为在Android开发环境中正在大量使用Gradle。但黑暗尽头处迎来的究竟是曙光还是一列名为Bazel的Google列车,让我们拭目以待。

现在让我们来进行一些预测。在接下来的几年里,我认为Maven的市场份额不会发生很大的变化。如果Gradle的采用率有所上升,那么Maven的份额有可能会下降,虽然看起来Gradle从Ant手中抢夺份额的可能性更大。我认为Gradle将继续缓慢增长,尤其是来自于Android社区的支持将继续增长。另一方面,Ant的使用率将继续下滑,至2018年可能跌至6-7%。

Web框架

从下面的图3.5中我们可以看出,Spring在过去四年中的市场主导地位逐步提升,他们在Web框架市场中形成了垄断。毕威拓公司(Pivotal)对他们发布的Spring Boot的采用率非常满意,他们将能够随着微服务市场的增长取得良好的成绩。JSF的采用率呈现出缓慢的下降趋势,虽然此结果可能只是因为整个Java EE采用的降低而导致的。Struts、GWT、Play 1、Wicket、Stripes和Tapestry尽力坚持在市场中占有一席之地,而Vaadin则是为数不多的能够在Spring的主导地位下显示出竞争力的框架之一。

展望未来,我预计Spring将在Spring Boot的帮助下继续占据主导地位,看起来Spring Boot更有可能接过整个市场的领导者桂冠。2018年,我认为Spring Boot和Spring MVC将不分伯仲,而Boot更有可能借助微服务架构的浪潮成为市场的主导。我认为JSF仍将保持其重要性,尽管它需要我们Java管理者的支持,以确保人们对它的进步和更新拥有信心。考虑到Java EE 8一定会错过发布日期, JSF的采用率可能将继续下降,但我认为并不会降低太多。对于Play 2,考虑到它在采用Akka的Lagom中的领导地位,其采用率将有可能有所提高。其他框架,例如Struts 1、Play 1、Wicket、Stripes和Tapestry,可能也会出现在我们的2018年报告中,但更有可能出现在消失技术的栏目中。

VCS

本报告这一部分中进行的最后一项比较,实际上也是整篇报告的最后一个图表(感谢我们的设计师Ladi的惊人理解力!),就是VCS工具。此类别的趋势非常清晰明确。Mercurial和CVS即将输掉这场战争,而对于SVN,好吧,Mercurial和CVS正等着与你作伴。Git以非常稳健和持续一致的市场收益成为了名副其实的赢家,其市场份额达到68%。

我的预测很简单。我认为Git的增长必将放缓,但我预计2018年Git的市场份额仍有望增长至80%,然后开始下滑。Mercurial和CVS很有可能将在2018年走入历史博物馆,而SVN的份额将再次下降至5-10%左右。

激发开发人员兴趣的工具

今年的调查包括了几个自我提问式的问题,其内容更多的是关于开发人员自己对特定工具或技术的使用体验。2016年调查提出了以下问题:

哪种工具、技术或库会特别激发您的兴趣?或者会让您因为使用过或计划在2016年使用而感到骄傲?

请注意:我们允许受访者自由作答。由于这种回答的自由度有助于发现一些有趣但却不太知名的项目和工具,因此对其答案的分析也更多地采用了手动的方式来完成,而不仅仅是通过Excel电子表格中的几个公式。

将所有答案全部导出后,我们进行了以下转换:

将答案转换为一个由逗号分隔名称的列表

将答案转换为小写

通过 “, ” 进行分隔

计算列表中词语出现的频率

应用同义词列表,例如:“Spring boot”、“springboot”、“spring boot 1.3.5”或“Java EE”、“JavaEE”、“Java EE7”

再次计算频率,并通过明显词的频率对Java 8流示例程序进行计数来收集热门条目。

现在我们得到一个列出了所有毫无关系技术的列表。但该列表是一个很有意义的结果,它显示了整个行业的走势。我们毫不迟疑地列出了在对上述问题的答案中最常出现的10种技术:

Docker

Spring Boot

Angular

Java 8

Vaadin

Kotlin

Microservices

Scala

Akka

RxJava

我们并不断言这绝对是一份确切无疑的列表,但它真实地反映出更多的人对使用这些工具感到激动或自豪。令人惊讶的是,那些声称比一般人更优秀的人和那些更谦虚的受访者所选择的令人动心的技术并没有明显的区别。想想看吧,我们总认为自己是与众不同的,但我们与其他人一样都采用相似的工具来解决相似的问题。

总结

您已经读完了整篇报告,太棒了!或者您因为报告太长不想细读而直接跳转到这里?:) 无论如何,我们现在将以通俗易懂的方式总结出本报告的所有中心思想。请准备好享受一顿快节奏的统计数据大餐!

献给那些匆忙而没时间阅读全文的人

以下是本报告和数据的一些背景介绍:

共有2040 名受访者参加了此项调查。

调查的时间为2016年2月至3月。

向Devoxx4Kids捐赠了1000 美元 — 真棒!

在制作本报告过程中,没有伤及技术宅。

原始数据

报告的这部分内容提供了调查中每个问题的原始结果:

平均受访者是一名从事完整堆栈的Web应用程序开发且拥有大约10-12年工作经验的软件开发人员。

63%的受访者受聘于一家大企业或中型公司。

四分之三的受访者(74%)认为,他们在各自的职位中比普通人更加出色。

三分之一的受访者(34%)采用了微服务架构。

在三分之二(66%)没有采用微服务的受访者中,只有12%的人有在未来使用微服务的打算。

Java 8是市场主流,62% 的受访者在工作中使用Java 8。

Java EE 7 是最受欢迎的版本,31% 的受访者表示他们在使用最新的版本。

42%的受访者根本不使用Java EE。

相比于其他IDE,46% 的受访者更经常使用的是IntelliJ,最终超过了Eclipse的41%。

68% 的受访者使用Maven作为主要的构建工具,Gradle只占16%。

Tomcat 仍是生产和开发环境中最受欢迎的应用程序服务器,其市场份额为42%。.

Oracle DB以微弱的优势超过MySQL成为使用最广泛的数据库,分别有39%和38%的受访者表示在使用这两种数据库。

MongoDB是最受欢迎的 NoSQL数据库,目前有15%的受访者正在使用。

Spring完全主导了Web框架市场,Spring MVC 和 Spring Boot 分别以43%和29%的比例成为第一和第二最受欢迎的框架。

Jenkins 主导了CI 服务器市场,60%的受访者倾向于选择butler解决方案。

Git 以68%的份额成为CVS市场的领导者,SVN只占23%的比例。

Visual VM 仍是最受欢迎的分析器,有38%的受访者正在使用。

开发人员并不关心APM,30%的受访者不知道他们的应用程序使用了哪种APM。

New Relic以11%的份额成为APM市场的领导者。

三分之一(32%)的受访者使用Docker ,但超过一半的受访者(54%)根本不使用虚拟化环境。

71%的受访者声称属于敏捷开发。

趋势

接下来,我们将总结这些基准数据以从受访者的答案中找出趋势:

早期采用者(67%)和技术追随者(58%)都喜欢Java 8,显示出该最新版本的市场地位已经确立。

早期采用者更有可能告别Java EE,而更多的技术追随者(33%)比早期采用者(28%)更倾向于最新版本。

早期采用者喜欢使用Spring Boot、Play 2和Grails,对Struts、Wicket和Play 1不太感兴趣。

Jetty 和 Tomcat 是微服务架构中更受欢迎的应用程序服务器,而WebLogic、WebSphere和GlassFish尤其呈现出在微服务环境中使用率下降(几乎一半)的趋势。。

Spring Boot 和 Play 2 在微服务环境中被使用的可能性是JSF的两倍,JSF几乎只有一半的可能性。

二分之一(50%)的微服务环境使用Docker作为虚拟化工具。

敏捷的团队比非敏捷的团队更有可能编写出正式的技术规范。

过去四年发生了哪些变化

本部分内容将回顾我们的报告,以阐明过去四年的技术发展趋势。

Eclipse使用率持续下降。IntelliJ 的份额持续增长。IntelliJ的使用率预计将超过Eclipse。

Maven以稳定的增长势头继续成为市场领导者。

Gradle 仍在缓慢增长,但不足以挑战Maven的市场地位。

Spring在2012年至2016年之间的持续增长使其占据了市场主导地位,其中包括Spring Boot非常快速的采用。

JSF 使用率逐步缓慢下降,而Stripes、Tapestry、Wicket和Play 1看起来即将从市场中出局。

Git在过去的四年里增长迅速,市场份额从27%上涨至68%。另一方面,SVN的份额在同时期内呈现出相当大的损失,从55%下降至23%。

结尾和一幅漫画

感谢阅读!我希望您能够从本报告中获得一些启发,并能够结合您自己的数据利用这些信息,以便您更好地了解我们这个生态系统的全局,同时也希望您在未来的决策中能够更有信心。

既然我们查看了如此多的数据,分析了如此多的图表,那么我在此为您献上一幅关于图表本身的xkcd漫画。

扫上方二维码关注互撩

这里“阅读原文”,查看更多

帅哥为什么要拒绝美女的微信?

声明:本文由入驻搜狐号作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。

网站地图

用户反馈 合作
Copyright © 2018 Sohu.com