【方向盘】2021年JVM生态报告:Java 11使用率超Java 8

简介: 有人说,Java不行了

在这里插入图片描述

Override : 即外壳不变,核心重写!
本文已被 https://yourbatman.cn收录; 女娲Knife-Initializr工程可公开访问啦;程序员专用网盘 https://wangpan.yourbatman.cn;技术专栏源代码大本营: https://github.com/yourbatman/tech-column-learning;公号后台回复“ 专栏列表”获取全部小而美的 原创技术专栏

你好,我是方向盘(YourBatman)

📚前言

有人说,Java不行了,Node将崛起;
有人说,Java不行了,Python将崛起;
有人说,Java不行了,Kotlin将崛起;
有人说,Java不行了,Golang将崛起;

那么Java到底行不行呢?还得市场说了算,说到这个市场,那就不得不关注每年的JVM生态报告了,看透这一切。本文分享是2021年的生态报告,显然是迟到了的,所以可能你已经阅读过。
在这里插入图片描述
什么是Java?什么是JVM?

Java是一门语言,JVM是一个生态;Java是跨平台的语言,JVM是跨语言的平台。

当下,有越来越多的语言选择JVM作为平台。比较知名的有:KotlinScalaGroovy,还有Ceylon、Xtend、Clojure、Fantom等。

🚩所属专栏

🚩相关下载

🚩版本约定

  • 2021年JVM生态报告

✍正文

作为一名Javaer,除了埋头搞好技术本身的应用外,还得抬头看看路。比如Java版本的发布、Java EE版本的迭代、Spring One大会、JVM生态报告等。
在这里插入图片描述
在进行2021年生态报告之前,先简单回顾下2020年的JVM生态报告。

🌈2020年回顾

2020年JVM生态报告旨在了解JDK的实现、工具、平台和应用方面的前景。调查了全球各个大洲的开发者、架构师和团队负责人等,最终总结得出如下几方面的信息。

🚀Oracle JDK在逐渐失去垄断地位

Oracle JDK去年使用率还在70%以上,今年骤降至30%多,但仍旧是第一名。
在这里插入图片描述

🚀JDK 8依旧绝对的主流

当前的市占率为60%+,要知道这个数值去年是79%呢。JDK 11开始崭露头角,已占据25%份额。
在这里插入图片描述

🚀JVM平台第二语言:Kotlin

在JVM平台,Java依旧具备统治地位。Kotlin持续增长,从去年的2.4%增长到今年的5.5%。
在这里插入图片描述

🚀前端框架最火的不是VUE

前端领域,全球使用最多的框架依旧是Angular,Vue 的使用率只有11%,国内人普遍使用,国外人还是首选Angular

另外,在前端框架中,jQuery依然宝刀未老,占有28%的使用率,着实不低。
在这里插入图片描述

🚀IDE霸主:IntelliJ IDEA

虽然Eclipse免费,但完全打不赢IntelliJ IDEA,即使它收费。去年Eclipse还有38%的份额呢,今年为20%,在可预见的将来,你懂的。

另外,IDEA的付费率竟然超过80%。可想而知,若IDEA免费,其它IDE基本没有活路了。
在这里插入图片描述

🚀三大构建工具:Maven依旧遥遥领先

Maven是绝对主流,Gradle逐年上涨,Ant注定慢慢退出历史舞台。
在这里插入图片描述

🚀持续集成:Jenkins一骑绝尘

Jenkins在CI方面的市占率高达近6成,第二名的竟然是None(不用继续集成),然后是Gitlab。

可以看到,和Jenkins同源的Hudson市场份额已越来越低

在这里插入图片描述

🚀代码托管:Git独大

这块的竟然还是蛮激烈的。

  • GitLab作为私有存储库非常流行,并且还有CI/CD、CR功能,做得也还不错
  • GitHub作为公有代码托管平台非常成功,最后被微软已75亿美金收入囊中
  • BitBucket国内很少听闻,但它出品的SourceTree客户端很多人都用过

在全球范围,这三个的市场份额相差都不太大,可谓竞争激烈。但是,他们底层都是Git托管系统,发现没,完全没见SVN的踪影。在这里插入图片描述

🌈2021年JVM生态报告

本报告介绍了关于JVM生态系统状况的最大年度调查的结果。该调查在2021年2月和3月的六周内进行,收集了超过2000名Java开发者的回答。

2021年JVM生态报告的主题是:Java 生态系统的当前状态是什么,开发人员正在使用什么。同样通过抽样收集、统计的方式得出报告。

🚀Open JDK强势崛起

44%的生产中使用免费的AdoptOpenJDK发行版,占据主流。然而可以看到,Oracle依旧占有举足轻重的地位:28%使用它们的OpenJDK,另有23%使用它们的商业付费版本。

Tips:Oracle于2019年4月16号宣布JDK开始 商用收费。JDK从8u211版本开始商用收费。

在这里插入图片描述

🚀Java 11使用率超Java 8

那句“你发任你发,我用Java 8”即将成为过去式。超过6成在生产已使用Java 11,这个使用率略高于钉子户Java 8。
在这里插入图片描述

🚀Kotlin依旧是JVM平台第二语言

过去几年里,JVM平台的语言种类在不断增加。但Java的优势异常明显,遥遥领先。然而可以看见Kotlin正变得越来越流行,使用它的人也不在少数。
在这里插入图片描述

🚀超7成JVM开发者使用IntelliJ IDEA

多年来,我们肉眼可见的看到JetBrains公司的IntelliJ IDEA在Java生态系统中的主导地位,今年自然也不例外。

另外还有个有意思的点是,不少人会同时使用多款IDE。
在这里插入图片描述

🚀构建工具Maven稳居首位

Maven仍然是Java生态系统的头号构建工具,Gradle则稳居第二,使用人数高于去年。
在这里插入图片描述

🚀Spring框架在Java呈垄断态势

在Java的世界里,如果不在使用Spring Boot,就是在使用Spring MVC。Spring家族占据着绝对统治的统治地位,综合计算超8成应用使用了它,而这个比例在国内近乎100%。

总的来讲,对于一个Javaer不懂Spring就基本等同于不会Java,足矣见其地位之高。
在这里插入图片描述

🚀本报告的人员分布

从人员统计上看,北美人占大多数,这个趋势和过去几年一样。好的现象是,全球各地的开发者都在开始逐渐回应,参与到报告中。
在这里插入图片描述

🚀本报告的职位分布

作为技术报告嘛,绝大多数受访者来自于技术背景。超过一半是软件开发人员,还有一些组长、中层领导、会C语言的人。。。
在这里插入图片描述

🍞总结

通过最近两年的JVM生态报告,可以看到一些发展趋势,作为我们学习的引导。

此时此刻已是2022年,期待今年的JVM生态报告,再与你分享,回见。

本专栏上下文

推荐阅读

在这里插入图片描述

我是方向盘(YourBatman):前25年不会写Hallo World、早已毕业的大龄程序员。高中时期《梦幻西游》骨灰玩家,网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖...是我不可抹灭的黑标签

  • 🎓2013.07 清考、毕业答辩3次未通过、延期毕业
  • 🏷2013.08-2014.07 宁夏中介公司卖二手房1年,毕业后第1份工作
  • ️️🏷2014.07-2015.05 荆州/武汉,泰康人寿卖保险3月、饿了么送外卖2月,还有炸鸡排、直销等第2345份工作
  • 🏷2015.08 开始从事Java开发,闯过外包,呆过大厂!擅长抽象思维,任基础架构团队负责人
  • 🏷2021.08 因“双减政策”失业!历经9面,终获美团外卖L8的offer
  • 🙅🏻‍♀️Java架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
  • 📚高质量代码、规范践行者;DDD领域驱动深度实践;即将出版书籍《Spring奇淫巧技》

在这里插入图片描述

序号 专栏名称 简介
01 【方向盘】-程序人生 程序人生,人生程序
02 【方向盘】-资讯/新特性 IDEA、JDK、Spring技术栈......新特性
03 【方向盘】-IntelliJ IDEA 熟练使用IDEA就相当拥有物理外挂,助你高效编码
04 【方向盘】-Bean Validation 熟练掌握数据校验,减少90%的垃圾代码
05 【方向盘】-日期时间 帮你解决JDK Date、JSR 310日期/其实 的一切问题
06 【方向盘】-Spring类型转换 Spring类型转换-框架设计的基石
07 【方向盘】-Spring static static关键字在Spring里的应用
08 【方向盘】-Cors跨域 关于跨域请求问题,本专栏足矣
09 【方向盘】-Jackson Almost Maybe是最好的Jackson专栏
10 【方向盘】-Spring配置类 专讲@Configuration配置类,你懂的
11 【方向盘】-Spring技术栈 暂无所属小分类的,Spring技术栈大分类
12 【方向盘】-JDK 暂无所属小分类的,JDK技术栈大分类
13 【方向盘】-Servlet Servlet规范、Web相关内容专题
14 【方向盘】-Java EE 从Java EE到Jakarta EE,30年弹指一挥间
15 【方向盘】-工具/提效 开发工具、软件工具,目标是提效
16 【方向盘】-Spring技术栈新特性 Spring Framework、Spring Boot、Spring Cloud、Spring其它技术
17 【方向盘】-Spring技术栈新特性 每个Javaer,都需要有扎实的基本功
... ... ...
99 源代码库 大多数专栏均配有源代码,都在这里

在这里插入图片描述

目录
相关文章
|
2月前
|
监控 算法 Java
Java虚拟机(JVM)的垃圾回收机制深度解析####
本文深入探讨了Java虚拟机(JVM)的垃圾回收机制,旨在揭示其背后的工作原理与优化策略。我们将从垃圾回收的基本概念入手,逐步剖析标记-清除、复制算法、标记-整理等主流垃圾回收算法的原理与实现细节。通过对比不同算法的优缺点及适用场景,为开发者提供优化Java应用性能与内存管理的实践指南。 ####
|
1月前
|
监控 算法 Java
Java虚拟机(JVM)垃圾回收机制深度剖析与优化策略####
本文作为一篇技术性文章,深入探讨了Java虚拟机(JVM)中垃圾回收的工作原理,详细分析了标记-清除、复制算法、标记-压缩及分代收集等主流垃圾回收算法的特点和适用场景。通过实际案例,展示了不同GC(Garbage Collector)算法在应用中的表现差异,并针对大型应用提出了一系列优化策略,包括选择合适的GC算法、调整堆内存大小、并行与并发GC调优等,旨在帮助开发者更好地理解和优化Java应用的性能。 ####
44 0
|
1月前
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
1月前
|
存储 监控 算法
Java虚拟机(JVM)垃圾回收机制深度解析与优化策略####
本文旨在深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法及参数调优方法。通过剖析垃圾回收的生命周期、内存区域划分以及GC日志分析,为开发者提供一套实用的JVM垃圾回收优化指南,助力提升Java应用的性能与稳定性。 ####
|
2月前
|
机器学习/深度学习 监控 算法
Java虚拟机(JVM)的垃圾回收机制深度剖析####
本文深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法、性能调优策略及未来趋势。通过实例解析,为开发者提供优化Java应用性能的思路与方法。 ####
58 1
|
2月前
|
Oracle 安全 Java
深入理解Java生态:JDK与JVM的区分与协作
Java作为一种广泛使用的编程语言,其生态中有两个核心组件:JDK(Java Development Kit)和JVM(Java Virtual Machine)。本文将深入探讨这两个组件的区别、联系以及它们在Java开发和运行中的作用。
115 1
|
2月前
|
监控 Java 开发者
Java虚拟机(JVM)深度优化指南####
本文深入探讨了Java虚拟机(JVM)的工作原理及其性能优化策略,旨在帮助开发者通过理解JVM的内部机制来提升Java应用的运行效率。不同于传统的技术教程,本文采用案例分析与实战技巧相结合的方式,为读者揭示JVM调优的艺术。 ####
62 8
|
3月前
|
Java
jvm复习,深入理解java虚拟机一:运行时数据区域
这篇文章深入探讨了Java虚拟机的运行时数据区域,包括程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、元空间和运行时常量池,并讨论了它们的作用、特点以及与垃圾回收的关系。
77 19
jvm复习,深入理解java虚拟机一:运行时数据区域
|
3月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
49 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
3月前
|
存储 算法 Java
Java虚拟机(JVM)的内存管理与性能优化
本文深入探讨了Java虚拟机(JVM)的内存管理机制,包括堆、栈、方法区等关键区域的功能与作用。通过分析垃圾回收算法和调优策略,旨在帮助开发者理解如何有效提升Java应用的性能。文章采用通俗易懂的语言,结合具体实例,使读者能够轻松掌握复杂的内存管理概念,并应用于实际开发中。
下一篇
开通oss服务