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 numbers had 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.

8. Conclusion

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.

  • Anshul katta

    Java and Spring for life , and Eclipse too….for a hardcore Java developer

    • Durim Kryeziu

      I would say Java and Spring for life, and IntelliJ IDEA 😛

      • Grzegorz Piwowarek

        54.2% has just not tried IDEA yet 😉

    • Antony Jones

      You stick to being hardcore and I’ll stick to being productive, with Groovy, Gradle, and IntelliJ IDEA.

    • Jacob Beasley

      ‘Write Post’ has encountered a problem.

      An error occurred while parsing ‘Eclipse… for a hardcore Java developer’.

  • Johan Frick

    Would be interesting to see an investigation on why maven gets more and more popular compared to gradle

    • That would indeed be interesting, but I’m not sure how easy that would be. Maybe one way to do it is to include a followup question in the next survey (2018), but what would that look like?

  • Petar Tseperski

    I would’ve liked to see also JDeveloper IDE included as a separate “item” in the pie chart, not included in the “Other”. 🙂 For sure its percentage will be insignificantly small, but still is an ide which Oracle offers.

    • Well Petar, that’s an interesting idea, but the reality is that it would be below 0.5% (based on the “Other” data) – and so I’m not sure it makes sense as an independent item for such a small percentage. If we do that, we’d have to include other very small options as well right?

      • Petar Tseperski

        Yes, you have a point here. 🙂

      • Geertjan

        I agree with Petar. Also, most people use multiple IDEs, multiple frameworks, multiple libraries. I have about 4 IDEs installed on my system, as well as multiple editors.

  • Geertjan

    How/when/where was the invitation to participate in this survey announced? I have seen the results of the survey this year and last year, but I have never been able to participate in it because I have never seen an announcement about it or an invitation to participate. And, who is “Baeldung”? It seems to be one guy called Eugen Paraschiv? Why is Eugen pretending to be an organization, i.e., using the word “We” in sentences like this: “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.” Eugen, thanks for your survey results, can we get more clarity on who you are and on how you run this survey and who the people are who have taken the survey this year?

    • Hey Geertjan,
      First – thanks for the feedback – let’s jump right in.
      Let’s start with the survey being “announced”. The survey ran for 1 week and it was “announced” in a few places – Twitter (retweeted by the official Java account, as well as the Spring account and of course about 100 other accounts), Google Plus, reddit, Facebook, and of course all over the site, along with several reminders on the email list. Now – if you have any concrete suggestions that I missed – I’d be more than happy to add them to the list for next year. Do you?
      Next – why I’m using “we” – that’s very simple. The site is no longer just me. There’s a team of 10 editors, about 80 authors, and 8 other people on the team. And so it wouldn’t make sense to say “I ran the survey” – given that team helped a lot.
      Finally – a piece of unsolicited advice. It’s generally a good idea to assume good intentions unless it’s clear that’s not the case.
      Hope that helps. Cheers,
      Eugen.

      • Geertjan

        Clearly, given the content of this site, the focus of the survey is on Spring developers. I am not a Spring developer so that’s probably why I didn’t come across the survey anywhere and probably that explains the high percentages for Spring adoption etc in the survey. That means the survey itself shows nothing other than the preferences of the random people who responded within a week of the announcement of the survey and who happened to come across that announcement. Something to that effect should be stated at the start of these survey results. Good intentions are fine, though there is a lot to question about surveys and getting a completely random number of people to respond results in completely random survey results. Additional places to announce something like this could include articles on DZone, JAXEnter, InfoQ, etc. And perhaps running a survey for 1 week is, well, a bit weird? Let’s make it truly visible next time to the whole Java community so that everyone has an opportunity to weigh in. I have seen survey results being used to justify all kinds of decisions and hence survey results without clear explanations such as these are simply dangerous.

        • Spring is definitely a focus. But, only about half of the voters came from my own audience – the other half came from the general web – so the results should be well balanced.
          Also – can you name a single site out there that doesn’t have some sort of bias towards on topic of another? Or any other survey in the Java space that’s more accurate?
          About Dzone – yes, I did that in their links section (didn’t get a lot of traction). As for InfoQ – I considered it, but there’s no way to “post” on InfoQ, so that’s easier said than done.
          Now – to be clear – I have absolutely no interest in reporting incorrect numbers. And I absolutely do try to spread the word as much as possible. By their very nature – surveys will only reach a percentage of the Java developers out there.
          But, let’s take a step back here. We’re talking about about 4500 responses (almost double the next survey in the space as far as I remember) – so I would instead say that it’s the most relevant survey in the space (unless I’m missing something). Is it perfect? No, of course not – but the numbers, it’s a good representation of the industry as a whole.
          Or am I missing another, more accurate/better survey in the Java ecosystem?

          • Geertjan

            OK, next year, I’d be very happy to be involved in promoting this. Indeed, we can get articles on DZone (not in the Links section, but as an actual article there), JAXenter, etc etc etc., and there are lots of ways to get info into InfoQ, happy to help. With the starting point of all those who have responded this time round, plus all those who’ll respond next time in addition, we’ll end up with a really more representative response. However, is the Spring focus absolutely necessary or could the survey be broadened? Right now, the problem is that I have seen it being interpreted as representing opinion across the Java developer community, while there’s a clear focus on Spring, when one looks closer, which most people don’t. E.g., there’s lots going on in the Java ecosystem outside Spring and even outside Java web.

            And, no, indeed, I find all surveys in the Java ecosystem (and probably any ecosystem) to be highly problematic for the way that they’re used and interpreted versus the way in which they’re intended and created. This one is no different, though I’d be happy to assist in any way if you’d find that useful and would like further promotion and input, of course.

          • Sounds good.
            Yes, there’s a focus on Spring, because last year it was called “Java and Spring in 2016”. And yes, I will definitely add a couple of Java EE related questions next year (suggested by Reza Rahman) to balance out the Spring questions.

            As for helping – that’s always appreciated. The more developers vote, the more accurate the results will be.

            Cheers,

            Eugen.

          • Geertjan

            Excellent. And maybe the survey could run longer than 1 week? And Java developers do a lot outside of the Java EE and Spring world. E.g., you’d be surprised how large the Java desktop community is, though less surprised after including it in the survey, and there’s mobile, IoT, etc. Though possibly you’d want to narrow it to Java web in general, though, again, that should be very clearly stated — e.g., someone shouldn’t conclude that the Java desktop is dead based on your survey if in your survey there are no questions on that topic.

  • Jalal Kiswani

    Interesting findings. However, It would be great if you can include some statistics about the usage of Java IDE’s in popular companies who uses Java in some of their projects, such as: amazon, google, ebay, linkedIn, paypal, dell..etc, since this may affect the results dramatically due the to the high number of developers in these companies.

    Note: I think one of the main reasons about increasing the popularity of IntelliJ is due to the good marketing strategy by the company(same as JRebel), try search for (e.g. “Java IDE” on google), they have dedicated people on every forum(try search on stack overflow), you can find their advocates replies on every forum question (By the way, there are some of them already here 🙂 )

    Jalal

    • Hey Jalal,
      I’m glad you like the survey – there’s definitely a lot of interesting data here.
      Your suggestion, while intriguing, is not going to work unless we get a large number of developers out of those companies answering (which is unlikely). Also, as far as I know, that’s a team/project decision, so it may vary a lot anyways.
      As for the growth of IntelliJ – yes, that’s probably one of the factors. But, I’m sure it’s also the quality of the product. I’m personally a hard-core Eclipse user, and have been for over a decade – but even I’m strongly considering going over to IntelliJ being frustrated with the Eclipse ecosystem.
      Thanks for the feedback,
      Eugen.

    • Grzegorz Piwowarek

      Jalal, did you try IDEA or are you basing your opinion only on the marketing strategy? I switched to IDEA 4 years ago when the marketing strategy was not that strong. It simply removed a lot of anxiety from my everyday work.

      • Jalal Kiswani

        Grzegorz, actually I was playing with intellij and netbeans for the last week doing the following:
        1- Create maven projects
        2- Import complex maven projects
        3- Create desktop swing applications
        4- Create JSF web applications
        My personal opinion is that intellij may compete with NetBeans, however it is far away from competing with eclipse-based IDE’s (JBoss-Studio,STS,RAD) for advanced users. to be more specific, below are some limitations:
        1- Limited maven pom files support (dependency hierarchy, main fields views)
        2- Swing designer: (a) Swing designer doesn’t reverse engineer the code (b) Swing designer missing XYLayout,NullLayout (a) depends on non-standard views (.form), which will make you views unmaintainable in future versions, if you decided to switch to another IDE or future versions of same IDE. (if you think it is good designer, try to use eclipse WindowBuilder for 30 minutes)
        3- No workspace (multiple different projects with complex project structure for each)
        I faced some problems in the editing like auto complete for constants is case sensitive in classes (try BorderLayout.south), but I will not talk about them since they are not major.

        Note: I am using the IDE to manage/develop: API’s, Frameworks, small applications, and large scale enterprise business applications , and I have used all the major IDE’s just from the beginning (JBuilder,JDeveloper,Eclipse,Netbeans,RAD,IntelliJ,JCreator), and I am currently using JBoss-Studio eclipse based IDE with almost no problems since more than two-years.

        However, if you think eclipse-based IDE’s are too complex for you, give netbeans 8.2 a try and try, and try to create maven web project to see the difference.

        Final-word: I am independent architect/full stack developer and I am not advocate to any company or IDE, however, as I mentioned before, I think the marketing of IntillJ is playing key-roles of its current popularity.