The Snyk and Azul JVM Ecosystem Report 2021 shows that 62% of the developers surveyed use Java 11 in production, leading Java 8 by 60%. Kotlin is the most popular JVM language after Java. AdoptOpenJDK accounts for 45% and is the most popular JDK release, far ahead of Oracle OpenJDK and Oracle JDK, which account for 28% and 23% respectively. Eclipse Adoptium, who recently created their new working group, has contributed 1% (Adoptium is still incubating and has not officially released any binaries). The use of Spring Boot, Jarkarta EE and newer frameworks has increased in the past year. Developers favor IntelliJ IDEA, which uses three times as much as Eclipse IDE, and Maven uses twice as much as Gradle.
More than 2,000 Java developers responded to this survey, which lasted six weeks from February to March 2021. 60% of the responses came from Europe, 19% came from North America, and 12% came from Russia and Asia. 35% of respondents work for companies with no more than 100 employees, while 37% of respondents work for companies with no more than 1,000 employees. Most of this year’s survey results cannot be compared with last year because it allows multiple answers.
The survey found that 21% of developers use Java 12 or later in a production environment, which is more than three times as many as 6% using Java 7 or earlier. Since this question allows up to three answers, the total percentage of developers using Java 11 or higher is unknown, and the ratio of developers using Java 8 or older is also unknown.
The findings in this report contrast sharply with the 2021 Java Developer Productivity Report released by JRebel in March 2021. The report found that the usage rate of Java 8 is twice that of Java 11, and that the usage rate of Java 7 and earlier is comparable to Java 12 and later. The JRebel report collected 876 developer responses from August to November 2020 , Unlike the Snyk report, it does not distinguish between the development and production use of the JDK. The following figure compares the results of this year's and last year's Snyk report and JRebel report:
Java version use
The JRebel 2021 report sees the use of all Java versions to grow starting in 2020, including Java 8 and Java 7 and earlier.
Snyk found that Java is the most popular JVM language at 91%, ahead of Kotlin at 18%, Groovy at 13%, Scala at 10%, and Clojure at 8%. The report compares the survey results with actual usage by analyzing the programming language of the GitHub repository. Since Kotlin 1.0 was released 8 years after its launch on GitHub, it is no surprise that Java leads Kotlin by 18:1 instead of 5:1, as the survey responses indicate. Groovy and Scala released their version 1.0, and soon afterwards introduced GitHub and Clojure together. Nevertheless, Kotlin leads all three languages by a greater advantage than in the survey: Groovy is 8:1 and 1.4:1, Scala is 2.7:1 and 1.8:1, and Clojure is 7:1 and 2.3:1.
The popularity of Kotlin in the report is in sharp contrast with the TIOBE index. As of July 2021, Groovy leads Kotlin by 3.4:1 (1.09% vs. 0.32%). The TIOBE index measures the popularity of programming languages through the search engine query part.
After AdoptOpenJDK, the second most popular JDK release is Oracle's OpenJDK release, accounting for 28%. Oracle's commercial licensed JDK ranked third with 23%, followed by various OpenJDK distributions: Azul with 16%, Amazon Correcto with 9%, and OpenJDK distributions bundled with Linux and Red Hat both accounted for 8%.
Last year's survey has allowed multiple responses to server-side frameworks, so it can be compared with last year. Except for Spring MVC, the usage of all frameworks has increased:
Spring Boot maintained its lead with moderate growth, while Java EE/Jakarta EE experienced substantial growth. Modern microservice frameworks, such as Red Hat's Quarkus, Eclipse MicroProfile, and Micronaut, appeared for the first time this year.
In the IDE section, Snyk reports that IntelliJ IDEA has a market share of 72%, Eclipse has a market share of 25%, and Microsoft's Visual Studio Code has a market share of 23%. Snyk also found that every two developers use more than one IDE, and every four developers use four or more.
According to reports, 76% of developers use Maven build tools, 38% use Gradle, 12% use Ant, and 5% use SBT. When looking at the actual usage data reported by the Snyk open source tool, Maven's lead over Gradle increased to 3:1 (74% vs. 25%). But the tool only supports Maven, Gradle and SBT. Moreover, unlike the survey, the usage rate here adds up to 100%.
Brian Vermeer, Snyk's developer advocate, Java Champion, and author of this study, interviewed InfoQ about the report.
InfoQ: Your research is based on more than 2,000 survey responses. Compared to the entire Java developer population, how representative do you think your results are?
I believe that investigations are always biased by default. However, this is the largest number of respondents in the current JVM Ecosystem report, and we had a similar number last year. I believe the numbers may fluctuate, but the results will be representative.
InfoQ: You did this research in collaboration with Azul this year. What is their contribution?
The people from Azul helped us set up surveys and review questions. In addition, some other Java Champions and Java community members also provided feedback. The folks from Azul provided a lot of help on how to name all the different OpenJDK builds and more commercially licensed builds. For some people, this may be a delicate question.
In addition, we, Snyk, and Azul together decided to distinguish between the production and development of JDK builds and versions.
InfoQ: Your report always includes the distribution of Java build tools based on survey responses. But this year, you also include a build tool distribution based on data automatically collected by the Snyk open source tool. Why?
For multiple questions, we compared the survey data with other data sources. We used Github search, Google Trends, and our own Snyk data. In this way, we can verify the survey results to a certain extent.
For build tools, we checked the distribution of Snyk's internal build tools and found that Maven is more widely used than other build tools. This is similar to the conclusion of the survey.
InfoQ: The Snyk tool scans build files and Docker containers. Do you plan to include more data collected by your tools (such as Java framework, JDK release or JDK version) in future research?
To some extent, we have done it. For containers, we can also scan the binary files of the JDK version in some Linux distributions. For example, this is a list of issues in OpenJDK 8 provided with Alpine Linux 3.8.
We have scanned the security issues in Java frameworks and libraries based on your project manifest file in Maven or Gradle. In addition, we currently have Snyk Code, a SAST function that can scan your custom Java code for possible security issues. All of these functions can be used by our CLI, and most of them can also be used using the Snyk integration of IDE, build tools, and CI pipelines.
Developer surveys, such as those provided by Snyk and JRebel, provide useful data to the Java community. However, the results are often not representative of the global Java developer community, because these surveys "are often self-selected and clustered around specific groups of people, such as Twitter followers or IDE forums." Neither Snyk nor JRebel disclosed the margin of error in their findings.
More details can be found in the full report .
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。