I just announced the new Spring Boot 2 material, coming in REST With Spring:
We’ve been running the “State of Java” survey for many years now – to get a good read of the state of the Java ecosystem. Last year, 2250 Java developers decided to take the time to answer the questions, and so it’s fantastic to see this year that number is almost double – we got 4439 answers.
So, before we get into the numbers – I wanted to say “thanks” to everyone who participated.
Let’s jump right in and start with the Java adoption.
1. Java Adoption
The 2016 numbers had Java 7 adoption at 29.5% and Java 8 at 64.3%.
The numbers today – April 2017 (exactly one year later) – look quite different:
As you can see, Java 8 adoption has reached a solid 75% of the developer community.
This is quite encouraging to see and it also means that we’re very much ready for Java 9 to finally be here.
Let’s have a look at the Spring and Spring Boot numbers next.
2. Spring Adoption
The 2016 numbershad Spring 4 adoption at 81% and Spring 3 at 18%.
Let’s have a look at the 2017 numbers now:
Spring 4 has inched up from 81% to 85% and Spring 3 has gone down from 18% to about 12% over the course of a year.
What’s also quite interesting is that more than 2% of developers are using the Spring 5 milestones – which is a lot higher than the 1% using Java 9 milestones.
Finally, note that these numbers represent the developers that are using Spring. Overall, 25.5% of the developers answered they’re not using the framework.
3. Spring Boot Adoption
Boot is seeing some incredible adoption in the Spring ecosystem – that much is clear. Last year, the adoption numbers were at 53% – which is very high considering just how new the project really is.
Well, this year, growth is still going strong:
We can see that, summed up – the adoption number for Boot jumped from 53% to 70% – which is huge year over year growth.
4. IDE Market Share
Time to look at the market share of IDEs in 2017:
The trend was pretty clear last year as well – Eclipse is bleeding users to IntelliJ and NetBeans.
Last year, Eclipse was at a respectable 48% and it’s now sitting at a 40.5% – which is a severe, near double-digit drop in a single year.
5. JVM Languages
This year, we asked a new question in the survey – “Are you using other JVM based languages?”.
Here are the super interesting results:
Groovy is clearly leading the pack with a strong 40%, Scala’s following suit with over 28.5% and Kotlin is number 3 – with a surprising 11.5%.
Note this data is adapted to the “yes” answers – developers who are using other JVM languages. Overall, 57% of developers are only using Java.
6. Build Tools Market Share
On to build tools. Last year, we had Maven sitting at 72.5% and Gradle at 19%.
Well, this year’s numbers are quite close – surprisingly, Maven’s slowly getting even more traction and is now at 76% and Gradle is just slightly down to 18%.
The build tools market seems to be a lot more stable than the rest of the Java ecosystem, where things are changing a lot more and a lot quicker.
7. Running your own blog?
We added this question in the survey out of pure curiosity. Here are the results:
Hopefully, more and more developers are going to start writing and putting their work out there.
The 2017 numbers are quite interesting and somewhat surprising in some respects.
Java 8 adoption has hit 75%, only a few months away from the GA of Java 9.
The Spring community has fully adopted Spring 4 – over 85% – and Spring Boot is up to 70% as well – which means that most Spring developers are actively using the new framework as well.
On the IDE side of things, IntelliJ is clawing market share from Eclipse with the same effectiveness as last year, and with no signs of slowing down any time soon.
The build landscape is much more quiet, with Maven continuing to be the dominant player and actually gaining ground, despite no major releases this last year.
And finally, JVM languages are getting a lot of traction as well – given that almost half of the developers who answered the survey are actively using a second language.
This is going to be an exiting year in the Java community.