2018最大规模 Java 开发者调查报告:Oracle JDK 仍是主流、IDEA 最受欢迎

2019 年 2 月 18 日 开源中国

作者 | 屠敏

本文经授权转载自CSDN (ID: CSDNnews)

每年、每个月都会有各种排行榜或者榜单诞生,例如 TIOBE 编程语言排行榜,以及前两天开源中国推送的 PYPL 二月榜单纵观这些榜单,我们不难发现一个铁一般的定律:你大爷永远是你大爷 —— 无论 Java 怎么被唱衰,始终都位于各种排行榜的前列。

好了,还是言归正传吧,说回本文的主角 Java。对于 Java 的唱衰论一直都不绝于耳,尤其是 Java 11 发布后,因为其改变了发布周期,以及 Java 8 收费策略的变更,再加上一些误导的声音传播,「Java 药丸」这种刻意带节奏的行为给很多开发者造成了误导。

开源中国曾推送过一篇关于 Java 收费的文章,各位不妨看一看(2019年1月已到,Java 8 要收费了吗?)。

那么,在各种唱衰言论背后真实的 Java 使用现状到底如何?接下来,我们将从2018年最大规模的 Java 开发者调查报告中一窥究竟(参与该调查报告的有来自全球10500名的 Java 开发者),希望对大家有所裨益。

Java 开发者最常使用的 JDK?

截止目前,Java 中 JDK 最大的赢家毫无疑问是 Oracle JDK 和 OpenJDK。不过随着 JDK 8 和 JDK 11 中许可证和技术支持策略的变更,下一次的 Java 调查数据可能会发生很大变化。

开发者使用的 JDK 占比

该报告的调查结果有一个令人费解的数据:1% 的 Java 开发者是如何在“无 JDK”的情况下完成 Java 编程的?

Java 开发者主要使用的 Java EE 版本是什么?

调查结果显示,有 38% 的 Java 开发者根本不使用 Java EE。估计不少都使用了 Spring Framework。不过可能还有一些 Swing 和 JavaFX 开发者。


开发者使用的 Java EE 版本占比

Java 开发者主要使用哪些 JVM 语言?

虽然如文章伊始提及的,2017 年,Google 将 Kotlin 作为 Android 官方开发语言,“Java 将被替代”言论也随之而来。但是根据调查报告结果显示,在这一问题中,Java 仍然占主导地位。而 Kotlin 只有 2.42% 的受访者表示当前将其作为项目开发的主要语言。此外,它虽然超过了 Scala 的使用率,但依然落后于 Clojure。


开发者使用的 JVM 语言占比

哪些 IDE Java 开发者最常用?

对于这一问题,一位昵称为 program9 的程序员表示:“IntelliJ IDEA 是我使用过最好的 IDE。之前我用过 Eclipse 和 NetBeans,但是自从我尝试了 IntelliJ,我再也回不来了。当然这不意味着,我不喜欢 vi/vim 编辑器。事实上,我喜欢用它们来快速编辑文件或编写 bash 脚本。我认为任何开发者都应该具备使用 vim 和 bash 脚本的一些基本知识。”

调查报告显示,有 45% 的开发者以 IntelliJ IDEA 为开发 Java 项目的 IDE。其次分别有 38% 的开发者使用免费的 Eclipse,以及有 11% 的受访者使用 NetBeans


开发者使用的 IDE 占比

Java 开发者主要使用哪种构建工具?

一些开发者在他们的项目中使用不同的构建工具,因此值得注意的是,调查中的问题是要求开发者选择使用的主要构建工具。最后的数据显示,绝大多数项目都是使用 maven 构建的。


开发者使用的构建工具占比

Java 开发者使用哪种 CI 工具?

正如大多数开发人员所期望的那样,Jenkins 以高达 57% 的市场份额赢得最受欢迎 CI 工具称号。其次,也有 21% 的开发者并不使用任何 CI 工具。


开发者使用的 CI 工具占比

哪些源代码管理工具是开发团队主要使用的?

有 74% 的受访者表示选择 Git,合乎情理也属于意料之中。但出乎意料的是,竟有 16% 的开发者仍在使用 Subversion(即常说的 SVN)。


开发者使用的代码管理工具占比

Java 开发者主要使用哪些测试技术?

著名软件工程大师 Robert C. Martin 在他关于软件开发专业化的讨论中曾表示道:“我们(程序员)对公司系统相当于外科医生对人的心脏手术。我们是公司赚钱或亏钱的关键......我们是掌握公司生命线的人“。

然而,10% 的开发者回答说他们没有使用任何测试技术。嗯,在此祝安好!

老实说,希望那些在日常开发中没有测试代码习惯的 10% 的参与者只是自学的开发者或者并未参加工作的学生。


开发者使用的测试技术占比

Java 开发在应用程序中会使用哪些非 JVM 语言?

现在有很多的 Java 应用程序前端都是用 JavaScript 编写。调查报告结果显示,57% 的受访者表示会使用 JavaScript 语言,但并不清楚他们最终使用的是纯 JavaScript 还是其他任何类似 TypeScript 的语法超集。其次,有 56% 的程序员选择 SQL,也有 8% 的受访者表示未在项目中使用任何其他非 JVM 语言。


开发者使用的非 JVM 语言占比

哪些 Web 框架是 Java 开发者的最爱?

有 40% 的受访者选择了 Spring Boot 框架,有 36% 的开发者选择了 Spring MVC,两者使用率相差不大


开发者使用的 Web 框架占比

开发者使用哪些 ORM 框架?

注:该选项为多选,因此总数不等于 100%。

调查报告显示,有超过一半的开发人员使用了 Hibernate。其次有 23% 的受访者选择了 JDBC。但严格意义上来讲,JDBC 并不是 ORM 框架,所以说选择 None 这一选项的开发者也有可能使用 JDBC。


开发者使用的 ORM 框架占比

Java 开发者使用哪个数据库?

Oracle 占比 27%,位居榜首,然后是 MySQL 和 PostgreSQL。只有 9% 的 Java 开发者使用了 Microsoft SQL,这并不奇怪,因为它是 C# 的利基。

MongoDB 是 NoSQL 数据库产品中最热门的一个,使用的人数高于 IBM  Db2 数据库。


开发者使用的数据库占比

哪些应用服务器 Java 开发者最常使用?

毫无疑问,Tomcat 以 41% 的占比稳居第一


开发者使用的应用服务器占比

Java 开发者多久发布一次新版本的代码?

令人惊叹的是,7% 的开发者表示每天多次发布项目更新代码


开发者发布新版本的频率占比

Java 开发者的地理位置分布?

调查结果显示,大多数的受访者位于欧洲。


受访者地理位置分布比例

使用 Java 的开发者年龄分布?

已有二十几年历史的 Java,其使用者大多是伴随其发展成长起来的人,调查报告显示,有 38% 的软件开发者年龄为 30-40 岁


开发者的年龄分布占比

开发者如何获得及学习有关 Java 的技术?

对于这个问题,这里的最大赢家应该是 Google,很多程序员都会通过 Google 去搜索相关信息。而碰巧大多数答案都可以在 Stack Overflow 中找到。


开发者获取信息的途径占比

Java 开发者为开源贡献了多少?

无论是国内还是国外的一些开发者在空闲时间都会自己创建小项目,但是整体而言,想要找到更多的时间去维护开源项目其实并不容易。

调查结果显示,38% 的 Java 开发者年龄处于 30-40 岁之间,此时,日常工作以及家庭占据了他们大多数时间,很难再抽出空闲时间。这也是为什么有 55% 的人从未开源过项目。


开发者参与开源的占比

参考:
https://programmer9.com/2019/02/06/largest-java-survey-2018.html
http://www.javamagazine.mozaicreader.com/


开源中国征稿开始啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿


推荐阅读

GitHub 被指审查内容,著名“换脸”开源项目遭限制访问

谷歌宣布下周开放 .dev 顶级域名注册

与 30 家公司过招,得到了这章面试心法

利用策略模式优化过多 if else 代码

PYPL 二月榜单发布:最受欢迎的编程语言、IDE 和数据库都是哪些?

「好看」一下,分享给更多人↓↓

登录查看更多
0

相关内容

Java 是一门编程语言,拥有跨平台、面向对象、泛型编程等特性。
打怪升级!2020机器学习工程师技术路线图
专知会员服务
98+阅读 · 2020年6月3日
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
【综述】金融领域中的深度学习,附52页论文下载
专知会员服务
163+阅读 · 2020年2月27日
2019中国硬科技发展白皮书 193页
专知会员服务
82+阅读 · 2019年12月13日
2019年人工智能行业现状与发展趋势报告,52页ppt
专知会员服务
121+阅读 · 2019年10月10日
2019年10月编程语言排行榜:前8名15年如一日
大数据技术
7+阅读 · 2019年10月13日
Java 工程师快速入门深度学习,可以从 Deeplearning4j 开始
人工智能头条
13+阅读 · 2018年12月14日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2年Java经验,真的就拿不到30万年薪吗?
程序员观察
3+阅读 · 2018年4月8日
Arxiv
110+阅读 · 2020年2月5日
Arxiv
3+阅读 · 2018年3月13日
VIP会员
相关VIP内容
打怪升级!2020机器学习工程师技术路线图
专知会员服务
98+阅读 · 2020年6月3日
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
【综述】金融领域中的深度学习,附52页论文下载
专知会员服务
163+阅读 · 2020年2月27日
2019中国硬科技发展白皮书 193页
专知会员服务
82+阅读 · 2019年12月13日
2019年人工智能行业现状与发展趋势报告,52页ppt
专知会员服务
121+阅读 · 2019年10月10日
Top
微信扫码咨询专知VIP会员