写点什么

InfoQ 2019 年 Java 发展趋势报告

  • 2019-07-19
  • 本文字数:3860 字

    阅读完需:约 13 分钟

InfoQ 2019 年 Java 发展趋势报告

本文要点


  • 近期要发布的 Java 13(非 LTS 版本)进入创新者阶段。

  • Java 11(LTS 版本)进入早期采用者阶段,Java 8 进入晚期大众阶段。

  • 非 HotSpot 虚拟机采用率在增长,OpenJ9 和 Graal 进入早期采用者阶段。云原生计算的发展在驱动着企业转向遵循云原生原则(启动速度快、内存占用低)的 JRE。

  • 一般的开发者对 Graal 可能不太感兴趣,但因为它可以将 Java 编译成本地库,同时支持多语言,所以我们会进一步关注它。

  • Java 微服务框架大洗牌,Spring Boot 和 Spring Cloud 进入晚期大众阶段,它们已经成为企业信任的 Java 微服务开发框架。Helidon 和 Microprofile 进入早期采用者阶段,不过我们认为 vert.x 会因为相对利基的市场无法跨过早期采用者阶段。



在这份报告里,InfoQ 编辑团队对 Java 生态系统的技术采用趋势进行了分析,不仅涉及到了 Java,还有其他相关的编程语言,比如 Kotlin 和 Scala,以及 Java 虚拟机、基于 Java 的框架和库。我们将讨论 Core Java 的发展趋势,比如 Java 11 和 Java 13 的采用情况,以及 Web 开发框架的演化,比如 Spring Boot 和 Microprofile。


这份报告旨在为技术负责人提供帮助,帮他们做出中长期的技术决策,同时也让开发者知道该把宝贵的时间花在学习哪些技术上。这是我们第一次发布 Java 趋势报告,尽管 InfoQ 从 2006 年成立以来就一直在报道 Java 相关的主题,而且多年来也一直在内部跟踪 Java 和 JVM 的发展趋势。


InfoQ 和 QCon 关注处于“创新者、早期采用者和早期大众”阶段的技术。我们尝试找出符合 Geoffrey Moore 所谓的早期市场的技术。早期市场“客户群由技术爱好者和有远见的人组成,他们希望走在机遇前面,解决迫在眉睫的问题”。我们也在寻找可能会“跨越鸿沟”以便得到更广泛采用的技术。需要注意的是,技术在采用曲线上的确切位置可能会有所不同。例如,湾区公司目前广泛采用 Java 11,但在其他地方可能不是这种情况。


与 2018 年的内部 Java 趋势图相比,新趋势图在创新者阶段新增了 Java 13(非 LTS 版本)。这导致了一些列连锁反应,Java 11(LTS 版本)被移到了早期采用者阶段,而 Java 8 被移到了晚期大众阶段。


我们看到了非 HotSpot 虚拟机的采用率在增加,OpenJ9 和 Graal 进入了早期采用者阶段。我们认为,云原生计算的发展驱动着各个企业转向遵循云原生原则(启动速度快、内存占用低)的 JRE。一般的开发者对 Graal 可能不太感兴趣,但因为它可以将 Java 编译成本地库,同时支持多语言,所以我们会进一步关注它。


Java 微服务框架大洗牌,Spring Boot 和 Spring Cloud 进入晚期大众阶段。这表示它们的采用率增长正在减缓(因为市场趋于饱和),而不是说开发者会弃用这些框架。Helidon 和 Microprofile 进入早期采用者阶段,不过我们认为 vert.x 会因为相对利基的市场无法跨过早期采用者阶段。


以下内容整理自 InfoQ Java 板块编辑的内部沟通邮件,提供了更多有关我们如何制定 Java 趋势图的背景信息。


Daniel Bryant,独立技术顾问,Datawire 产品架构师,InfoQ 新闻板块主管:


又到了更新 Java 趋势图的时间。我迫不及待地想要看到我们在 2018 年所跟踪的技术是否出现在了趋势图正确的位置上,以及新增或移除了哪些技术。


首先是创新者阶段的变化:


  • 将 Java 11 改为 Java 12/13;

  • 将 OpenJ9 移到早期采用者阶段;

  • 加入 Java 模块化系统;

  • 加入 Quarkus。


早期采用者阶段的变化:


  • 将 Spock 移到晚期采用者阶段;

  • 将微服务框架移到晚期大众阶段,但 Lagom 和 Microprofile 除外?

  • 加入 Helidon。


Erik Costlow,软件架构师,专注于安全和 Java 领域:


  • 将 Java 8 移到落后者阶段。Java 8 是在 2014 年发布的,Oracle 已经不再为它提供公共免费支持。

  • Java 11(LTS 版本)仍然待在早期采用者阶段;

  • Java 13(非 LTS 版本)进入创新者阶段;

  • 开发者对 Graal 本身并不是很感兴趣,但他们需要这些东西:

  • 可以将 Java 编译成本地应用(本地镜像);

  • 多语言支持(例如 Ruby Truffle)。

  • Graal 本地镜像有一个问题——如果 Java 或其他 JVM 供应商也提供了静态编译那会怎样?本地镜像并没有通过 TCK。关键问题是其他 JVM 供应商可以这么做吗?如果他们这么做了会怎样?

  • 非 HotSpot 虚拟机除了 Graal 和 OpenJ9,还有 Excelsior、Azul、Liberica、Corretto、Alibaba Dragonwell、AdoptOpenJDK、RedHat,等等。

  • JVM 上的 Node 已死。

  • 将测试框架移到早期大众阶段。

  • 将 Spring Boot 移到晚期大众阶段。

  • 将“Java EE 到 Jakarta EE 的迁移“放在创新者阶段,我觉得这会很有意思。


现在有太多的 Java 发行版。我希望在创新者阶段能够有与这个问题相关的内容:如何大规模管理这些发行版或者如何在不同团队、系统之间管理好它们。如果一个应用程序可以被编译成本地应用,那么谁来负责给”JRE“打补丁?这又意味着什么?


Dustin Schultz,首席软件工程师,Pluralsight 作者,技术布道师:


我赞同关于创新者阶段的说法。


但我不认为 Spock 会跳出早期采用者阶段,毕竟我还没有看到它被大量采用。


除了 Vertx,我会将其他微服务框架移出早期采用者阶段……或许 Lagom 可以留下。我不确定它们在以后会不会跳出这个阶段。


或许可以将 Groovy 移到晚期大众阶段,因为它的表现太一般。


Charles Humble,InfoQ 首席编辑:


我同意你们的大部分说法。Java 模块化系统采用也是一个很有趣的话题。我敢肯定 OSGI 拥护者对于将它放在创新者阶段会有意见,但这样做可能是对的。


我想可以将 Clojure 移到晚期大众阶段。当然,人们还在用它,但我感觉到它的使用量在下降,而且它本身面向的就是利基市场。


我会将 Ceylon 移掉。它一直以来都没有获得太多关注,而且我不认为进入 Eclipse 会给它带来多大帮助。这个项目的活跃度很低,过去 6 个月只有 10 个代码提交。


测试框架的趋势看起来相当稳定。我们要把它移掉吗?从采用率来看,我给它们排个顺序:JUnit、TestNG/Cucumber、Spock,但似乎变化不大?


SmartBear 最近收购了 Cucumber,可能会促进它的发展,但即使是这样,我仍然倾向于把它们移掉。


人们似乎对 JVM 上的 Node 不感兴趣?我想可以把它移掉。


我很想把 Kotlin 移到早期大众阶段,它是我近来最经常听到的一门 JVM 编程语言,这要得益于 Android 开发的流行。可以说,它已经越过了鸿沟,但仍然落后于其他编程语言,比如 Groovy、Swift 或 Go 语言。


我觉得 Scala 可以留在晚期大众阶段,人们会逐步弃用它。


关于 Java,我也不确定该怎么说。我所知道的是,非 LTS 版本的采用量非常有限,它们或许可以被放在创新者阶段,但很奇怪的是,它们当中有些已经进入 EOL 阶段。不管怎样,我认为 Java 8 仍然处在晚期大众阶段,Java 11 在早期采用者阶段,Java 11 在创新者阶段?


Ben Evans,New Relic 首席工程师,JVM 技术架构师:


我非常赞同有关 Java 非 LTS 版本的说法。来自生产环境的数据表明,Java 11 部署量很稳定,并有了 5%左右的增长,我觉得它应该处在早期采用者阶段。


Ceylon 绝对可以移掉,它从来就没有得到过足够的关注,它的份额被 Kotlin 吃掉了。


Java 8 应该留在早期大众阶段,现在仍然有很多服务是用 Java 8 开发的,还有很多主流产品(例如 Cassandra)不支持 Java 8 以后的版本。我还没看到有哪个主流产品放弃对 Java 8 的支持(但我相信 ElasticSearch 会是第一个)。


作者介绍


Ben Evans 是 JVM 性能优化公司 jClarity 的联合创始人之一。他是 LJC(伦敦 JUG)组织者和 JCP 执行委员会成员,帮助定义 Java 生态系统标准。Ben 是 Java Champion,三次 JavaOne Rockstar 演讲者获得者,“The Well-Grounded Java Developer”、新版“Java In a Nutshell”和“Optimizing Java”作者,定期提供 Java 平台、性能、架构、并发、初创企业等话题相关的演讲。


Erik Costlow 是一位具有丰富 Java 经验的软件安全专家。他在 Contrast Security 从事开发者管理工作。Contrast 公司专注于传感器与应用程序的集成,让它们能够基于应用程序如何使用数据来检测安全威胁。Erik 还是 Oracle 的首席产品经理,主要负责 Java 8 的安全问题。他还协助 Turbonomic 产品管理团队在数据中心/云性能自动化方面实现了 1 亿美元的年收入。Erik 还负责 Fortify 静态代码分析器的产品管理,这是一个帮助开发人员发现和修复代码漏洞的工具。Erik 还在 Packt Publishing 的课程平台上推出了几门有关数据分析、统计和密码学的课程。


Dustin Schultz 是一名首席软件工程师、Pluralsight 作者和技术布道师。他拥有计算机科学学士和硕士学位,从事软件开发工作超过 15 年。Dustin 热爱一切与科技有关的事物。他也喜欢学习,总是对一切充满了好奇心。他妈妈在他小时候给他买了一本有关“事物原理”的书,因为她厌倦了他老是有问不完的问题。


Charles Humble 于 2014 年 3 月接任 InfoQ 总编一职,指导我们的内容创作,包括新闻、文章、书籍、视频演示和采访。在成为 InfoQ 全职员工之前,Charles 负责 Java 板块的报道工作,并担任 PRPi 咨询公司的首席技术官。这是一家薪酬研究公司,于 2012 年 7 月被普华永道收购。他当时在 PRPi 全面负责开发公司内部使用的软件。作为开发人员、架构师和开发经理,他在企业软件领域工作了大约 20 年。在他还是一名业余音乐爱好者。


Daniel Bryant 是 Datawire 的独立技术顾问和产品架构师。他的技术专长主要是“DevOps”工具、云/容器平台和微服务实现。Daniel 是 Java Champion,并为几个开源项目做出了贡献。他还为 InfoQ、O’Reilly 和 TheNewStack 撰写文章,并定期出席 OSCON、QCon 和 JavaOne 等国际会议。他在空闲时间喜欢跑步、阅读和旅行。


原文链接


Java InfoQ Trends Report - July 2019


2019-07-19 09:1911892
用户头像

发布了 731 篇内容, 共 451.1 次阅读, 收获喜欢 2002 次。

关注

评论

发布
暂无评论
发现更多内容

Bartender 5 for mac(菜单栏图标管理软件)v5.1.2中/英激活版

理理

aspose.words与文件格式转换实现

程序员架构进阶

word java-API 9月日更 9月月更 aspose.words

UnlockGo(安卓版)For mac 手机解锁工具

Rose

38个LomBok工具注解:LomBok架构分析与注解使用案例(必须收藏)

肖哥弹架构

Java lombok

Nexpose 6.6.267 发布下载,新增功能概览

sysin

漏洞扫描 Nexpose

6个 Spring messaging注解:整体架构分析与注解应用案例(必须收藏)

肖哥弹架构

Java spring spring messaging

Blu-ray Player Pro for Mac(蓝光高清播放工具)v3.3.22中文版

Rose

Sketch for mac(专业矢量绘图设计软件)v100.3中文破解版

Rose

站在 AI 与 Web3 的交汇路口,EraAI 如何带领投资者进入智能化决策时代?

股市老人

OmniGraffle Pro for mac(思维导图/流程图软件)v7.23.1正式注册版

Rose

Stata 15:数据管理及统计分析工具

Rose

IDA Professional 9.0打开显示30016错误解决方法

Rose

写在 Pencils Protocol TGE 前:看好 $DAPP,加密社区共识是王道

大瞿科技

创业者必读!选择拍卖源码还是自建开发,哪种方案更安全?

软件开发-梦幻运营部

VMware Workstation 17.6 Pro macOS Unlocker & OEM BIOS 2.7 for Windows

sysin

macos vmware OEM unlocker Workstation

征程 6E/M 快速上手实战 Sample-PYM

地平线开发者

自动驾驶 算法

LED大屏幕:现代显示技术的璀璨之星

Dylan

技术 科技 LED LED display 屏幕

写在 Pencils Protocol TGE 前:看好 $DAPP,加密社区共识是王道

加密眼界

VMware Workstation 17.6 Pro macOS Unlocker & OEM BIOS 2.7 for Linux - 在 Linux 上运行 macOS Sequoia

sysin

macos vmware OEM unlocker Workstation

Cinema 4D 2024 For mac/win 中文破解版 C4D 2024下载安装教程

Rose

macos big sur 软件icons图标大全(新增至2719枚大苏尔风格图标)

Rose

写在 Pencils Protocol TGE 前:看好 $DAPP,加密社区共识是王道

石头财经

写在 Pencils Protocol TGE 前:加密市场共识才是王道,拥抱社区

BlockChain先知

狂奔的荣耀,稳健的苹果:AI Agent手机竞速赛

脑极体

AI

Corel Painter 2023序列号 强大的数字绘画软件

理理

Maplesoft Maple 2024 for mac v2024.0 专业的数学计算软件

Rose

Understand for Mac(优秀的源代码审查工具)

Rose

探索 RAD:5 个最佳实践案例解析

NocoBase

低代码 实践案例 无代码 RAD 快速应用开发

Magnet AXIOM 8.0 Windows x64 Multilingual - 数字取证与分析

sysin

数字取证 magenet AXIOM

最新版Downie 4 v4.7.28中文版 苹果mac网络视频在线下载器

理理

InfoQ 2019 年 Java 发展趋势报告_语言 & 开发_Ben Evans_InfoQ精选文章