Java开发人员工作效率报告 Java发展趋势与分析 执行摘要 《2023年Java开发人员生产力报告》是一份年度报告,展示了塑造Java生态系统的顶级工具、技术和发展趋势。此外,该报告还衡量了这些工具的进步对Java开发团队生产力的影响。 目录 Java语言和发展趋势 Java应用程序体系结构趋势 微服务框架用法17 Java技术趋势 开发者生产力趋势23 前言 亲爱的同事们, 欢迎来到JRebelbyPerforce发布的2023年Java开发人员生产力报告!Java是世界上最受欢迎的编程语言之一,广泛用于开发各种类型的应用程序,从Web和移动到桌面和企业软件。作为一名Java开发人员,您的技能和专业知识的需求量很大,就像您的见解和意见对更广泛的Java社区很有价值一样。 自2012年调查开始以来,我们的目标一直是更好地了解Java开发生态系统的当前状态-包括所使用的工具和技术,开发人员面临的挑战以及将塑造未来的新兴趋势Java开发。世界各地的受访者帮助我们收集有价值的数据,为我们的研究提供信息,并提供有见地的观点。适用于Java开发人员、雇主和整个Java社区。 至于2023年Java的大收获?Java开发人员的需求仍然很高,这令人鼓舞,因为Java是大型企业应用程序的首选编程语言。生产力 ,特别是在Java开发中,仍然是微服务的主要重点领域环境继续扩大规模和重新部署时间。组织将继续寻找方法创建创新的Java 应用程序并提高生产力-包括添加JRebel等工具。 作为JRebel的产品经理,这些数据还帮助我更好地了解开发人员的需求-无论是决定新的应用程序架构还是采用新的IDE-以及如何最好地定制我们的解决方案以满足这些不断增长的需求。因此,我希望您在每个结果上找到我的特定要点,对您的Java计划具有洞察力和益处! 我们感谢您在本次调查中的时间和贡献,并期待与您分享结果。让我们开始吧!快乐阅读, 柯蒂斯·约翰逊产品经 理JRebelbyPerforce 关于调查 《2023年Java开发人员生产力报告》基于对全球Java开发专业人士的调查。该调查于2022 年11月至2023年1月进行,共收到411份回复。 调查主要集中在Java技术和方法使用我们还包括了特定于性能问题和微服务以及组织 firmographics的问题。 报告和分析方法 Forthepurposesofthisreport,wemutoredanyresponsesrepresentinglessthan1%ofthetotalrespondents.Wealsoroundedeachvaluetotheclosestfullpercentagepointtosimplifyanalysistheresults.Where有益的是,我们使用了组织的数据来帮助形成围绕 一般数据。 受访者人口统计和组织组织统计 在我们的第一个财务统计问题中,我们要求受访者分享其公司总部的位置。虽然这并不能说明特定公司的大部分工作是在哪里完成的(尤其是大型公司),但它可以帮助我们在区域性的背景下构建调查结果。 公司代表来自世界各地,但最大的特遣队(按国家)属于美国和中国。 职位名称 受访者被要求分享他们在公司中的工作角色。与往年一样,受访者主要是开发人员或类似人员,占整体数据的近45%。再加上受访者中第二受欢迎的职位-java架构师-这个数字增长到所有受访者的65%。也有相当数量的领导角色代表,团队领导占18%,董事占8%。 开发团队规模 然后,我们要求受访者分享他们的开发团队的规模,选择范围从1-2到100+开发人员。最常见的开发团队规模在3-9个开发人员范围内,占 所有受访者的近一半。10人以上的团队占受访者的44%,其中10-20人开发人员占总数的19%。这是意料之中的,因为公司更倾向于根据功能集划分团队,尤其是在维护和维护微服务环境方面。 公司规模 对于我们的最后一个基本问题,我们要求受访者分享他们公司的估计规模,选项分为1-20、20-100、100-1000、1000+ 和自由职业者类别的团队。 受访者报告说,他们的大多数公司都是大型企业规模,其中45%的公司规模超过1000名员工。这是预期的,因为Java仍然是主要的编程 企业应用程序使用的环境。拥有100-1000名员工的中型公司是第二高的群体,占22%。拥有20-100名员工的小型公司占受访者的13 %,其次是初创公司(1-20名员工)和承包商,各占10%。 调查结果 随着人口统计学问题的消失,我们进入了调查的核心:Java语言和发展趋势。这些问题也出现在以前版本的Java开发人员生产力调查中,使我们能够判断一些关键Java的采用轨迹 技术版本。 Java语言及发展趋势 本节主要介绍Java社区中使用的技术,这是了解Java开发人员使用什么的一个关键方面。许多Java开发团队可以使用这些信息来深入了解哪些技术最适合他们自己的Java应用程序,以及调查市场上的其他技术。 对于第一个问题,我们要求受访者分享他们在他们的主应用程序,包含将Java版本分为Java7或更低版本、Java8、Java11、 Java17和Java的选项18或更高版本。我们还包含了JVM兼容语言Kotlin、Groovy和Scala。 与去年的报告一样,大多数受访者表示在其主要应用程序中使用Java8(31%)作为编程语言。其次是Java11(28%),Java17 (19%),Java18或更高版本(6%),以及Java7或更早版本(3%)。Kotlin、Groovy和Scala是这些选择中最不受欢迎的,代表合计占受访者总数的13%。 您在主应用程序中使用了哪些JDK编程语言? 在根据公司规模查看响应时,在员工人数不足100的公司中,Java8的使用率略高,而他们继续显示Java版本11及更新版本的使用率提高。同时,员工人数超过100的公司对Java11和Java8的使用率几乎相等。 这可能是我们开始看到使用Java8的用户数量发生重大变化的第一年。超过一半的受访者使用较新版本的Java,这是第一个公司开始将Java环境过渡到新技术的迹象。大多数人认为公司需要一些时间才能开始从传统的Java版本过渡到新的节奏在Java生态系统中。展望 拥有100名员工以下的公司 拥有超过100名员工的公司 未来,我们可能会看到更多的Java版本定期更新。 升级影响 接下来,我们要求受访者分享影响他们升级JDK版本的决定的因素。答案基本上与预期一致,大多数受访者报告的长期支持(LTS)为升级JDK版本的主要因素。在LTS之后,安全性和新功能是首要因素,在24%和18%,分别。 性能(17%)和合规性(15%)是升级的最不受欢迎的因素。 哪些因素会影响您升级JDK版本的决定? 在按公司规模划分结果时,我们发现大型、中型和小型公司将LTS列为它们对升级JDK版本的主要影响。 随着越来越多的公司转向新的Java版本,这种过渡的原因很重要。LTS和安全性占响应的近50%是有道理的,因为它们都是相似的因素。由于Oracle在近一年前放弃了对Java8的积极支持(而 仍然提供扩展支持,直到2030年),越来越多的安全原因已经提交给组织,以适应这些较新的版本。 JRE/JDK分布 我们的下一个问题要求受访者分享他们使用的JRE/JDK发行版。与去年的结果一样,OracleJava仍然是30%的首选发行版。通用OpenJDK和AdoptOpenJDK/Adoptium排名前三的分别为21%和15%。OpenLogicOpenJDK的发行版有2%在调查受访者中的代表性。 您使用哪个JRE/JDK发行版? 预算升级计划 在这里,我们要求受访者指出他们的公司是否有计划增加Java开发工具的预算。随着公司继续雇用Java开发人员,对技术来增强他们的体验的需求也在增加。Java开发人员在创建应用程序方面越有效,保留的机会就越大,应用程序也就越好。 您的公司是否计划在2023年增加您的Java开发工具预算? 添加Java开发人员 每个公司都渴望拥有优秀和高效的Java开发人员。即使市场如此,很明显,对Java开发人员的需求仍然非常强劲。 您的公司是否计划在2023年增加更多的Java开发人员? 在整个Java社区中,这始终是一个令人放心的迹象。随着我们进入2023年,人们对优秀的Java开发人员的持续渴望和需求。无论您可能不这么认为,Java仍然是大型企业应用程序的首选编程语言,并且至今仍被广泛使用。我们认为这种趋势不会很快改变。 Java应用程序体系结构趋势 在这里,我们要求受访者分享他们开发的主要应用程序的体系结构。 基于微服务的应用程序最受欢迎,占32%,其次是单片应用程序,占22%。接下来,模块化单片应用程序占响应的12%,而面向服务的体系结构占10%。 您开发的主要应用程序的体系结构是什么? 较大的公司继续显示微服务的使用率增加了35%,与较小公司的28%形成鲜明对比。 拥有100名员工以下的公司 拥有超过100名员工的公司 微服务作为Java应用程序解决方案的增长已经在公司使用的Java生态系统中达到了普及的高度。造成这种情况的原因有很多,包括将应用程序的架构转换为微服务的代价高昂,以及创建更多的混合应用程序,这些应用程序已被证明对成熟的应用程序更有成效。这些因素解释了为什么有更大比例的微服务被更大的100+员工公司采用。 微服务趋势 对于报告使用微服务的受访者,我们询问了一系列问题,这些问题涉及他们采用微服务的状态、他们如何使用微服务、他们应用程序中的微服务数量以及他们在基于微服务的应用程序中的选择。 微服务采用状态 在这个问题中,我们要求受访者分享他们采用微服务的状态。回答表明,大多数组织要么拥有完全基于微服务的应用程序,要么正在计划阶段,要么正在过渡到微服务架构。 您采用微服务的状态是什么? 每个应用程序的微服务 然后,我们询问了构成受访者基于微服务的应用程序的微服务数量。27%报告拥有1-5个微服务,16%报告拥有6-10个微服务。在规模 的高端,8%表示拥有11-20个微服务,17%表示拥有超过21个微服务。那些报告不了解其应用程序中使用的微服务数量的人占总数的15 %,而18%的人报告没有。 您的主要应用程序中有多少个微服务? 拥有100名员工以下的公司 拥有超过100名员工的公司 拥有超过1000名员工的公司 这是一个有趣的细分,显示了公司的规模如何极大地影响了所使用的微服务应用程序的数量。有道理的是,公司越大,微服务的使用量就越大。现实是,微服务已经存在了一段时间,这似乎允许大型公司在其应用程序中实现大量的微服务。 微服务框架的使用 在我们的下一个问题中,我们要求受访者分享他们在微服务应用程序框架中的首选。与去年一样,SpringBoot仍然是顶级的微服务应用程序框架 ,占59%。Quarkus,Micronaut,DropWizard和Vert.x分别以8%,6%,2%和1%排名倒数四位。 “其他”类别中的常见框架包括企业应用程序规范,如MicroProfile,以及Spring框架。但是,最常见的“其他”响应是他们没有使用一个微服务框架。 您在主项目上使用的微服务应用程序框架是什么? 微服务应用程序启动时间 在这个问题中,我们要求受访者估计他们的基于微服务的应用程序自创建以来所经历的启动时间增加的百分比。我们的调查发现,总共 50%的人经历了增加,而50%的人没有。 略高于去年的结果,17%的受访者(2022年为13%)报告称,自创建以来,他们基于微服务的应用程序的启动时间增加了50%以上。 自最初的微服务转换/创建以来,您是否经历了在微服务应用程序中启动服务所需的时间增加? 微服务应用重新部署时间 然后,我们要求受访者权衡远程部署其集装箱化环境所需的时间。我们的调查发现,46%的