猿创征文|一文分析过去几年中热门的java技术趋势何去何从?

放羊的牧码 放羊的牧码     2022-12-01     777

关键词:

在 Stack Overflow 上,与某一技术相关的帖子数量越多,则说明该技术的开发者数量越多,也从侧面反映了该技术的流行程度和受欢迎程度。在第三章中我们介绍了数据的获取和预处理。在标签提取阶段,我们得到了提取问题文本所需要的 93 个标签。在这些标签中,有很多标签代表很多热门的 Java 技术,那么近年来在 Stack Overflow 上,与这些 Java 技术相关的帖子数是如何随时间变化的呢?我们在本章中对该问题进行统计分析。

Java 技术使用趋势统计

  • 数据提取

在本节中,我们对一些 Java 热门技术历年来相关帖子数变化趋势进行分析。首先,我们选择标签提取阶段获得的其中 6 个标签所代表的技术进行分析。这 6 个标签分别是“spring”、“hibernate”、“jdbc”、“java-ee”、“maven”和“javafx”。接下来我们将分析每一种技术相关帖子数随时间变化的趋势。

首先,针对 Posts.xml 文档中的每一个帖子的 Tags 标签进行筛选,若该帖子(记为P)的 Tags 标签包含上述某技术(记为 T)所对应的标签,则将该帖子的年份(记为 Y)取出,我们将 T 技术在 Y 年内的帖子数加一。以此类推进行迭代,直到将 Posts.xml 文档中的所有帖子全部遍历完毕,我们就得到了每一种框架每一个年份的帖子数。由于我们的数据集是从 2008 年 7 月 31 日开始,至 2017 年 3 月 14 日截止,所以我们将 2008 年和 2017 年的帖子数去掉,不进行统计分析。这样,我们就得到了从 2009 年到 2016 年八年间上述 Java 技术各年份的帖子数。

  • Java 技术趋势统计

Spring 框架相关帖子数如图所示。Spring 是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。简单来说,Spring 是一个分层的 JavaSE/EE full-stack(一站式)轻量级开源框架。从图中可以看出,从 2009 年到 2016 年,Spring 框架相关帖子数逐年增长,并且保持稳定增长趋势。我们可以得出,Spring 框架的使用者随着时间的增长逐渐增加,并且保持稳定增长趋势。

Hibernate 框架相关帖子数如图所示。Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它将 POJO 与数据库表建立映射关系,是一个全自动的 ORM 框架,Hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。从图中可以看出,从 2009年到 2012 年,Hibernate 框架相关帖子数逐年增长,但增长越来越慢。2012 年到 2014 年,Hibernate 框架相关帖子数增长缓慢,总体上比较稳定。2014 年以后,Hibernate 框架相关帖子数呈下降趋势。我们可以得出,Hibernate 框架的使用者随着时间的增长逐渐增加,到 2012 年后相对比较稳定,2014 年后逐渐减少。

JDBC 技术相关帖子数如图所示。JDBC(Java DataBase Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系型数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。从图中可以看出,从 2009 年到 2014 年,JDBC 技术相关帖子数逐年增长。直到 2014 年后,JDBC 技术相关帖子数缓慢减少。我们可以得出,JDBC 技术的使用者随着时间的增长逐渐增加,直到 2014 年后缓慢减少。

Java EE 技术相关帖子数如图所示。Java EE 是 J2EE 的一个新的名称,J2EE 是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化和规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。从图中可以看出,从 2009 年到 2012 年,Java EE 技术相关帖子数逐年增长。直到 2012 年后,Java EE 技术相关帖子数逐年下降。我们可以得出,Java EE 技术的使用者随着时间的增长逐渐增加,直到 2012 年后逐渐减少。

Maven 相关帖子数如图所示。Maven 是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。从图中可以看出,,从 2009 年到 2013 年,Maven 相关帖子数逐年增长,并且保持稳定增长趋势。2013 年以后增长速率有所下降。我们可以得出 Maven 的使用者随着时间的增长逐渐增加,保持稳定增长趋势,之后有所减少。

JavaFX 技术相关帖子数如图所示。JavaFX 技术主要应用于创建 Rich Internet applications(RIAs)。当前的 JavaFX 包括 JavaFX 脚本和 JavaFX Mobile(一种运营于移动装置的操作系统)。JavaFX Script 编程语言(以下称为 JavaFX)是一种声明性的(declarative)、静态类型的(statically typed)脚本语言。从图中可以看出,从 2009 年到 2016 年,JavaFX 技术相关帖子数逐年增长,并且保持稳定增长趋势,2016 年以后,JavaFX 技术相关帖子数有所下降。同时,我们还可以看出,从 2009 年到 2011 年,JavaFX 技术相关帖子数总量非常少,2012 年后才逐渐多起来。我们可以得出,JavaFX 的使用者一开始数量极少,随着时间的增长逐渐增加,并且保持稳定增长趋势,直到 2016 年,使用者数量开始减少。

  • 结论

Java 提供了丰富的类库、API 文档以及第三方开发包,同时还有大量的基于 Java 的开源项目。因此,开发者在使用 Java 语言进行程序设计时,没有必要亲自完成所有代码,在前人的基础上进行开发是非常明智的选择。这就需要开发者在进行程序设计时有选择地使用框架或者第三方开发包,选择什么样的框架至关重要。通过对以上几个框架在 Stack Overflow 中相关的帖子数随时间变化的趋势进行分析,可以为开发者在框架的选择方面提供帮助。例如,有些框架的帖子数逐年增长,则说明该框架的使用者越来越多,原因可能是这是一款新开发的框架,并且使用起来非常方便,这样的框架可以极大地提高开发者的工作效率。由于这些原因,开发者可以选择这样的框架进行开发。而有些框架的帖子数逐年下降,说明该框架的使用者越来越少,原因可能是出现了性能更好、功能更全、更易使用的框架取代了该框架,也可能是发布方停止了对该框架的维护更新或者将该框架集成到了其他框架之中等等。由于这些原因,开发者应该尽量避免再次使用此类框架。

国庆散文|一文分析过去几年中热门的java技术趋势何去何从?

在StackOverflow上,与某一技术相关的帖子数量越多,则说明该技术的开发者数量越多,也从侧面反映了该技术的流行程度和受欢迎程度。在第三章中我们介绍了数据的获取和预处理。在标签提取阶段,我们得到了提... 查看详情

国庆散文|一文分析过去几年中热门的java技术趋势何去何从?

在StackOverflow上,与某一技术相关的帖子数量越多,则说明该技术的开发者数量越多,也从侧面反映了该技术的流行程度和受欢迎程度。在第三章中我们介绍了数据的获取和预处理。在标签提取阶段,我们得到了提... 查看详情

猿创征文|一文带你了解前端开发者工具(代码片段)

前端开发者工具目录一、前言二、前端开发者工具——编译器(含插件)1、VSCode2、VSCode必备插件3、WebStorm三、前端开发者工具——UI框架工具1、Element2、Vant四、前端开发者工具——API调试工具1、ApiPost五、写在最后(... 查看详情

猿创征文|mock.js概述及模块化开发实践(一文足矣)(代码片段)

Mock.js概述及模块化开发实践1.为什么要用mock.js?2.什么是Mock.js3.在vue中使用Mock.js的准备工作4.Mock.js生成不同数据类型(常用的)5.随机生成图片,时间6.拓展(extend)7.Mock.js定义get与post请求8.使用Mock.js拦截和返回随... 查看详情

猿创征文|mock.js概述及模块化开发实践(一文足矣)(代码片段)

Mock.js概述及模块化开发实践1.为什么要用mock.js?2.什么是Mock.js3.在vue中使用Mock.js的准备工作4.Mock.js生成不同数据类型(常用的)5.随机生成图片,时间6.拓展(extend)7.Mock.js定义get与post请求8.使用Mock.js拦截和返回随... 查看详情

猿创征文|技术成长之路-java编程系列文件存储实践:amazons3实现文件上传下载,总结坑点,积累成长经验(代码片段)

热门系列:【Java编程系列】Minio实现文件上传下载1、前言    最近有一客户,需要独立部署文件存储到自己的私有化服务器,于是选择了让我们使用在AWS服务器的s3存储桶方式来实现。    在开发时间过程中,... 查看详情

猿创征文|技术成长之路-java编程系列文件存储实践:amazons3实现文件上传下载,总结坑点,积累成长经验(代码片段)

热门系列:【Java编程系列】Minio实现文件上传下载1、前言    最近有一客户,需要独立部署文件存储到自己的私有化服务器,于是选择了让我们使用在AWS服务器的s3存储桶方式来实现。    在开发时间过程中,... 查看详情

猿创征文|国产数据库一文学会应用sqlsugar工作单元模式操作多数据库(代码片段)

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。🐬个人主页:会敲键盘的肘子🐰系列专栏:SqlSugarORM🦀专栏简介:SqlSugar是一款来自未来的ORM,拥有超前的理念... 查看详情

猿创征文|那些年我们追过的那些技术

那些年编程语言之争    11年正式进入IT行业,成为一名程序员。那时候的技术圈还停留在语言之争上,那时候争论的是到底谁是世界上最好的编程语言,php说过自己是世界上最好的语言,C#说过自己是世界上最... 查看详情

猿创征文|忘记背后,努力面前开学季flag

首先非常感谢这次征文活动,可以让我对自己大学一学年的学习做一个总结,然后开始新目标的设立与追求🎒回忆过去,奔赴未来一、自我介绍二、回顾过去三、新学期目标与展望学习方面生活方面弥补遗憾四、... 查看详情

猿创征文|tidb架构分析&读写性能测试

TiDB是由PingCAP公司开发的一个开源的分布式HTAP(HybridTransactionalandAnalyticalProcessing)数据库,基于GoogleSpanner和Percolator的设计思想,采用存储与计算分离架构,将整个系统划分为TiDB、PD、TiKV、TiFlash四个组件,各组件之... 查看详情

猿创征文|tidb架构分析&读写性能测试

TiDB是由PingCAP公司开发的一个开源的分布式HTAP(HybridTransactionalandAnalyticalProcessing)数据库,基于GoogleSpanner和Percolator的设计思想,采用存储与计算分离架构,将整个系统划分为TiDB、PD、TiKV、TiFlash四个组件,各组件之... 查看详情

猿创征文|程序员进阶架构师的专业知识系统分析

文章目录前言调查阶段收集资料开调查会个别访问书面调查抽样调查现场观摩参加业务实践阅读历史文档分析阶段现有系统分析组织结构分析系统功能分析业务流程分析业务流程分析方法业务流程建模数据分析需求规格说明书前... 查看详情

猿创征文|大数据开发必备的数据采集工具汇总

文章目录前言1、Flume适用场景工作方式2、FlinkCDC适用场景工作方式3、Sqoop适用场景工作方式4、Canal适用场景工作方式5、Kettle适用场景工作方式前言随着大数据近几年的发展,已经在国内外的开发市场积累出一大批大数据开发... 查看详情

猿创征文|c++软件开发值得推荐的十大高效软件分析工具(代码片段)

目录1、概述2、高效软件工具介绍2.1、窗口查看工具SPY++2.2、DependencyWalker2.3、剪切板查看工具Clipbrd2.4、GDI对象查看工具GDIView2.5、ProcessExplorer2.6、PrcoessMonitor2.7、APIMonitor2.8、调试器Windbg 2.9、反汇编工具IDA 2.10、抓包工具Wire... 查看详情

猿创征文|gaussdb(dws)如何实现实时,批量和交付式查询一站式开发

文章目录1数据分析平台的挑战1.1当前典型的数据架构1.2主要痛点1.3GaussDB(DWS)整体解决方案1.3.1解决思路:1.3.2周边配套的云服务:2GaussDB(DWS)如何支撑实时、批量和交互式查询的2.1GaussDB(DWS)产品策略:一套架构支撑实时、批量和交互式... 查看详情

猿创征文|java程序员的效率工具箱(代码片段)

一、前言CSDN猿创征文第四季寻找开发者每天都在使用、寻找、贡献、创作各类开发者工具,包括开源服务、付费软件、API等。作为Java程序员,常用的软件开发软件(如IDEA、Eclipse)、开源项目(SpringBoot、MyBati... 查看详情

猿创征文|java程序员的效率工具箱(代码片段)

一、前言CSDN猿创征文第四季寻找开发者每天都在使用、寻找、贡献、创作各类开发者工具,包括开源服务、付费软件、API等。作为Java程序员,常用的软件开发软件(如IDEA、Eclipse)、开源项目(SpringBoot、MyBati... 查看详情