美文网首页Java 杂谈
分析Java在2018年的形势

分析Java在2018年的形势

作者: Java机械师 | 来源:发表于2019-01-10 17:25 被阅读17次

    2018年已经过去了,在这一年中,Java开发者热衷于什么?什么版本和框架是受众比较高的?这里用一系列数据和图表来让大家了解下在2018年整个Java平台的趋势。

    1. Java版本的采用率

    毫无意外,Java8依然在开发社区中占主要地位:

    Java9和Java10的采用率依然非常低,分别都只有低于5%的占比。

    作为参考,在2017年采用占比为24.4%的Java7在现在也只占了10.6%,可想而知,整个生态差不多都升级为Java8了。

    2. Spring的采用率

    现在让我们来看看spring的数据:

    在这里可以看出,Spring5的推进步伐相当明显,在整个Spring体系占比中,最新版本的Spring5占据了24%,比上一年增长了差不多2.2%。

    而且理所当然的是,在今年依然有不少人是使用非Spring的JavaEE框架进行开发,所以得出,Spring并不是每个人的必然选择。

    3. SpringBoot的采用率

    在Spring搭建的工程中,大部分在生产中都是基于SpringBoot进行的:

    令人感到震惊的是,在GA(正式版本)刚出来不到两个月,SpringBoot 2的采用趋势竟然如此之快,已经达到了30%这样巨大的数额。

    1.4及更低的版本,和上一年相比已经下降了将近30%,变成现在的6.8%,这种趋势表明Boot在升级速度上,比起广大生态上说快得多。

    关于SpringBoot最后说一点,在上一年中基于Spring的程序大约有30.2%使用非Boot的core framework进行开发,但现在只剩16.7%。简而言之,大多数Spring程序现在都是使用Boot的。

    4. 构建工具的采用率

    Maven哪儿都不去,上一年它的指数稳定在75.7%,并且现在保持在74.2%

    对于Gradle,今年的数值为21.3%,比起上年有所上升;而对于Ant,只占剩下比例的五分之一。

    5. IDE的采用率

    IDE的数据上,今年并没有什么区别

    IntelliJ明显赢得了这次较量,从上年的45.8%跃升到今年的55.4%。

    NetBeans今年的占比比起上年的12.4%下降到一半的5.1%,这使得它的追随者们大失所望。

    Eclipse在今年情况有所缓和,仅仅下降了2%,目前是38%的占有率。

    有趣的一点是,IntelliJ获得的大部分份额是来自于NetBeans而非Eclipse。

    6. Web应用服务器的占有率

    这是这年服务器的占有情况:

    实际上,调查上出现一个问题那就是并没有2017年的数据作为比较,但是这并不影响结论并且也不令人感到惊讶。

    简单来说,占据大约62.5%主要比例的tomcat掌控了整个场面,其他服务器都大约占用5%的比例。

    7. 其他JVM语言

    在最后一个延伸话题,除了Java外,还有其他在使用的JVM语言吗?

    第一点是,62.8%的项目是单语言的,它们只是用Java。

    这里是生态中相关的数据:

    这里是针对一些使用其他语种的“前瞻性项目”的比例数据:

    这里得出的主要结论是,Kotlin经历了疯狂的一年,使用率从上一年的11.4%上升到今年的28.8%。Scala却从上年的28.4%下跌到今年的21.6%。

    8. 结论

    在2018年里,Java生态变得越来越受人关注了,它证实了一些广为人知的趋势,也挖掘了一些新的趋势。

    在大多数Spring项目上,SpringBoot占了主导。这并不让人感到意外,并且因为整个SpringBoot的生态过程时间并不长,所以这是一个巨大的成就。

    在IDE这里面,IntelliJ依然在强势地增长。并且,Kotlin也许是今年最大的“赢家”,因为它完全改变了当前JVM语言的前景。

    总的来说,Java社区中前景还是非常cool的,并且对参与到这次调查的大家表示感谢。

    可以看出,未来的日子里,Kotlin作为安卓开发的主力军,肯定会有一个高趋势的增长。并且虽然Java的版本进行了一个快速的迭代,但是Java8依然保持着雷打不动的地位,不知道在之后的将来,会不会有一个改变。

    在这里小编推荐下面分享Java程序员的学习线路图。对于想要提升自己,对自己未来迷茫的Java工程师们,如需要这些架构路线图,以及我们整理的一些架构师精讲资料,可以加群程序员交流群:810589193获取哦,涉及的知识点(Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术)。

    一、开源框架解析:

    阅读、分析源码是程序员最基本的码代码能力也是码农的根本所在,学习经典源码中所用到的经典设计思想及常用设计模式,能够帮你了解大牛是如何写代码的,从而吸收大牛的代码功力。在阿里面试中,MyBatis,Spring等框架的底层原理是经常会被问到的。

    二、架构师筑基:

    百丈高楼平地起,基础也是非常重要的,基础不牢,自然不用谈架构。

    三、高性能架构

    性能一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,性能方面就会下降,特别是阿里巴巴这样的一线互联网公司最为注重,因此想进入阿里,性能优化一定是要去深入学习与理解的一环

    四、微服务架构

    关于微服务架构的取舍

    微服务是现在互联网架构技术中最火热的话题之一,也是我目前正在学习研究的方向。在面试过程中,面试官很少会问到关于微服务相关的问题。但作为一名开发者,一名有技术梦想的程序员微服务架构是现在必须要去了解的主流技术:

    五、团队协作:

    开发工具工程化

    通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。程序员的战斗,往往不是一个人的战斗,我们如何在一个平台下高效的去重,进行代码review,对功能进行调整,debug,做到在统一的规划下步步为营,混乱的堆代码的过程中找到自己的记录。这一切都依赖于有效的工具。

    六、B2C项目实战

    项目实战

    要想立足于互联网公司,且能在互联网浪潮中不被淹没,对于项目的开发实战演练是不必可少的技能,也是对自身能力的一个衡量,有多少的量对等于获得多少的回报。看似简单的一个项目需求图谱,其中的底层原理,实现原理又能知道多少?你搭建一个完整的B2C项目平台到底需要多少知识?这一切都是需要我们考量的。

    工作一到五年的程序员朋友面对目前的技术无从下手,感到很迷茫可以加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl里面有阿里Java高级大牛直播讲解知识点,分享知识,课程内容都是各位老师多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

    相关文章

      网友评论

        本文标题:分析Java在2018年的形势

        本文链接:https://www.haomeiwen.com/subject/ohnarqtx.html