Snailclimb · 2019年10月21日

2019 年 Java 开发者生态报告!

数据来源自国外的一个调查,在过去的几周,这份调查一共采访了6707名开发人员。数据来源:https://www.baeldung.com/java...

1.JDK 版本使用情况

JDK 版本使用情况

即使在今天 Java 13 都已经发布了,Java 8仍然是使用最广泛的 JDK 版本。不过, Java 8 仍然从去年的84.7%下降到今年的79.8%。我觉得这很大程度上因为 JDK 8 是一个较为里程碑的版本,JDK 8 提供了 Lambda 表达式、函数式接口、Stream 流等等非常方便开发的新特性。为什么 Java 8 还是采用最多的 JDK 版本呢?我觉得还有一点非常重要的原因是:很多人连 Java 8 的新特性都没玩熟,连最基本的 Lambda 表达式和 Stream 流都玩不转,显然你引入更高版本的 JDK ,里面很多新特性大部分也不一定会用,而且不一定能用到。关于 Java 8 新特性,可以查阅这篇文章:Java 8 新特性最佳指南

2.Spring Framework 的使用

Spring Framework 的使用

与 Java 相对,这是一个完全不同的故事。去年Spring4超过50%,现在已经达到30%,而Spring5从今天的24%上升到今天的58.4%。我觉得这大概率是因为 Spring Boot 最新的版本内部就是集成的 Spring 5,并且Spring 5 更有利于开发者进行开发。

Java EE的使用占比也很有趣,从去年的9.5%上升到现在的14%。

3.Spring Boot 的使用

Spring Boot 的使用

对于 Spring Boot,可以看出还有 Spring Boot 已经成为最主流的 Java Web 框架,这点我们在平时工作和学习中也是可以清楚看到的。但是,仍然有接近 25% 的开发者并没有选择使用更优秀的 Spring Boot,难道是为了维护老项目或者是不想拥抱更加优秀的技术?

Spring Boot 2.0+从去年的30%上升到现在的60.5%。Spring Boot 在我们平时开发中使用的太广泛了,一般情况下进行新项目的开发都会优先选择Spring Boot 并且是它的最新版本。为此,我自己也开源了一份 Spring Boot 学习指南:https://github.com/Snailclimb/springboot-guide (目前已经支持在线阅读!)

4.构建工具的使用

构建工具的使用

构建工具的数据貌似很稳定,和去年一样,Maven 还是开发者使用最广泛的构建工具。

这点其实还是令我比较诧异的。虽然,我知道大部分国内用户和公司都是使用 Maven 的,这点你可以通过在 Github 上搜索 Java 项目有比较清楚的认识。但是,我以为国外会优先使用 Gradle ,毕竟 Gradle 相比于 Maven 在很多方面做的还是要好点。而且,我所在的外企公司在前几年就开始大规模采用 Gradle 开发 Java 项目了,不说其他的。我个人觉得 Gradle 用起来更舒服一点,也推荐各位可以尝试一下。

5.IDE 的采用

编辑器的使用

IntelliJ 毋庸置疑是使用最广泛的 IDE。但是, 为啥 Eclipse 今年都还有 32.8% 的占比,虽然,相比于去年的38%降低了不少。

6.web 服务器的采用

web 服务器的使用

Tomcat 仍然是开发者中使用最广泛的 web 服务器,市场占有率高达 73 %。Spring Boot 默认使用的 web 服务器就是 Tomcat 了,我想这也为它的市场占有率的增加加了把火🔥。

Spring Boot支持以下嵌入式servlet容器:

NameServlet Version
Tomcat 9.04.0
Jetty 9.43.1
Undertow 2.04.0

您还可以将Spring引导应用程序部署到任何Servlet 3.1+兼容的 Web 容器中。

7.其他基于 JVM 的语言

虽然 Kotlin 被广泛采用和接受,但是仍然有 62.6% 的开发人员仅使用 Java。Kotlin 13%增长到了今天的16.5%。

Groovy从今天的19.3%下降到了17.4%,现在大多数注意力都转移到了Kotlin身上。Scala 也下跌了约1.1%,目前跌至8.6%。

因此,趋势很明显– Kotlin正在逐渐淘汰其他JVM语言

8.数据库的使用

数据库的使用

数据库领域感觉 MySQL 、PostgreSQL、OracleDB这三者所占的比例还是比较大的,MySQL 依然是开发者中使用最广泛的。但是,PostgreSQL大有超过之势头,PostgreSQL自去年以来增长了5%。非关系数据库使用最广泛的还是 MongoDB 然后是 Redis,平时开发中,但凡并发量会稍大一点,都会选择使用 Redis 作为缓存层,避免过多请求直接访问数据库。

9.总结

我个人感觉上面的数据统计情况大部分都是意料之中,让我感到意外的是构建工具的使用以及使用 Kotlin 的开发者的占比。

总而言之,本文对Java 社区进行了非常酷的介绍。

开源项目推荐

作者的其他开源项目推荐:

  1. springboot-guide : 适合新手入门以及有经验的开发人员查阅的 Spring Boot 教程(业余时间维护中,欢迎一起维护)。
  2. programmer-advancement : 我觉得技术人员应该有的一些好习惯!
  3. spring-security-jwt-guide :从零入门 !Spring Security With JWT(含权限验证)后端部分代码。

公众号

我的公众号

推荐阅读
关注数
1
文章数
23
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息