傲根泥客

InfoQ最新Java趋势陈述及2022年解读

  本陈述概述了 InfoQ Java 修改团队现在是怎么看待 Java 范畴内的技能选用和新式趋势的。

  咱们要点重视 Java,以及相关的言语(如 Kotlin 和 Scala)、Java 虚拟机(JVM)和根据 Java 的结构和东西。

  这是咱们发布的第四份 Java 趋势陈述。自 2006 年以来,咱们一向在内部盯梢 Java 和 JVM 的发展趋势,这个论题现已有许多的新闻报导。

  为了更好地了解 InfoQ 和 QCon 报导的关于当时和未来的发展趋势,咱们运用了 Geoffrey Moore 在同名 作品 中提出的“跨过距离”技能思想模型。

  咱们企图找出 Moore 所说的前期商场,前期商场的“客户群是由技能爱好者和有远见的人组成的,他们期望在时机或火烧眉毛的问题呈现之前捉住它们。”

  Java 17 现已进入了前期选用者阶段,由于一些结构,特别是 Spring,现已将 Java 17 作为基线。

  咱们也要感谢为更新 2022 年“跨过距离”模型供给输入的其他 Java Queue 修改:

  Korando:作为 Amber 项目的一部分,Record 类、方式匹配和对字符串的改善让我最为振奋。我知道,在我的职业生涯中,这些特性在进行数据转化、处理格式化字符串和其他令人懊丧的使命时都十分有用。运用这些特性让我感到振奋,未来的 Java 开发者也将获益于这些特性,不用像我相同阅历这些波折。

  Santana:Java 8 现已过期了。在最近的一项商场调查(如 JRebel 的陈述)中,咱们可以看到 Java 8 的受欢迎程度正在下降。这种改动关于 Java 商场和开发者体会职业(如 IDE、结构、集成东西等)来说都是一件功德。咱们还可以看到商场和 Java 社区为将 Java 11 作为最低版别要求付出了巨大的尽力,比方 Quarkus 和 Jakarta EE 的最新版。我信任其他运用程序结构也会仿效,将 Java 11 作为最低版别要求。当咱们谈及 Java 渠道,我信任这些东西和结构占了企业代码的 80% 左右,所以它们会不断更新,避免失掉企业开发者的喜爱。向 Java 11 的搬迁也表明晰一种更快节奏的文明,Java 和 JDK 版别将更频频地更新,至少每两年更新一次。

  Adoptium Marketplace 的发布和可重复构建的到来比许多人认识到的要重要得多,关于那些有必要关怀供应链安全的企业和个人来说特别如此。

  Redlich:上一年发布的 Java 18 和 Java 19 供给了新的预览和孵化器特性,如虚拟线程、结构化并发、switch 方式匹配、Record 方式以及外部函数和内存 API。这些特性以 JEP 的方式为 Amber 项目、Loom 项目 和 Panama 项目 供给了持续的奉献。Java 20 方案于 2023 年 3 月发布,它将供给这些特性的晋级预览和孵化器版别。

  Sheasha:自从最新的 Java 17 LTS 发布以来,咱们留意到 Java 17 的选用速度比 Java 11 发布时要快。这是由各式各样的要素导致的,包含公司选用更现代的 DevOps 流程和管道,支撑更快更简单的运用程序更新。另一个要素是结构和库选用了更快的发布节奏,而这在曾经是开发者晋级运用程序的一大妨碍。最新的 Spring Framework 6 根据 Java 17,这向开发者传达了选用最新版别 Java 的决计。另一个拥抱更快 Java 发布节奏的团队是 Minecraft 团队,他们现在向数百万玩家发布的更新也是根据 Java 17 的。

  咱们还看到越来越多的开发者运用非 LTS Java 版别(Java 18+),由于他们更有决心为自己的运用程序选用更新的 Java 版别,这样他们可以运用 Java 的新特性,而不用再等候数年。咱们看到许多开发者在创立原型或开发新运用程序时挑选了最新的非 LTS Java 版别。但关于出产环境来说,LTS 版别仍然是大多数团队的挑选。

  Santana:在最新的 LTS 版别中,Java 17 为 Java 开发者带来了几个新特性,其间 Record 方式带来了一个主要与企业事务相关的新视角。

  Sheasha:在 Java 功能方面有许多令人振奋的改动。许多开发者都很快乐看到 Loom 项目的更新,由于他们现在可以尝鲜一些新的特性,如虚拟线程。

  Korando:将 Loom 项目的要害特性合并到主线 Java 发行版中或许是曩昔一年里最重要的改动。Loom 项目的开发在曩昔几年中一向备受重视,由于它许诺的更高的水平可伸缩性将被运用于许多 Java 开发者的运用程序中。虽然一些特性,如虚拟线程,现在现已准备好用于出产环境中,但毫无疑问,许多开发者都在热切地等候它们从预览状况移出,成为 LTS 的一部分,并有望在 2023 年 9 月与 Java 21 一同发布。

  Evans:我听到许多人都在议论 Loom 项目,但我对它持保存情绪——我想比及咱们有了更多的实践经历之后再说。我以为它或许会像一些人以为的那样改动游戏规则,但我不以为这是一件简单的作业。

  Redlich:2022 年 9 月,备受等待的 Java 19 发布了对虚拟线程的支撑。这方面现已有了孵化器结构,如 Helidon Níma(Oracle 供给的微服务结构)和 Vert.x 供给的虚拟线程孵化器项目。我估计其他供货商也会仿效。

  Santana:GraalVM 越来越受欢迎,这为 Leyden 项目 供给了巨大的空间。这是一场怎么让 Java 发动更快的比赛!

  Evans:OpenTelemetry 现已发布了 1.0 版别,关于这样一个呈现时刻不长的规范来说,这算是取得了巨大的前进。我没想到 OpenTelemetry 会这么容易逾越现已很急进的预期。它将完成甘特提出的“到 2023 年末完成遥测大部分流量”的方针,这远远超出了方案。

  Sheasha:跟着越来越多的 Java 作业负载搬迁到容器中,咱们看到了一种改变——从只评论怎么容器化 Java 运用程序到怎么最好地容器化 Java 运用程序。咱们看到了更多关于怎么在容器中运转运用程序的最佳实践。例如,微软宣告了一篇关于内存分配和废物搜集的文章。

  在 2021 年 4 月推出自己的 OpenJDK 下流发行版后,微软持续拥抱 Java 编程言语。

  Sheasha:跟着立异速度的加速,现代化仍然是许多开发者面对的应战。发布的 Java 版别越多,运用程序在 Java 版别和结构方面的距离就越大,并且越来越难以缩小。这便是为什么咱们看到越来越多的公司在现代化东西进步行了投入。一些项目(如 OpenRewrite)对咱们来说很重要,由于它们可以让咱们在不扔掉运用程序的一起坚持立异。咱们还看到了一些新的项目,例如用于 Java 的 Eclipse 搬迁东西包,它可以协助开发者进行 Java 版别搬迁。

  开发者疲于学习和把握开发运用程序所需的许多常识,由于不断有新的库、结构和特性呈现。此外,咱们看到了“DevOps”中越来越多的“Ops”部分渗透到开发者的责任傍边,所以开发者现在也需求了解 Docker 和 Kubernetes。

  云是一切处理方案的新方针。咱们看到了向各种环境的搬迁,不仅是基础设施即服务(IaaS),还包含任何可以提高 Java 开发者功率并为操作层供给更多笼统的处理方案。

  从软件开发者的视点来看,无服务器带来了可伸缩性和简单性。为了运用这些优势,咱们可以看到一些处理方案转向了原生。

  Evans:本年,Quarkus 好像现已开端重视开发者的认识。我经常会遇到测验运用 Quarkus 的开发者,虽然实践的运用数量仍在增加傍边。我想人们现已认识到它不仅仅是原生编译的 Java,它也是一流的 Kubernetes Java,具有很棒的开发体会。

  Korando:在 JavaOne 2022 上宣告将 Graal JIT 编译器和原生镜像合并到 OpenJDK 中,这是出乎咱们预料的一件事。GraalVM 的许多技能都很激动人心,但关于许多 Java 开发者来说它们很难运用。将这些要害特性合并到 OpenJDK 中可以让 Java 开发者更简单地运用它们!

  Santana:咱们知道,开发东西和架构是一个巨大的工业。因而,咱们可以看到许多公司在议论“完美处理方案”和非权衡决议计划。但实践上,Java 在其他方面被证明具有一致性,并且在一些场景中有一些成功事例。每一种架构决议计划都存在权衡,咱们需求了解其上下文,以便将最佳处理方案运用到最佳的场景中。Java 生态体系向咱们展现了它是一个出产安排妥当的渠道,它为微服务、CQRS、云原生、无服务器、事情驱动规划、单体体系、SQL、NoSQL、映射器、活动记载等供给了处理方案。

  Sheasha:就我个人而言,我很幸亏 Java 在我的整个职业生涯中为我打开了许多扇门。我曾有时机在 Java 生态体系中担任开发者、团队负责人、开发者布道师和程序司理。

  Java 在言语方面的不断立异和改善让这个范畴变得风趣,还使 Java 成为处理各种职业各种问题的绝佳挑选。对我来说,我喜爱在 Java 范畴作业的一个最大的理由是 Java 社区,社区里满是来自世界各地的充满热情的人才。

  Evans:逐步跟 Java 8 离别,并让社区转向 Java 17 及更高版别,这另人感到振奋。此外,在可观测性方面,特别是 OpenTelemetry,正变得越来越强壮。此外,还有一些关于 Profile 的新作业(包含 Java Flight Recorder)正在发动。

  Janssen:我真的很等待与 Loom 项目协作,期望咱们很快就可以开端在项目中运用它。

  需求留意的是,咱们的观念只涵盖了一部分东西。Java 生态体系的不同部分或许会有不同的体会。咱们的这份 2022 年陈述可以作为评论的引子,而不是一个清晰的声明。咱们也期望人们可以就职业的发展方向打开揭露的评论。