Java UI Trends – who’s gaining popularity?

Posted on Posted in Java, Technology Center

Here’s some statistical analysis as to popularity of recent web technologies in Java. By comparing the searches performed between Struts 2, JSF, Spring MVC and JBoss Seam using Google Trends, it appears that Struts 2 is gaining traction among Java developers while JSF started to lose ground since mid-2007. Searches for Spring MVC and JBoss Seam are increasing but at a slow pace.

On the other hand, jQuery is becoming popular amount Ajax Frameworks. YUI, Dojo and Prototype are roughly equal and jQuery has dramatically surpassed all other frameworks since early this year.

If you’re interested how the graph were generated, try the links below:

Struts 2 vs. JSF vs. JBoss Seam vs. Spring MVC

YUI vs. Prototype vs. JQuery vs. Dojo


UPDATE [2008-09-13]

Here’s an updated graph on Java technologies as commented below.

16 thoughts on “Java UI Trends – who’s gaining popularity?

  1. Of course, you didn’t include JSF reference implementation which has gained much more momentum than MyFaces when MyFaces were late with their 1.2 release (and btw it was about that time when you can see the decline on the chart)…

    Anyway, there is a number of JSF implementations and you only compare the one from Apache.org.

    I am not sure why did you put ICE Faces there? ICE Faces is not a JSF implementation but built on top of it. If it comes to that point you can add Richfaces (‘similar’ to ICE Faces) to the query and see the trend…

    Also do not forget JBoss Seam uses JSF reference implementation (although has become decoupled from JSF recently) and Richfaces.

  2. Thanks for the useful insight, Siarhei.

    I agree that JSF is a bit hard to quantify since there are multiple implementations out there. So, are you suggesting to replace ICE Faces with Mojarra (JSF Reference)? Anyway, here’s an updated link:
    Struts 2 vs. JSF vs. Spring MVC vs. Seam

    However, the trend appear to be in the same pattern. Perhaps you’d like to play around with the keywords to show a more accurate trending?

  3. As a very big fan of jsf. I believe people are starting to accept jsf as the clean solution to implementing ajax based RIA.

    At the moment, I think the best application framwork to use with jsf is seam framework because it was designed to be tightly coupled with it.

  4. Allan,

    I don’t think Mojarra as a term is used a lot. To be honest ‘JSF RI’ is used more, even then it is *most* of the time just JSF because the abbreviation of “RI” is mostly used to indicate the implementation version.

    Besides IBM, Oracle, SAP and Resin also offer their own JSF implementations…

    Also because JSF is also an abbreviation for Joint Strike Fighter you won’t get accurate results from google (unfortunately). Because of that, sorry, but I doubt you can get something sensible from google.

  5. Just, FYI. This is the query that I used:

    http://www.google.com/insights/search/#cat=&q=struts%202%2Cjsf%20-fighter%20-joint%20-strike%20-plane%20-jet%20-vehicles%20-defence%20-hover%2Cspring%20mvc%2Cjboss%20seam&geo=&date=&clp=&cmpt=q

    I’ve put lots of exclusion keywords (which resulted in no non-JSF search results on the first 5 pages). Even then, it is somewhat obvious that a 3 letter abbreviation will give too much ‘noise’ in the search results.
    Even then if you just ‘google’ the jsf query I’ve constructed for you it will give somewhat accurate results.

  6. Thanks Siarhei. This changes the statistics dramatically and I have to agree that the query you used seems accurate enough to show only Java Server Faces.

    Would you say this reflects the real popularity of JSF against other frameworks?

  7. Hard to say. It’s the same story with Spring. Sometimes people just use word Spring to also reflect Spring MVC.
    But, tbh, I do think JSF is on top of the ‘popularity contest’ (because that’s what google can give us) even though the difference in reality is a bit less ‘dramatic’.

    Also, JBoss Seam is from a different category than the MVC frameworks because it uses (built on top of) other MVC frameworks to work (JSF in this case). Even then it is interesting that you put it here – this speaks in favor of Seam 🙂

  8. JBoss Seam is really not in the same categories as MVC frameworks because of the following reason (Correct me if I’m wrong):

    1. It’s an application framework that can be closely compared to spring which integrates several high level frameworks such as jsf and hibernate.

    2. Seam choosen to integrate “component based web framework” such as JSF as opposed to “mvc framework” because they believe “mvc framework sucks”. See the link here http://bill.burkecentral.com/2008/01/09/mvc-plumbing-sucks/

  9. While I agree that JBoss Seam is really from a different category (it’s really ‘built on top of’ kind of thing).

    The statement that JBoss (or Bill Burke or Andy Rubinger to be precise) thinks ‘mvc sucks’ is, IMHO, a wrong interpretation of the article.

    First of all, the (original) article of Andy Rubinger to which Bill refers to says ‘MVN plumbing sucks’ – please don’t throw the key words (*plumbing*) away! And he does have a point if you actually read the article.

    Second, Seam is actually *based* on MVC: they have actions (controllers), model and view generated b y seam-gen – somewhat similar to what Ruby on Rails offers but in ‘java-fashioned’ way.

    And, just FYI, JSF *is* a MVC framework (and component-based in addition to that).

    What Seam is actually trying to say ‘dump the layers’ calling to use only necessary layers and not just layers for the sake of layers (which has become a ‘disease’ of many apps, especially with EJBs).
    Besides, Bill is not even part of the JBoss Seam team (but that’s not the point).

  10. I never really considered GWT as same level with Spring or Struts as Google designed it with its own language and syntax, just like Grails.

  11. What no wicket?

    Interesting query. Put wicket in and see where it stands (of course I guess you have to consider that people may be searching for ewoks, or cricket peices as well).

    I can’t see how Struts 2 is gaining traction, while its an improvement over Struts 1, it has too many problems:
    it still only supports a dojo alpha version (0.3 or 0.4?), some components are broken (datetime anyone?), The release cycle is too long to get fixes (in the latest release, redirect params are broken->That’s big!), no plugins have been offered or developed in a year (with the exception of a hessian plugin from Caucho), there’s very little documentation, reusability barely exists (as opposed to a panel/component framework), and [maybe I’m wrong here] stateless frameworks like this are a thing of the past. Maybe people are searching for it because they are desparately looking for help.

  12. I think a more useful real world question is what is the most popular UI technology *for* Java but not exactly what this post is exploring. However, it is interesting that Adobe Flex is more popular than all of the Java UI technologies here except for JSF (adding adobe flex as a trend term) and in my opinion is the best UI technology for a java back-end (I know there’s many who disagree with this).

  13. Just reran your Google Insights query to include GWT, it’s gaining fast on JSF. You might not consider it on the same level as Spring or Struts, but it sure is popular in my local Java community.

  14. Please take a look at the combination of JSF 2.0 and primefaces toolkit. Mix it up with EJB 3.1 and CDI in the business layer. Deploy in glassfish 3.1. It’s the best combination i have seen.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.