Top 4 Java Web Frameworks Revealed: Real Life Usage Data of Spring MVC, Vaadin, GWT and JSF
In 2015, we surveyed 2164 Java developers to see the tools, frameworks and assorted Java technologies they were using to develop applications in Java.
While we have had more recent reports since then, the 2015 survey results help to show just how much preferences have changed in the last 5 years. In this report, we look at which web frameworks were most used in 2015, and look at some other interesting statistics that you may not have considered. Let's dive in!
Looking for the latest Java framework usage data? Our latest Java developer survey asked developers about their Java technologies of choice, including frameworks, IDEs, databases, and application servers.
Web Frameworks in Use
Back in May, we launched what proved to be our most popular investigation into Java developers tools and technologies: The Java Tools and Technologies Landscape for 2014. Propelled by a rush of charitable feelings, precisely 2164 JVM developers responded to the survey–each response donated 0.50 USD to Child’s Play, a charity that gives sick children game consoles to pass the time while sick.
One of the most popular subjects that we regularly cover has to do with Java Web Frameworks–after all, it’s one of the most active and fragmented technology segments out there. One in 10 devs we talked to doesn’t use any web frameworks at all, and one in five developers uses among 40 or web frameworks that aren’t even in the top 8 most used out there. What the heck is going on here?!
Here is what we’ll look at today:
- How many developers use multiple frameworks?
- Breakdowns for the top 4 frameworks compared to the average results (e.g. what % of Spring MVC users also use Vaadin?)
Let’s get started!
Nearly one-third (32%) of developers use more than one framework
Java web frameworks are one of the few technology segments we looked into that really features complementary tools–as you can see, 57% use only 1 framework and 32% of all respondents (including those that use nothing) said they use 2 or more frameworks. That goes up to 36% when we eliminate non-users. As if to emphasize the fragmentation of this area, we see different results when we break it down based on the 4 frameworks we’re looking at today.
What % of specific framework users use more than one framework?
- Spring MVC – 54%
- JSF – 54%
- Vaadin – 54%
- GWT – 70%
It would seem that GWT is not the single framework of choice for our respondents. Let’s dig deeper into the figures for these four frameworks.
What percentage of a framework’s users also use something else?
Spring MVC users are strongly aligned with the overall findings–with Spring MVC in use by 40% of developers that use a web framework, this is not surprising. The top 4 frameworks used by Spring MVC users are JSF, Vaadin, GWT and Grails. Like a presidential election, we found the breakdown pretty much even: 54% of Spring MVC users also use another framework, but 46% stick only with Spring. Here are some other notable findings related to Spring MVC users:
- Grails is the holy grail – Grails among Spring MVC users is 57% higher than the average, which is sensible considering that SpringSource acquired G2One, the company behind Groovy, back in 2008.
- Struts 1 & 2 increased by nearly as much – The usage of Struts 1 & 2 among Spring MVC users is 54% higher than the average–16.2% compared to 10.5%. So, here are those Struts users that were considerably more prevalent in 2012! If these are mainly long-term Spring Framework users, then we can see the residual effect of the once-dominant Struts.
- GWT one-third more popular – GWT usage among Spring MVC users is 34% higher than the average. In our previous coverage of Java Web Frameworks, we identified Spring and GWT as fitting together naturally, complementing each other’s strengths and reducing the deficiencies.
With the dominant positions generally held by Spring, Vaadin, GWT, they are still aligned with expectations, but among JSF users we see a resurgence in what some developers might think of “legacy frameworks” (perhaps “mature” is better): Seam especially, but also Struts 1 & 2 and Wicket are more highly represented among the JSF crowd, while newer players like Grails and Play 2 are less commonly used. Notably, we can see that:
- Seam is about a billion% more popular – Barely reaching 2% of use by the average framework user, Seam usage among JSF users is 8%, a whopping four-fold increase comparatively.
- Struts 1 & 2 is one-third higher – As with Spring MVC, JSF is also a well-known framework that most likely built friendships with Struts 1 and 2 users back in the day. These two frameworks are found 32% more often among JSF users.
- Grails & Play 2 much less popular – While Grails (7%) and Play 2 (6.5%) were more popular for the average framework user, JSF users are 53% less likely to use Grails (3.3%) and 59% less likely to use Play 2 (2.7%).
Vaadin has been one of the fastest-growing web frameworks out there, specializing in helping devs design attractive UIs. If there was ever a framework that seems to have taken all the real estate from Struts 1 & 2, it would be Vaadin. GWT in our Decision Maker’s Guide to Java Web Frameworks (2014 edition), which we ranked as the #1 framework to use for Java development, although the main recommendation was to use several apply the strengths of several frameworks at once.
- GWT usage greatly increased (but still not #1) – With so many platform similarities, it’s not surprising to see GWT usage nearly double among Vaadin users compared to the average, but it’s still not in first place (held by Spring MVC). This reinforces our position in the Decision Makers report that Spring is used for its many strengths even when the dream-team Vaadin / GWT get together.
- Struts, party of 2? Struts? Hello? Compared to the Spring MVC and JSF crowd, Struts 1 & 2 usage is 2-3 times lower among Vaadin users–not even 7% use Struts 1 & 2 combined compared to over 16% for Spring MVC and nearly 14% for JSF users.
- Grails usage decreases by about 50% – Given that we ranked Vaadin and Grails nearly even in the frameworks report, it would seem they cancel each other out. Users need just one of them.
- Vaadin is the favorite – Vaadin usage by GWT users jumps by about 34% to take the #2 position vacated by JSF, which is used a lot less. More or less, they traded 2nd and 3rd places with each other when it comes to GWT users.
- Um, Struts 1 makes a comeback? – Combined usage of Struts 1 & 2 is higher than average, but oddly it’s Struts 1 usage, not Struts 2, that increases by about 50% compared to the average.
- Lowest % of Spring MVC users – Although it’s not much, GWT users take also use Spring MVC about 10% less than the 3 other frameworks, and 20% less than the average.
TL;DR – The “Take-aways” from this analysis
Ok, let’s sum up everything that we found in one good sentence about each section here. This should be good enough for a Too Long; Didn’t Read (TL;DR) spot:
- Multiple framework usage is a common-enough occurrence, with nearly one-third (32%) of developers using 2 or more frameworks. Another 57% use just one framework, and 11% use nothing that appeared in our list (i.e. JSPs and Servlets all the way!)
- Spring MVC users show higher usage of Grails via the ownership of the Groovy platform and Struts 1 & 2, most likely left over from mature projects, and GWT, which we see as a very complementary framework.
- JSF users, compared to the report’s averages, are considerably more likely to use mature frameworks, namely Seam and Struts 1 & 2, while shunning newer technologies like Grails and Play 2.
- Vaadin users seem to work alone, only showing increased usage compared to the average of GWT, on which it is built. Struts 1 & 2 usage drops significantly and comparable framework Grails is also much decreased.
- In return, GWT users favor Vaadin over JSF, as well as Struts 1 for some inexplicable reason.
We hope that you found this drill-down useful, and stay tuned for more deep-dives into the magnificent results of the Java Tools and Technologies Landscape for 2014 report–including IDEs, Java versions, App Servers, Build Tools and more.
Now that you've got your framework figured out, speed up your development by eliminating redeploys using JRebel. Get a free trial here.