Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.
See all our reports

The 2014 Decision Maker’s Guide to Java Web Frameworks

Summary of Findings and Goodbye Comic :-)

Here’s the “too-long; didn’t read” (TL;DR) version of the report, where you can rest assured that we’ve curated the juiciest bits of the content into a single section that’s designed for lazy coders. Recently, we were told that the TL;DR section should come before a “pile of text”, but we figure that’s just related to the guilt incurred by lazy readers for skimming through dozens of painstakingly-prepared content to get to the last part. Ha-HA!


java web frameworks part 2 comic
Source: http://xkcd.com/292/

If we had to consolidate this entire report into one [long] sentence, it would be this:
If you are going to choose one framework to rule them all, then we recommend Vaadin, Grails or Play as our top 3 choices, but if you want to synergize (ooh, 90s buzz word!) the benefits of multiple frameworks, then Spring plus nearly any other framework we covered (especially GWT, which saw the greatest gains) will yield the best results. The choice is yours. Anyway, here’s a summary of what we found…

Chapter I – Where Pooh and Piglet rank frameworks for Testability and Security

Testability
How do each of the frameworks help you test your app? Most frameworks made this process easier by integrating with good existing tools like JUnit and Mockito, but with helpful additions Play and Grails stood out and won the category, with Spring MVC and Wicket tying for second place.

Security
The ability to easily implement authentications, authorizations and other security features with your framework is crucial to many organizations. Both Wicket and Spring (other frameworks like Grails and GWT in fact integrate with Spring Security to bolster their feature set) win this category with excellent standard support. Vaadin and Play arrive in 2nd place, and last comes GWT, which needs the oft-attacked JavaScript, so we don’t recommend using this framework alone.


Chapter II – Framework Rankings Based on Application Type

CRUD (Create, Read, Update, Delete) app – e.g. Evernote
For our next Evernote-like application, we would concentrate on ease of use, throughput/scalability and testability. In this category, Play and Grails stood above the rest with good scores in these categories.

eCommerce app – e.g. Amazon
Here a framework’s ecosystem, throughput/scalability, UX (look and feel) and security are of the highest importance. Vaadin, Play and Grails are the top 3 highest ranking frameworks, with Spring, Wicket and JSF tied in 4th place.

Video/streaming app – e.g. Netflix
Simple yet very hungry, video/streaming apps like YouTube need a great UX and high throughput/scalability, which is why Vaadin is 1st and Play and Grails tie for 2nd place. Spring, GWT and JSF are also strong in throughput/scalability, but leave things desired when it comes to UX design.

Desktop application port – e.g. Salesforce
Security, good UX and easy code maintenance/updates are the factors we judged to be most important for SalesForce-style apps, and Vaadin, Wicket and Grails all excel here. However, the super-combo punch is in fact Spring + GWT, which would in fact beat out Vaadin. Ooooh…

Mobile app – e.g. m.google.com
Security and UX look and feel will top the priority list for this app type. With security difficult to handle on mobile apps, so Spring and Wicket stood out here, but their lower scores on UX led to Vaadin and Grails taking 1st and 2nd place.

Multi-user app – e.g. Scribblar or Crocodoc
Concurrency and a great user interface are high priorities here, so throughput/scalability, security, UX and code maintenance/updates are all important in a framework. Vaadin and Grails again take the top spots, with high marks in all areas. Again here, a combination of Spring and another framework (namely GWT), would come in at 2nd place, though not beating Vaadin.

Prototyping app – e.g. your own app in development :-)
Want to make a testbed for your own app? Rapid app development, framework ease of use and level of complexity, plus docs and community are major areas to look out for. Being easy to use and easy to get started with, along with great docs and a strong UX, Vaadin just barely nabs the 1st place spot over Grails (2nd), followed by GWT, which excels in light of the low priority for high security features.


Chapter III – The Results

As the results show, Vaadin, Grails and Play are the first, second and third place winners not only for features like UX (look and feel), throughput and scalability, and ease of use, but also when compared across seven different application types, from eCommerce to Mobile and even Prototyping applications. JSF, Wicket and GWT are all fair contenders for the middle of the road frameworks, excelling individually in key areas but not bringing enough to the table in others.

One interesting takeaway from this is the fact that although Spring MVC didn’t come in first in any single categories, due to it’s size, community and security it is in fact an ideal candidate to bundle with another framework, such as GWT, which gained more than any other due to the addition of Spring Security. Here we see that a combination of Spring and another framework will beat even Vaadin in many cases. That said, if you are going with a single framework for most needs, become a Vaadin ninja for extra happiness.

All of us at the RebelLabs team hopes that you enjoy this report, and invite you to leave comments below and share the heck out of this awesome report. Twitter is a good place @RebelLabs.


Ok ok, you probably don't need the PDF now, but here it is anyway...