Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

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.

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.

InfoQ's Top 20 Web Frameworks for the JVM

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.

Spring MVC Heatmap Grails Heatmap

Play Heatmap JSF Heatmap

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.

Posted in Java at Nov 06 2012, 12:04:28 PM MST 5 Comments
Comments:

Hello Matt,

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:

  • Sometimes non technical people drive architecture decisions
  • If a framework is appealing, it may still represent a corporate risk.
  • John Doe believes that JSF is better, the problem is that there's too much choice,specific expertise, too many meetings (No Decision Matrix initially), politics, etc.

I share most of your comments about InfoQ's article. It's got to be an undercover job :-).

  • Sitemesh doesn't belong to that list... I'm concerned... I would qualify it as 'some kind of templating infrastructure with flexibility at the view layer).
  • I also see lots of GWT nowadays (GXT mostly). I'm currently working with Grails. It's a bit strange that GWT isn't mentioned in InfoQ's article.
  • In Canada at least, I would say that Vaadin is pretty much inexistant... I've never used it but I read few articles here and there.
  • About JSF, I would consider it a top framework. Many developers are making a come-back. Instead of playing around with tons of frameworks here and there, they try to stick to Core Java/JavaEE.
  • I've used early VRaptor versions about 7/8 years ago (velocity views, sitemesh, basic hibernate integration at that time, simple but efficient). I'm not sure that even 10% of Java Web developers in the world know what VRaptor is. The adoption rate is fake for sure :-). In terms of main Web Framework for an organization, I would likely consider it a risk. It was fun using VRaptor 1.x, but at the corporate level, I would question the choice.
  • I've seen articles about people using Tapestry, etc. Sadly, I've never been around developers that use Tapestry in production... Most people go with Wicket after looking at stateful component based alternatives. I played with it "very briefly" 3.x and 4.x.
  • I would never recommend Struts to a friend period too... I believe that you said something among those lines at Devoxx 2011, if I recall correctly. It served its purpose. Sadly some people will always stick to what they already know => "You tried your best and failed miserably. The lesson is: never try." Homer Simpson quotes. There's too much existing Struts code to make it vanish...

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 07, 2012 at 12:59 AM MST #

I think JSF is listed as top framework mainly because of PrimeFaces and the other UI component libraries it can provide.

Posted by Tony on November 07, 2012 at 06: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 10:56 AM MST #

Matt,

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 03:19 PM MST #

[Trackback] In my last post about InfoQ's Top 20 Web Frameworks for the JVM , I received a thought-provoking comment from henk53 : There is one little thing that does bother me in those presentations, and that's your fairly obvious bias against JSF. ... ...

Posted by Raible Designs on November 08, 2012 at 05:50 PM MST #

Post a Comment:
  • HTML Syntax: Allowed