I've been running the yearly “State of Java” survey for the last couple of weeks. It's the 5th year of the survey and naturally the largest one yet, with 5160 developers taking the time to go through and answer.
Let's jump right into the data.
1. Java Adoption
Not surprisingly, Java 8 is still used in production by the majority of the development community:
The adoption of Java 9 and 10 is still quite low, sitting at less than 5%.
For reference, in 2017, the numbers for Java 7 and earlier were about 24.4% and they're now 10.6% – so the ecosystem is clearly upgrading, mostly to Java 8.
2. Spring Adoption
Let's now have a look at the Spring numbers:
Here, the move to Spring 5 is clear, with 24% of Spring-backed systems running on the latest version in production, up from a very early 2.2% last year.
And, of course, this year we also have clear Java EE numbers, since – believe it or not – not everyone is using Spring 🙂
3. Spring Boot Adoption
Out of the systems that are built with Spring, almost all of them are also using Boot in production:
What's surprising here is just how quickly Spring Boot 2 is getting adopted, considering the GA came out not even 2 months ago and it's already sitting at a whopping 30% adoption.
The “Boot 1.4 and older” fell from 30% a year ago, to 6.8% now, which means that the Boot crowd moves and upgrades a lot quicker than the broader ecosystem.
Finally, last year, about 30.2% of Spring-based applications were just using the core framework, but not Boot; now, that number is only 16.7%. Simply put, most Spring applications are now using Boot.
Maven isn't going anywhere. The tool was sitting at a comfortable 75.7% last year, and it commands 74.2% of the market now:
As for Gradle, it clawed a bit more of the market, mostly from Ant, and now has just shy of 1/5 of the market – 21.3%.
5. IDE Adoption
The IDE numbers are always interesting, and this year is no different:
IntelliJ grew from 45.8% in 2017 to whopping 55.4% today, clearly winning the IDE battle in the Java space this year.
NetBeans, to the dismay of a few very vocal supporters, fell to 5.1% this year, which is less than half of the 12.4% numbers of 2017.
And Eclipse looks to have somewhat stopped the bleeding and fell just 2% over the course of this year, to 38% of the market.
What's interesting here is that most of the market share gained by IntelliJ is, surprisingly, from NetBeans and not Eclipse.
6. Web/Application Server Adoption
Here's what the server landscape looks like today:
This is actually a new question in the survey, so there are no 2017 numbers to compare the data to, but the conclusion is clear and not at all surprising.
Simply put, Tomcat owns the market, with more adoption than everyone else combined, with 62.5%.
The other servers look to be used by about 5% of the market, in a relatively even split.
7. Other JVM Languages
On to the last stretch here – what other JVM-based languages are in use out there?
First, 62.8% of projects are single-language, Java-only.
Here's what the ecosystem looks like:
Here's a look just at the forward-looking projects that do use other languages:
The primary takeaway here is, of course, Kotlin – which had a crazy year, jumping from 11.4 in 2017 to 28.8% today.
Scala's also interesting to look at, going from 28.4% to 21.6% in the course of this year.
This look at the Java ecosystem in 2018 has certainly been interesting, confirming some trends that were already well-known and bringing some new ones to light.
Spring Boot is now part of most Spring projects, which is not surprising anymore, but still a huge accomplishment, given the relatively short timeline of the project.
On the IDE front, IntelliJ is still growing at a strong pace. And, very much connected, Kotlin is perhaps the biggest “winner” this year, completely changing the landscape of JVM languages out there.
Overall, a very cool look at the Java community, and a big thanks to everyone who participated.
Course – LS (cat=Spring)
Get started with Spring 5 and Spring Boot 2, through the Learn Spring course:
>> THE COURSE
res – REST with Spring (eBook) (everywhere)