Developer surveys can provide a pulse on the community. The start of a new year is a common time to take stock of what has been used over the past year, with a view to what to look for ahead. As a result, several companies have published reports on developer surveys recently:
- RebelLabs kicked off the year with their Java Technology Report in January
- Codingame followed up with their Codingame Developer Report
- Snyk recently launched a new JVM Ecosystem Report in February
- Tiobe published their monthly Tiobe Index for February
- StackOverflow, who published their last survey in April 2019, are likely to publish their 2020 report in the next couple of months
- RedMonk, who published their last program languages ranking in July 2019, are likely to publish another one in the near future.
Developer surveys allow companies to gauge interest in their (and their competitor's) products, as well as providing a rough view of the developer landscape for their particular areas. However, one drawback of developer surveys is that they tend to be self-selected and clustered around specific subgroups of people, such as Twitter followers or IDE forums. For example, the focus of the RebelLabs and Snyk reports focus on Java, while the Tiobe index puts Java at position 2 in their charts, just behind C.
Surveys can also produce inconsistent results. For example, in the Codingame survey, the top three most loved languages are Python, JavaScript and Java, while the most three most hated languages are PHP, Java and JavaScript.
The Tiobe index and RedMonk report aren't generated from self-reported results, but use web searches as a proxy, and a combination of GitHub and StackOverflow questions for popularity. As a result, they tend to show a different set of what is being used in the developer world, rather than what developers want to use. Swift has not only surpassed Objective-C, but the latter is falling away as adoption moves towards Apple's newer programming language; in other environments, Rust is climbing up the ladder but has yet to break into the top 20.
With those caveats out of the way, the Java/JVM technology reports show that Java 8 is the most used version of Java in production, with around a quarter using Java 11, and a small fraction using non-LTS releases. Java continues to be the primary language used on the JVM, with Kotlin usage scoring a few percent and Scala having fallen away. Kotlin's adoption by the Android ecosystem is likely to continue that trend in future.
Spring continues to be a popular framework, with 60-80% of developers saying that they use it for their development; they have recently launched a new website design. Most developers appear to be on the latest version of Spring released at the time the surveys were commisioned, the majority of which appear to have been used with SpringBoot, which is offered by default at the Spring Initializer website.
The IntelliJ IDE continues to be the most favoured IDE in these surveys, taking anywhere between 60-80% of the developer base, with Eclipse the next most used IDE at 20-25%. Apache NetBeans and VS Code are the next two most popular IDEs used for Java, and there seems to be little response from those wanting to use web-based IDEs in the survey. Web-based and lightweight IDEs, such as VS Code, are increasingly being used with lighter-weight languages, and the growth of Language Server Protocol (LSP) supporting languages means that newer languages (such as Rust) may find a home in any IDE that can support LSP in the future.
For build tools, the differing Java reports show different stories. Maven continues to be the number one build tool for the Java ecosystem, but depending on which report you look at, Gradle, the number 2 build system, is either neck-and-neck with Maven, or a third of its size. Other build tools, like Ant, appear to be being phased out, with language-specific build systems like SBT being used in only a minority of cases – although in the case of SBT, it is primarily used to build Scala applications, so it is a proxy for the size of Scala adoption.
JRebel's survey didn't include which hosting solution is being used, but Snyk's report indicated that GitLab was just edging out GitHub, with BitBucket in third place. BitBucket announced in August 2019 that it would be sunsetting its original Mercurial (hg) support, having supported Git since 2011, so this may be masked by Mercurial users moving elsewhere.
Snyk's survey didn't ask about virtualisation uses, where JRebel's report suggested that three quarters of users are using Docker for their virtualisation needs, half of which were using Kubernetes to run the docker process. The detail points to the rise of microservices as being the driving force in the use of virtualisation.
Finally, between a third and a half of the developers polled used OracleJDK as their main environment, with over half using OpenJDK from sources such as AdoptOpenJDK, Oracle or Amazon. One of the reasons behind the use of OracleJDK is because around 10% of developers are paying for support, half of which are using an Oracle contract, with the remainder being split evenly between IBM, RedHat and Azul.