从2018年JVM生态系统报告中吸取的经验教训|


最近由Snyk发布了一份关于JVM生态系统的新报告,由Oracle Java杂志撰写。他们调查了来自社区的10,000多名Java开发人员(即Java用户组和Java Magazine用户的成员)。
报告中涉及的主题包括:语言和JDK,工具,应用程序基础结构和CI / CD以及其他过程。

1. 语言和JDK
- 91%的Java开发人员使用OpenJDK或HotSpot(4%使用J9,1%使用Azul)
- 88%的Java开发人员仍然使用Java 7或8(9或更高版本只有8%)*该调查在10和11版本之间开放
- 只有8%计划在每个新版本之后采用最新版本的Java,其余计划坚持使用LTS版本或未定
- 90%的JVM用户使用Java作为主应用程序,而不是其他基于JVM的语言

2.工具
- 45%使用IntelliJ IDEA(免费和/或付费),38%使用Eclipse,11%使用Apache NetBeans
- 对于主要构建工具,60%使用Maven,19%使用Gradle,6%根本不使用
- 74%使用Git作为源代码管理平台,16%使用Subversion(SVN)
- 查看代码库,GitHub(25%),BitBucket(25%)和GitLab(20%)之间存在相当均匀的分歧
- 单位测试似乎是78%受访者使用JUnit 进行测试的最受欢迎的选择,而Mockito使用率为45%*受访者可以在此处选择多个答案

3.应用基础架构
- 在使用云平台的用户中,63%使用Amazon AWS,20%使用Google Cloud,18%使用Azure(43%使用任何云平台)
- 43%运行容器,33%运行VM(33%也不使用任何云方法)
- 27%的人在生产中使用Oracle数据库,50%使用SQL(MySQL,PostgreSQL或MS SQL)
- 36%不会在生产中使用的同一个应用服务器上开发(风险承担者!)
- 23%的人不知道他们的应用程序中有多少开源依赖项
- 50%的受访者不对其代码库进行任何形式的审核(每季度24%的审核代码,每6个月审核11%)


4.CI / CD和其他流程
- Jenkins是迄今为止最受欢迎的CI服务器,使用率为57%,最接近的亚军是21%的“无”(Bamboo使用率为5%)
- 61%的受访者不使用CD发布自动化工具或不知道使用哪种 - Ansible以16%的使用率领先


对于初学者来说,该报告让我们更好地了解了JVM,语言和工具使用的行业趋势。