责编 | 丁恩华

出品 | CSDN(ID:CSDNnews)

新的 2021 年,Perforce 公司依然没有 “爽约”。前不久,这家公司发布了其第九份年度全球 Java 开发者生产力报告。

这份报告的数据来自于这家公司去年 8 月份进行的一项公众调查,截止到去年 11 月,全球一共有 800 多名 Java 系开发人员参与了这项调查。据报告数据显示,这 800 多名参与者中,其中 49% 的参与者是普通 Java 开发人员,24% 的参与者是 Java 架构师,17% 的参与者是团队 Leader。

查老师有话说: 相比于去年 76% 的普通 Java 开发人员,今年高级职称参与者较多,看来是工作不饱和,还有空来填问卷。

通过阅读这份报告,我们可以从中了解到当前 Java 开发人员在开发过程中面临的最大问题,以及当下最流行的 Java 语言版本、Java 框架、数据库、CI/CD 技术和一些习惯等等,Perforce 公司也在报告中提供了一些比较有价值的评价。

不说那么多了,赶快和查老师一起看看报告的具体内容吧。

技术报告部分

该部分报告,从 Java 语言的使用到应用程序架构、构建工具、虚拟化等方面进行了全方位介绍。

1.1 语言的使用(多选)

显而易见,当前 Java 系开发人员还是以 Java 8 的应用为主,只不过是从去年的 58% 提升到了 69%。另外 Java 11 的使用率也从去年的 22.56% 提升到了 36%,Perforce 公司预测这个数字还会逐渐增加,因为今年 9 月份 Java 17 就要发布了,这是继 Java 8 、Java 11 后的另一个长期支持(LTS)版本。

查老师有话说: 查老师也觉得,再死守着 Java 8 就有点像死守着 Win XP 或 Win 7 一样了。

今年问卷的这项调查调整为了多选,所以,有一些其他的 Java 系语言使用率数据也得到了显著提升。至于还有些小伙伴好奇的其他几个语言:Groovy、Kotlin、Scala,因为它们都是基于 JVM 的语言,所以也是属于 Java 系语言范畴内的。

至于 JavaScript?查老师暂时也不知道为啥被算进了 Java 系语言,大概是因为名字上带着 Java 的原因?懂行的小伙伴可以告诉一下。

1.2. 项目架构(多选)

根据报告显示,49% 的受访者在当前项目中使用微服务作为应用架构,比去年的 50.88 % 有所下降。按理说经过一年的发展,微服务架构应该应用越来越广泛,但这部分报告却出现了降低,连 Perforce 公司也比较好奇这事儿,怀疑可能是去年全球疫情的影响导致的。

另外,单体架构的占比依然不容小视,42%的占比仅次于微服务架构,去年才 27.57%,查老师有理由认为这还是由于今年问卷的这项调查允许多选的原因。

1.3 应用服务器(多选)

根据报告显示,66% 的受访者在当前项目中使用 Tomcat 服务器,可以说是占据着应用服务器界的 “半壁江山”,这和去年的情况差别不大。

查老师有话说: 其实也很好理解,Spring Boot 等各类应用平台和 Tomcat 都有 “交易”,再加上人家 Tomcat 自身的硬实力,这占比短时间内是不会降低的。


1.4 框架(单选)

根据报告显示,62% 的受访者使用 Spring Boot 作为主要的框架技术,看起来挺厉害是吧?去年的比例是82.7%。

查老师有话说:Spring Boot 火起来也是有微服务广泛应用的影响,快速构建快速启动符合微服务项目的需求特点。

1.5 配置文件(多选)

根据报告显示,75% 的受访者使用注解来完成框架配置工作,58% 的受访者使用外部 XML、YAML或其他类似的文件来完成框架配置工作,其他 22% 的受访者是通过初始化过程中运行一些配置代码来完成这事儿。

查老师有话说: 毕竟,注解在这两年大行其道,所以这个比例没啥特别的,去年也是类似的情况。在近两年,效率好像比侵入式的影响更重要。


1.6 IDE(多选)

根据报告显示,65% 的受访者使用 Intellij IDEA 作为专业 IDE,48% 的受访者使用 Eclipse 作为专业IDE,这个情况与目前国内相差不大。

查老师有话说: 毕竟 IntelliJ IDEA 用上之后,无论有多不适应,最后都是真 “香”。还有一个比较有意思的情况是,基于浏览器的 IDE 实现了 0 的突破,这也算是行业发展的一些变化吧,老牌 IDE Eclipse 将 Eclipse Che (在线 IDE)称为下一代 IDE ,不就是看好这个市场吗?


1.7 JRE/JDK 发行版(多选)

根据报告显示,59% 的受访者采用 Oracle Java ,比去年还略有上升。根据 Perforce 公司的推测,这种情况可能是由于今年来自于规模较大企业的受访者占比有所增加,这类企业要进行一些软件架构迁移要比小公司更麻烦一些,而且本身一般不差钱。

不过 Perforce 公司还是期望未来这个比例可以降低一些,因为 Oracle Java 的许可证很贵,尤其对小公司来讲是一个很高的成本。


1.8 云计算服务商(多选)

根据报告显示,39% 的受访者采用亚马逊作为云服务商,另外,报告显示还有 24% 的受访者表示不需要云计算服务商。

查老师有话说: 不过,查老师觉得,如果受访者主要在国内的话,这个第一名应该是阿里云了。

1.9 数据库(多选)

根据报告显示,43% 的受访者使用的是 MySQL 数据库 ,其次 Oracle 及 PostgreSQL 均为 36% 的占比,MongoDB 的占比为 29%。

查老师有话说: 去年 PostgreSQL 独占鳌头,比例异常,今年这比例查老师倒是觉得挺合理的。至于其他 NoSQL 部分,查老师觉得没必要看了, Redis 在咱们国内可是非常火爆的。

1.10 构建工具(单选)

根据报告显示,67% 的受访者使用 Maven 作为项目中主要的构建工具,其次就是 Gradle。前两名倒是没变,但是比例差异挺大,去年 Maven 和 Gradle 几乎对半分,Perforce 公司推测今年这情况与去年 Android 应用开发总量降低有关,因为 Android 应用主要使用 Gradle 作为构建工具。

1.11 虚拟化工具(多选)

根据报告显示,57% 的受访者使用 Docker 作为虚拟化平台,42% 的受访者使用 Kubernetes 作为虚拟化平台,与去年相比,Docker 有所下降,Kubernetes 有所上升,这倒是符合当前的市场情况。

另外还有 12% 的受访者完全没用过虚拟化平台,查老师估计上述单体式架构的比例中就有这些人。

应用性能报告(多选)

根据报告显示,54% 的受访者认为应用响应时间较长是常见的性能问题,39% 的受访者认为 CPU 的高占用是常见的性能问题,35% 的受访者认为内存泄露是常见的性能问题,26% 的受访者认为开启过多的连接是常见的性能问题,其次就是 19% 的受访者认为 IO 查询过多是常见的性能问题。

查老师有话说: 在查老师看来,这不就是我们平时提升应用性能的几大方向吗?

开发者生产力报告

3.1 平均重新部署时间(单选)

根据报告显示,31% 的受访者平时需要花费 2 ~ 3 分钟来进行重新部署,11% 的受访者平时需要花费 1 分钟以内的时间来进行重新部署。

还有剩下各自占了 19% 比例的时间区间,4 ~ 5分钟,6 ~ 10分钟,10分钟以上,这简直是噩梦一样。

查老师有话说: 其实重新部署的时间越长,越证明项目环境越复杂,所以倒是和微服务架构应用比例持正比。

3.2 容器环境部署时间(单选)

根据报告显示,2 ~ 3 分钟,4 ~ 5 分钟,6 ~ 10 分钟,10 分钟以上所占的比例基本持平,只有 8% 的受访者可以在 1 分钟内完成远程容器化环境的部署。


3.3 等待时间一般在做什么(单选)

上面的问题显示,大多数受访者要花费较多的时间来完成重新部署,Perforce 公司也挺八卦,还想了解下他们这个等待时间一般都会干点什么。

35% 的受访者会在这个期间喝咖啡,21% 的受访者会在这个期间刷 Twitter 、脸书、ins等,各有 7% 的受访者会在这个期间和家人聊天或是睡一会儿,4% 的受访者会在这个期间玩会儿电子游戏。

查老师有话说: 另外,还有些较为奇葩的选项是会去遛狗,难道这是居家办公?还是 “暗有所指” ?

3.4 如果时间充裕,会干嘛(单选)

八卦公司最后又问了一个问题是,如果你的团队可以在工作日节省出 10% 的时间,这个时间你会用来干嘛?

25% 的受访者会去提升测试覆盖度,21% 的受访者会去提升程序性能,19% 的受访者会去开发新功能,15% 的受访者会去改进开发过程,12% 的受访者会考虑提前发行日期,最后 8% 的受访者考虑开始一个新的项目。

查老师有话说: 敬业的让人流泪!一点也不考虑摸鱼吗?还是因为 Perforce 公司没有提供摸鱼选项?

微服务报告

在上方的一些问题调查中,我们已经能很清晰的看出当下微服务的流行度,Perforce 公司这两年的很多调查也是对 Java 社区中微服务的相关问题比较关注。

4.1 微服务采用情况(单选)

根据报告显示,36% 的受访者当下正在进行到微服务的过渡工作,30% 的受访者正完全基于微服务开发应用,21% 的受访者表示当下正在积极讨论微服务,只有 13% 的受访者表示暂时没计划采用微服务。

4.2 微服务使用情况(单选)

根据报告显示,36% 的受访者表示开发的项目中有 5 ~ 10 个微服务,34% 的受访者表示开发的项目中有 1 ~ 5 个微服务,14% 的受访者表示开发的项目中有 10 ~ 20 个微服务,16% 的受访者表示开发的项目中有 20 个以上的微服务。

查老师有话说: 查老师没填这份问卷,不过推测这道问题,应该是选择了采用微服务后的关联题。

4.3 微服务的挑战(单选)

根据报告显示,30% 的受访者认为,解决服务间的功能问题是开发微服务的最大挑战;24% 的受访者认为,搭建本地开发环境是开发微服务的最大挑战;而解决服务间的性能问题及在生产中扩展及监控的所占比例各自是 14%;还有12% 的受访者认为,提升分布式系统的性能是开发微服务的最大挑战。

查老师有话说: 另外的 6% ,查老师觉得他们可能是不想回答此问题。

CI/CD报告

5.1 技术选择(多选)

根据报告显示,61% 的受访者表示使用 Jenkins 作为 CI/CD 的首选技术,还有 10 % 的受访者表示没有采用任何 CI/CD 技术。

5.2 CI/CD 构建所需时间(单选)

根据报告显示,27% 的受访者表示他们在 CI/CD 上完成一次构建需要花费 10 分钟以上的时间,26% 的受访者表示需要花费 6 ~ 10 分钟, 22% 的受访者表示需要花费 4 ~ 5分钟,21% 的受访者表示需要花费 2 ~ 3 分钟,只有 4% 的受访者表示需要花费 1 分钟以内的时间。

查老师有话说: 自动化的过程,这点时间完全是可以接受的。

5.3 CI/CD编码频率(单选)

最后一个调查的问题是:每天,你提交多少次代码到你的 CI/CD 构建平台?

33% 的受访者表示每天大概 5 次以上,20% 的受访者表示每天大概 2 次,19% 的受访者表示每天大概 3 次,每天提交 1 次或 4 次的各占 14%。

后记

好了,报告看完了,八卦的 Perforce 公司做报告做的挺漂亮的。其次,这次受访者可能是由于大佬比较多,普通开发人员较少,所以有些部分的比例感觉不是太正常。

当然本身问卷调查这种东西,基数大了可靠度才会越来越高,大家在读报告的时候,也不要太过于盲从一些选择,毕竟它只能体现出 800 多名受访者的大致情况,做个参考即可,具体还得根据自身项目要求决定一些技术选型等。

最后,因为查老师自身翻译能力有限,所以有些部分的解释不够通俗易懂,希望大家海涵。想要获取 完整 pdf 版的报告 可以微信搜索 查老师的讲义 ,关注后回复 Java2021报告 即可获取到。

参考资料

Jrebel 2021年Java开发者生产力报告:https://www.jrebel.com/resources/java-developer-productivity-report-2021

☞千亿项目的弘芯团队解散,中国芯美梦何圆?☞微软大中华区换帅:80后侯阳出任董事长兼CEO
☞Facebook 重金挖不到,ASP.NET 之父,微软大神“红衣教主”传奇
☞为什么我们很难看到代码 5 分钟前的样子?

2021 年 Java 开发者生产力报告相关推荐

  1. 《2022年Java开发者生产力报告》出炉啦

    2022 年,Perforce 公司没有「爽约」,< 2022年 Java 开发人员生产力报告 >如期而至. 该报告基于对全球 Java 开发专业人士的调查,持续时间为 2021 年 10 ...

  2. 2021年Java开发者应该学习的技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.不断更新的Java版本,以及发布很多流行的框架,这些都给我们带来了很大的挑战.Java的版本迭代速度实在是太快了,也带来了很多有 ...

  3. 当上项目经理才知道!2021年Java开发者常见面试题

    前言 这段时间一直在学习Netty相关知识,因为涉及知识点比较多,也走了不少弯路.目前网上关于Netty学习资料琳琅满目,不知如何下手,其实大家都是一样的,学习方法和技巧都是总结出来的,我们在没有找到 ...

  4. 2021年Java开发者跳槽指南,java生成二维码代码

    数据库 1. MySQL 索引使用有哪些注意事项呢? 可以从三个维度回答这个问题:索引哪些情况会失效,索引不适合哪些场景,索引规则 索引哪些情况会失效 查询条件包含or,可能导致索引失效 如何字段类型 ...

  5. Java 8 八年不倒、IntelliJ IDEA 力压 Eclipse,2022 年 Java 开发者都在用什么?

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 技术更新迭代的速度,让很多开发者被动地开启了奋起直追的模式.但是在某些领域或技术层面,也永远不要小看技术人的「念旧」情结,譬如 2009 ...

  6. ​Rust最受喜爱却少有人用,Python仅排第六,2021全球开发者调查报告出炉

    来源:机器之心本文约2100字,建议阅读8分钟 当前最受开发者喜爱的编程语言是 Rust 语言,而 Python 的受喜爱程度仅位居第六. 在最近出炉的 Stack Overflow 全球开发者调查报 ...

  7. Rust最受喜爱却少有人用,Python仅排第六,2021全球开发者调查报告出炉

    111在最近出炉的 Stack Overflow 全球开发者调查报告中,Rust 成为最受开发者喜爱的编程语言,Python 语言受开发者喜爱程度仅排第六.但是,备受好评的 Rust 语言也面临着「好 ...

  8. Rust 最受喜爱却少有人用,Python 仅排第六,2021 全球开发者调查报告出炉

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 在最近出炉的 Stack Overflow 全球开发者调查报告中,Rust 成为最受开发者喜爱的编程语言,Pyth ...

  9. 程序员看过来!JS、Java、C 依然强势,Go、Kotlin、Python 潜力股,2020 开发者生态系统报告

    编译 | 屠敏 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 一切过往,皆为序章. 2019 年,走出舒适区的技术圈迎来消费互联网向产业互联网的转型,也开始了数字 ...

最新文章

  1. poj2195(最大权完美匹配)
  2. 湘潭大学计算机学院调剂,湘潭大学2018年硕士研究生调剂信息公告
  3. request获得请求参数
  4. 七、有机硅柔软剂在不同发展阶段分子结构特征及主要解决的问题?
  5. linux 打开大文件命令,linux查看大文本文件命令
  6. 10 个内存引发的大坑,你能躲开几个?
  7. Spark修炼之道——Spark学习路线、课程大纲
  8. 为何大数据分析那么重要
  9. 【知识索引】【C++入门】
  10. 十款真正的编程游戏软件
  11. 笔记本电脑BIOS和硬盘加密密码设置方法
  12. LDO芯片CMO3236 系列低功耗
  13. Photoshop 中的彩蛋
  14. 怎样把多个pdf合并为一份?多个pdf怎么合并成一个pdf?
  15. 博客的WordPress地址(URL)修改后博客打不开解决方法
  16. html源码里面写current,HTML Video currentTime用法及代码示例
  17. flask+dash可视化的一些问题
  18. 花开不败 一个复旦女生的高三生活
  19. 3个5相乘列乘法算式_干货 ! 初一数学的21个知识点大总结,再也不怕学不明白...
  20. docker安装python依赖包

热门文章

  1. volatile关键字和Java线程安全问题
  2. zend studio怎么连接mysql?
  3. Java多线程编程(3)--线程安全性
  4. Linux下通过jstat命令查看jvm的GC情况
  5. 第三章 文件过滤及内容编辑处理命令
  6. 社招2017-阿里、网易、滴滴共十次前端面试碰到的问题
  7. 第一百九十八节,jQuery EasyUI,ProgressBar(进度条)组件
  8. TP框架中ajax post请求时提示404
  9. LeetCode 3 Longest Substring Without Repeating Characters 区间,想法 难度:1
  10. DbUtils操作数据库的用法