InfoQ's Top 20 Web Frameworks for the JVM
Back in early October, InfoQ.com published a community research article titled Top 20 Web Frameworks for the JVM. Their goal seemed to be fairly simple:
Using the new community research tool, we at InfoQ want to get YOUR opinions on the relative importance and maturity of a variety of web frameworks that are targeted for the JVM. Please vote by dragging each practice across two dimensions – how important is the framework relative to the other frameworks, and how much is it actually used in real teams and projects.
When I first saw this article, I noticed some strange web frameworks listed. Namely, Netty, SiteMesh and Spark. I haven't heard of many folks using Netty for a web framework, but I'm sure it's possible. SiteMesh is certainly not a web framework and I've never even heard of Spark. And where is GWT and Vaadin? Regardless of the choices, I went ahead and voted.
Last week, InfoQ posted their top content for October on Facebook.
- Top 20 Web Frameworks for the JVM 25,992 PV
- Ruby on Rails vs. Node.js at LinkedIn 11,904 PV
- Mobile Webdev: The Horror 11,150 PV
- A Brief Introduction to REST 8,872 PV
- Kanban and Scrum - making the most of both 7,665 PV
First of all, it's interesting to see that JVM Web Frameworks is still a hot topic for developers. Whenever I do my Comparing JVM Web Frameworks talk at conferences, I always see a few jabs about "he's still doing that talk!?" Yes, it seems strange that a talk I first did in 2004 is still in high demand.
Secondly, I think InfoQ does good in showing how the frameworks ranked and showing their heatmaps. Below are their rankings from 1109 participants.
According to this research, the top 5 web frameworks for the JVM are Spring MVC, Play, Grails, JSF and Struts (I hope those surveyed meant Struts 2, not Struts 1).
In my research from last February (slide 21), I ranked them (with no particular weightings) as Grails, GWT, JRuby on Rails, Spring MVC and Vaadin. So I guess you could say I got 2 out of 5 right (Grails and Spring MVC). Not bad considering InfoQ didn't even consider GWT and Vaadin.
Another intriguing data point in this study is each frameworks' heatmap. For example, below are heatmaps for the top 4 frameworks.
Notice how Grails and Spring MVC are both hotter in the bottom right corner? It seems the community's overall opinions of these two frameworks are more aligned than JSF and Play, which a fair amount of folks rank as hyped and unimportant.
What I really like about this research is it's the community's opinions, visualized. It also confirms that some of my favorite frameworks are still on top. I don't know if JSF belongs as a top framework, however it seems a lot of folks do. I recently thought about removing it from AppFuse, but decided to keep it (at least for the next release). I hope InfoQ does more research projects like this, especially if they get their list of web frameworks right.
I watched one of presentations this year after reading some of your articles over the years. A quick "Bravo" to you. Not many technical people are able to "communicate" complex ideas without glory details (time constraints, 'mixed' audience, etc.).
Your JVM framework talk will remain relevant for many years:
I share most of your comments about InfoQ's article. It's got to be an undercover job :-).
I've also never heard about Spark. Not sure about where they get their data from. In the real world, in terms of adoption there's Struts, lots of it, and if not Struts, it's JSF or Spring MVC. In less conservative organizations, people might be able to suggest and use something else (GWT, Grails and others).
Posted by Yves Zoundi on November 06, 2012 at 06:59 PM MST #
Posted by Tony on November 07, 2012 at 12:24 AM MST #
I think you shouldn't assume honesty, or even objectivity, in an unscientific poll. You should take the spread of responses into account. Bigger spreads can mean varied experiences, or it can just as easily mean the responses have a higher degree of subjectivity. You can really see that in the case of JSF, a framework known to have a very polarizing effect on developers.
All you need to do is look at the want ads to see that JSF is a top JVM framework, and will likely be that way for as long as JVM frameworks remain relevant.
Posted by rdean on November 07, 2012 at 04:56 AM MST #
I've seen your presentations a couple of times (last time on Devoxx), and I think they are still relevant even to this day. New frameworks are popping up, other ones are dropping from the radar and some are changing drastically (like Play going from Java to Scala). It's a topic that's going to be relevant for quite some time.
There is one little thing that does bother me in those presentations, and that's your fairly obvious bias against JSF. In your talks you e.g. ask who uses JSF, and when a large number of hands show up you always ask who of those likes JSF. Some hands drop then, and you say something like: "See!".
It's a nice trick, but for some reason I've never seen you asking that followup question when it concerns one of the other frameworks. I wonder why that is.
If you are presenting yourself as, more or less, an authority on comparing web frameworks, then having a fairly obvious biased against one of them is just peculiar. I, all of my team, and various clients distrust your ranking of JSF. We do look at your data if the choice is between other frameworks, but as soon as JSF comes into the picture we just look elsewhere.
I'm not really sure where this bias comes from. Yes, JSF 1.0 sucked and 1.2 was only marginally better, but 2.0 is really cool and productive and there are SUPERB component and utility libraries now like PrimeFaces and OmniFaces. As a researcher of this topic I think you should keep up the date and not stick to some old grudge.
Posted by henk on November 07, 2012 at 09:19 AM MST #
Posted by Raible Designs on November 08, 2012 at 11:50 AM MST #