不断变化的 Java 世界

举报
千锋教育 发表于 2023/07/20 15:59:53 2023/07/20
【摘要】 Vaadin 的 Java 现状报告是关于当今开发人员如何使用 Java 的知识宝库。让我们深入研究一下。Vaadin 最近发布了有关 Java 在企业中的状况的新研究。结合其他来源,这项调查可以很好地了解 Java 的演变。总体看来,Java 充满活力,甚至重新燃起了人们的兴趣,因为它继续为构建各种规模和用途的应用程序提供坚实的基础。我在企业报告中深入研究了 Vaadin 的2023 年 ...

Vaadin 的 Java 现状报告是关于当今开发人员如何使用 Java 的知识宝库。让我们深入研究一下。

Vaadin 最近发布了有关 Java 在企业中的状况的新研究。结合其他来源,这项调查可以很好地了解 Java 的演变。总体看来,Java 充满活力,甚至重新燃起了人们的兴趣,因为它继续为构建各种规模和用途的应用程序提供坚实的基础。

我在企业报告中深入研究了 Vaadin 的2023 年 Java 现状以及其他一些报告。本文总结了我认为当今企业 Java 最重要的发展。

跟上 Java 的步伐

在过去的十年里,Java 经历了一系列的渐进式改进。通过Valhalla 项目中的 Java 语言重构和Loom 项目中的 Java 并发更新,我们目前正处于更重大变化的风口浪尖。这些即将发生的变化,加上安全考虑,使得保持最新的 Java 版本变得尤为重要。


Vaadin 的研究表明,到目前为止,使用 Java 的开发人员一直在跟上版本更新。26% 的受访者表示他们使用的是版本 17 或更高版本;21% 正在升级;37% 计划升级。

这些结果与 New Relic 的研究一致,表明 Java 11 正在成为当前的 LTS(长期支持)标准,逐渐取代 Java 8。Java 17 是最新的 LTS 版本,以两年的发布节奏取代 Java 11,并且很快将成为 Java 的基线升级。下一个 LTS 版本将是Java 21,目前计划于2023 年 9 月发布。

网络安全威胁

调查结果表明,安全性是 Java 开发人员最关心的问题,这是有充分理由的。Log4j 漏洞的发现使 Java 应用程序和其他地方的代码漏洞成为人们关注的焦点。网络安全是一场缓慢移动的飓风,似乎只会随着时间的推移而增强力量。

Vaadin 报告表明,78% 的 Java 开发人员将“确保应用程序安全”视为核心关注点;24% 的人将其描述为一项重大挑战;54% 的人表示这有点挑战。


Java 本身就是一个非常安全的平台。但与任何其他语言一样,它也容易受到第三方漏洞的影响。编写和部署安全的 Java 应用程序需要在整个应用程序生命周期和技术堆栈中保持良好的安全实践。甚至联邦政府也通过 CISA 认真对待开源软件的安全漏洞跟踪,并敦促采用零信任架构

由于 Java 是一个可靠的、不断发展的平台,因此 Java 开发人员有能力应对 Web 应用程序面临的非常真实且不断变化的威胁。我们只需要意识到安全问题并将网络安全融入到我们的日常开发活动中即可。

开发者经验

根据 Vaadin 的研究,76% 的受访者认为招聘和留住开发人员是一项重大挑战或有点挑战。当然,这是一个全行业的问题,开发人员的倦怠和不满导致吸引和留住优秀软件开发人员的重大困难。

也许考虑开发人员保留的最佳方法是根据开发人员体验(或 DX)。与其他程序员一样,Java 程序员希望在一个支持我们的努力并允许我们发挥我们的技能和创造力的环境中工作。支持性环境包含开发工具和流程以及组织的整体文化。 

改善开发人员体验的一种方法是通过强大的 DevOps 基础设施,它可以简化部署等压力较大的开发阶段并带来一致性。开发运营和开发人员经验之间存在相互作用。改进开发人员使用的工具和流程使我们更容易维护它们并确保自适应正确性。

云原生与自托管部署

部署在 Vaadin 研究中占有重要地位。云基础设施和无服务器平台(云原生环境)被视为 Java 应用程序的重要演变。目前,55% 的 Java 应用程序部署到公共云。本地和私有托管仍占应用程序部署的 70%。Kubernetes 和无服务器占部署的 56%,分布在公共云、本地部署和 PaaS 之间。

在无服务器提供商中,Amazon Web Services (AWS) 处于领先地位,17% 的受访者表示他们使用 AWS Lambda 部署 Java 应用程序。根据调查回复,微软 Azure 和谷歌无服务器云平台均占所有部署的 4%。

继本地服务器和虚拟机之后,本地 Kubernetes 是最流行的部署方式,有 29% 的受访者使用。

这些数字表明 Java 生态系统正在继续向云原生技术发展,但仍有大量功能在自托管服务器上运行。许多 Java 商店都感受到采用云平台的紧迫感。但一些开发人员仍然更喜欢自托管平台和框架,而不是被锁定在云提供商的计算出租业务模式中。

Java应用程序类型

毫不奇怪,Java 应用程序的最大份额是 Web 应用程序,在调查时桌面应用程序仅占所有开发产品的 18%。至于使用 Java 的新应用程序和现有应用程序的组成,这是一个多元化的群体。Vaadin 研究进一步区分了当前的技术堆栈和计划对堆栈的更改。

对全栈 Java 应用程序的持续关注特别有趣。整整 70% 的受访者表示,为即将到来的项目计划了新的全栈 Java 应用程序。 

全栈应用程序的背后是后端开发。据受访者称,后端 API 占新投资计划的 69%。

在全栈和后端开发之后,受访者的开发工作分散在现有应用程序的现代化方面(57%);开发异构(Java 与 JavaScript 或 TypeScript)全栈应用程序(48%);将现有应用程序迁移到云端(36%);为现有 Java 后端构建新前端 (29%)。

该调查还让我们了解了 Java 开发人员目前青睐的前端框架。Angular (37%) 和 React (32%) 处于领先地位,其次是 Vue (16%)。这与一般行业形成鲜明对比,React 是最受欢迎的框架。Svelte 等其他框架的表现不够强劲,没有出现在调查中。

鉴于 Spring 的受欢迎程度和实用性,Java 开发人员大量使用 Spring 也就不足为奇了。在受访者中,79% 的人表示使用 Spring Boot,76% 的人使用通用 Spring 框架。开发人员预测它们都将继续被使用。

现代化和可维护性

Vaadin 调查中 57% 的受访者表示现代化是计划投资的主要关注点。现代化排名最高的原因是可维护性。 

可维护性是各种类型和堆栈的开发人员普遍且长期关注的问题。由于存在大量我们称之为“遗留”代码(即任何已经用 Java 构建的代码),我们强烈意识到我们需要升级现有系统,以便可以对它们进行处理并将其引入到 Java 中。未来。这是一种健康的冲动。找到意愿和资金来重构和加强现有的东西是任何长期项目的关键。

在可维护性之后就是安全性,我们已经讨论过这一点。不过,在这种情况下,安全被视为现代化的另一个原因,20% 的受访者将安全列为首要原因,16% 排在第二位,21% 排在第三位。安全再次成为开发人员合理且健康的关注焦点。

Java 和用户界面

在 Java 开发人员发现的所有挑战中,构建“直观且简单的用户体验”似乎是最大的挑战。这对于 30% 的开发者来说是一个重大挑战,对于 51% 的开发者来说也是一个挑战。

UI 是任何应用程序中棘手的部分。我感觉到 Java 开发人员非常擅长构建后端 API 和中间件,并且渴望找到一种使用他们熟悉的技术来跨堆栈进行构建的方法,只要注意到对全堆栈 Java 应用程序的高度重视即可。一位受访者在调查中评论道:“我们希望在后端和前端都使用 Java。” 也许有一天,通过 WASM 这将成为可能。

目前,Java 开发人员面临着要么构建像 React 这样的 JavaScript 框架,使用允许用 Java 编码并用 JavaScript 输出的技术(如 JavaServer Faces 或 Google Web Toolkit),要么使用试图包含以下内容的框架: Java 和 JavaScript 都在HillajHipster等单一保护伞下。(我已经在 InfoWorld 上写过关于这两个问题的文章。)

Java与其他工具的集成

从整个行业来看,Java 开发人员已经转向更好的 DevOps 实践,例如CI/CD以及采用第三方集成。Vaadin 报告将日志记录、可观察性和单点登录 (SSO) 解决方案确定为最流行的工具。Kubernetes、企业资源规划 (ERP) 和客户关系管理 (CRM) 等业务工具、devops 和多因素身份验证 (MFA) 解决方案完善了 Java 生态系统中其他最常用的第三方工具。

结论

与针对JavaScript的 JavaScript 现状调查一样,Vaadin企业报告中的 Java 现状提供了 Java 的广泛描述,包括 Java 的现状和发展方向。总体而言,Java 似乎正处于稳定和不断发展的活力之中。两者共同表明了一项为未来做好准备的重要技术。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。