Which is the Hottest Java Web Framework? Or Maybe Not Java?

I haven’t sat down in a long time and actually tried to determine a trend in the Java web framework arena. The uncountable number of “easy to use” Java web frameworks that are out now adays is too many to even start to pay attention to.

Struts 1 came out at a perfect time in history… where your only choice was either hand-coding everything or Struts… and most people went with Struts.

Flash forward a few years later and now you are in a state where everyone has done, redone and re-redone Struts and the Model 2 style of web frameworks over and over and over, each one supposedly easier and faster than the previous one.

Some of the frameworks genuinely bring some pretty cool ideas to the table in new and interesting ways. Others of them accomplish basic tasks with the most convoluted/confusion syntax ever; requiring you to readjust your thinking that you’ve already spent years learning (sorta like Windows Vista did) and learn entirely new technology stacks from the ground up.

With so many choices for Java web frameworks out there, and most of them pretty decent from a technical level, the only thing causing the adoption of particular ones to grow are tools and tooling support.

Unfortunately, not a lot of the teams working on these frameworks understand/believe that or don’t want to work on tools (understandably, it can be a lot different doing tools than it can be doing a framework).

That being said, what if you are a pretty accomplished developer, and don’t need tools? Which Java web framework is the one for you to choose? Well, that’s what I want to try and figure out…

I’m only going to consider frameworks that I’ve seen significant growth and news around for the last few years… I apologize if I’ve excluded your favorite framework here; if it’s big enough let me know and I’ll add it.

I also tried to include only next-gen frameworks… so no Struts or WebWork in this list. The Java web frameworks I narrowed down to are (in no particular order):

  • JavaServer Faces: It’s part of the spec, have to consider it.
  • Apache Wicket: Big grassroots effort, personal favorite and strong team.
  • JBoss Seam: Lots of folks using it and saying it’s pretty great solution to JSF development.
  • Spring MVC & WebFlow: I’m clumping them together because I don’t think either have significant penetration on their own to justify separate categories.
  • Struts 2: Struts was too big not to include this.

And lastly, I wanted to take a look (out of curiosity) at the following non-Java web frameworks:

NOTE: I used Google Trends to determine a universal interest/penetration level for the individual technologies. Alternative names for some technologies were combined to create the single value (e.g. ‘JSF’ and ‘JavaServer Faces’ and ‘Java Server Faces’) in hopes of creating the most accurate values.

I also want to clarify that Google Trends information is based on frequency of search terms (not the number of pages indexed with the terms specified). So if you trend “Cat” against “Dog” you are trending the frequency of times people are searching with the term “Cat” vs “Dog”.

This is actually an interesting data point, because I think most people search for terms when they are evaluating or learning a technology stack… not just for fun. So by trending the keyword search frequency, we are getting a live “vibe” of how active the community around these technologies are in a round-about way. Or at least a decent approximation determined by the interest of the greater development community.

I used the following values in the Google Trends engine to represent each framework:

  • JavaServer Faces: (javaserver faces) | (java server faces) | jsf
  • Apache Wicket: (apache wicket) | wicket
  • JBoss Seam: (jboss seam) – Cannot use the term ‘seam’ it’s too common
  • Spring MVC & WebFlow: (spring mvc) | (spring webflow) | (spring web flow)
  • Struts 2: (struts 2) | (struts2)

And for the non-Java frameworks:

  • Adobe Flex: (adobe flex) | (adobe air) | (flex 2) | (flex 3)
  • Ruby on Rails: (ruby on rails) | “RoR” | ruby rails

I’ve tried to include most all of the different name variations when representing the technology stacks and exclude potential false positives to give as accurate results as possible; especially with the frameworks that included normal-ish words in their names (e.g. Seam and Flex).

If you have any enhancements that you think might make the results more accurate, please let me know.

NOTE: Even with the liberal use of qualifiers I realize there is still a margin of error created for more common words that can possibly match for a term. So please do your own research and come to your own conclusions when researching frameworks for use at work.

Now let’s start analyzing these. When you drop all 4 of the Java web frameworks onto a trend diagram, you end up with what I found to be a pretty surprising result, JSF is the clear winner with a surprising amount of Struts 2 mixed in there:

If we take JSF out of the picture so we can get a better idea of how the runners up stack up against each other, we get:

Which is much more interesting I think is how Wicket adoption has stayed almost flat while Struts 2 adoption has spiked. Spring MVC/WebFlow seems to be going no where fast and racing JBoss Seam there.

The popularity of Struts 2 really caught me off guard with it being quite a bit different from Struts 1, I figured it got thrown into the “just another web framework” category, but I guess there is something in a name and it’s doing quite well.

Because of this trend I’d expect to see some Struts 2 tooling support start gracing some IDEs here in 2009.

Now let’s switch gears and take a look at our non-Java web frameworks and see how those two are doing:

Again, very interesting. If I had to guess based on the buzz I hear, I would have guessed that Ruby on Rails would be destroying Adobe Flex, but as we see here Flex is really carving out a nitch for itself among developers.

I had a chance to speak to a predominately Spring-shop recently who had adopted Flex and their reason for doing so was:

  • low barrier to entry to get something up and off the ground working
  • easy to make a nice-looking UI that worked quickly and reasonably functional
  • focused tooling support

The fragmentation in the Java web framework space is certainly one of the biggest causes of the lack of great tooling for 1 particular framework over another. As soon as you support framework A, users scream for B support, and next thing you know you are trying to maintain tooling support for 6 frameworks across every single release (speaking from experience)… it’s expensive and a huge nightmare. Having the focused language and platform that you can target your tools directly at is really nice… then again your trade off is a locked-in platform, sort of like the Visual Studio/Microsoft story all over again… but that’s neither here nor there if your company has the money and has problems the technology solves well.

Getting back to our trend analysis, let’s take the top 2 Java web frameworks we have and super-impose them on our 2 non-Java frameworks and see how they do:

Again, very interesting. I expected the gap between JSF, Ruby on Rails and Flex to be bigger… I’m not sure what I expected it to look like, just that it would be bigger. Remember that JSF was the far-dominate Java web framework by a factor of atleast 2x, and now super-imposed ontop of Ruby on Rails and Adobe Flex it is looking like a very close game, with Struts 2 (our 2nd highest Java contender) dragging below them all.

If we simplify the trend by removing Struts 2, we get:

Not too big of a difference, the three web frameworks look like they are in a pretty good race and may continue that way for a time to come.

An interesting way to predict how the future will look is to look at the history of the technologies, more specifically:

  • JSF hasn’t been able to boost it’s numbers by much at all over the last 4 years. There was a slight increase in 2004, even less in 2005 and then it just flattened out and decreased in ’07/’08.
  • Ruby on Rails blew up in 2005 and 2006 and is settling a bit it looks like.
  • Adobe Flex didn’t blow up but has had a pretty steady rise after a very slow start in 2007 and 2008.

I wonder if Adobe Flex is going to be the next vendor to lock-into in the classic Microsoft model?

Actually, that’s an interesting question, where does .NET fit into all of this? Let’s have a look:

NOTE: I only used ‘asp.net’ to represent .NET to have a more focused trend. Using ‘.net’ almost completely flattens out the competition technologies and there is no guarantee that I wouldn’t also be capturing a ton of client-side development using .NET as well.

Oh wow… now it’s just embarrassing… the issue isn’t even if Wicket is better than JSF, or if Spring WebFlow will trump Struts 2… it’s a much, much more general question of: Is Java web development providing solutions to developers?

Given the incredible dominance of .NET and the growing rise of Adobe Flex, I have to imagine that, as developers, while we might squabble about the differences and benefits of framework X versus framework Y, these commercial, proprietary, complete-stack solutions from Microsoft and Adobe are being used to actually solve problems at companies.

Sort of puts the framework-wars on JavaLobby into perspective when you realize you might be fighting for 2% of a dirt-pie, while the guys outside are all sitting down to a lobster dinner.

Thoughts?

Update #1: The trend graphics were updated to link directly to Google Trends with the appropriate searches. Thanks Brian Fernandes!

Update #2: Some user pointed out it might be interesting to add back trends for JSP/Servlets and Struts to see how they stack up. I tried doing this with Struts by using the trend value “struts-2″ to get just Struts results and not mix them with Struts 2, and what I got was a value that was on-par with the other Java technology stacks, not even breaking into the ASP.NET realm. It’s also really hard to try and get an accurate read with JSP/Servlets as using either of those terms is going to pickup any search of “jsp editor” or “jsp autocomplete” or any other question that isn’t really related to deploying apps using the tech but just questions about editing a specific J2EE artifact.

Tags: , , , , , , , ,

About Riyad Kalla

Software development, video games, writing, reading and anything shiny. I ultimately just want to provide a resource that helps people and if I can't do that, then at least make them laugh.

, , , , , , , ,

93 Responses to “Which is the Hottest Java Web Framework? Or Maybe Not Java?”

  1. mark June 10, 2008 at 10:03 am #

    “Others of them accomplish basic tasks with the most convoluted/confusion syntax ever” <- dont talk bad about JSF. I personally believe that every company that is using JSF do it because its in JEE standard. They are too lazy or stupid to even check out other frameworks.

  2. Josef June 10, 2008 at 10:18 am #

    Was Grails considered? Its comparable to Rails, yet using Groovy language instead of Ruby.

  3. Riyad Kalla June 10, 2008 at 10:25 am #

    Mark, please note that the sentence you quoted, I didn’t even say JSF in it (I actually wasn’t referring to JSF, but another web framework that I won’t name names for)… you came to the conclusion that I meant JSF… so does that mean you don’t like JSF? :)

  4. Riyad Kalla June 10, 2008 at 10:26 am #

    Josef, I compared Grails to Ruby on Rails and while it has seen some good growth in the last year, it’s still so small that it would have been in a far 6th place; so I just excluded it for the time being.

    Also with the surge behind alternative-languages-on-the-JVM, Grails might be a very different story next year… who knows.

    Here is the Grails Google Trend link if you want to have a look (against Ruby on Rails).

  5. ashish June 10, 2008 at 10:31 am #

    Recently, i spent lot of time learning about different options available for web frameworks (action based only). There are numerous small frameworks like Stripes which might be better for simple app. But generally, companies & developers opt for framework which has more presence in market and more demand.

    Coming to point, I ended up using Spring MVC over Struts2, just on fact, it’s simple POJO based framework not tied to any specific style of programming or interfaces.
    (Hint: OGNL in struts2 or a POJO for both form data & action method)

    Spring MVC definitely has more learning curve than Struts, but in long run, it’s very easy, adaptable and you don’t get surprises after 3 months in development.

  6. Riyad Kalla June 10, 2008 at 10:36 am #

    Ashish,
    That is almost a pro and a con isn’t it?

    I know there are more complicated frameworks out there, with greater learning curves… but the promise is that at some point you get good enough with the framework that you start to see huge time savings with things like component re-use and more automated processing.

    Do you feel that Spring MVC is too bare-bones compared to bigger frameworks, or a perfect balance between the two?

    (I’ve only briefly glanced at Spring MVC, so I don’t have real-world experience with it)

  7. Mike Desjardins June 10, 2008 at 10:55 am #

    Sorry for the “what about platform X” comment that I’m sure you’ll hear a lot of, but I’m surprised that neither Tapestry nor Stripes made the list? Especially Tapestry, that one’s been around forever and has a pretty decent following… Stripes is a relative newcomer, I guess.

  8. Riyad Kalla June 10, 2008 at 11:27 am #

    Mike,
    The trick is to use search terms that can be used to narrow down the technologies. Using Apache Tapestry and Stripes Framework didn’t produce enough information to even be trended in Google.

    So while those tech stacks might rock-some-socks, unfortunately the deployment/interest isn’t deep enough to create trend-able data.

    Unfortunately using “tapestry” and “stripes” is going to create a huge trend group of anything using those terms… like “stripes in shirts” or “art tapestry” are all going to be included in those results.

  9. ashish June 10, 2008 at 11:30 am #

    @Riyad
    Initially, when i looked at Spring MVC, i just ignored due to facts that, there are lots of xml configs and different POJOs, even compare to Struts1. And I started prototyping with Struts2. Soon after spending day or two just on their concept of stacking & OGNL, i was back to hunt simpler framework.
    Then I did analysis on StripesFramework, It looked good at first sight. Before I could spend much time, I read Spring MVC chapter in spring ref guide, and then Spring MVC made more sense.
    From my point, these are pros.
    1. Using spring MVC gives you advantage of single Spring technology stack for your whole project, including service layer, DAO layer, plus hundreds of small pojos written for day to day use.
    2. Spring Security (ACEGI) is much better then other security frameworks.
    3. Spring MVC class hierarchy structure made more sense and easily understandable.
    4. They have different class hierarchy for different purposes. (i take it as pro compare to Struts2 model) (example action class serves different purposes in struts.. not good)
    5. Spring MVC supports all kinds of programming model like annotation based controllers, validations, REST style controllers..

    After thinking about these things, it made more sense to me, to spend time on learning this one..even if it has high learning curve, but it’s worth investment. Once i am proficient in Spring MVC, i am more adaptive to develop any kind of webapp or backend services.

  10. Riyad Kalla June 10, 2008 at 11:44 am #

    Ashish,
    I really appreciate you sharing your experience with Spring MVC. I do agree that the single-stack/best-practices that Spring gives you is hugely attractive, especially when you are looking at rolling out a lot of projects; normalizing on that one platform can save a lot of development time and money for a team that doesn’t need to learn a lot of different approaches to the same problem.

  11. Mittal June 10, 2008 at 11:55 am #

    Nice post, good details. I heard from co-worker about comcast ad which mocks about how numbers are made-up. It would be interesting after JSF 2.0 implementations pop-out in later part of year.

  12. Riyad Kalla June 10, 2008 at 12:00 pm #

    Thanks Mittal.

    Do you happen to know of any highlights in the upcoming JSF 2.0 spec that will really put it on the map/address complaints?

    It would be *really* nice for everybody if the specs coming out of Sun were good enough to not initiate so much fragmentation and we could all settle on something (or atleast most of us could)… then the tooling support would follow and we’d all be a lot happier (unless of course you are a hard-core source-editor only, then you’d be sadder)

  13. Jim June 10, 2008 at 12:17 pm #

    Google trends is not a good proxy for how interest/penetration of web framework technologies. It’s bad for even a rough estimate.

    In particular, ‘Update #2′ makes no sense — you want to track interest/penetration of JSP’s yet exclude queries to Google of people trying to use the technology. What Google queries should be included then?

  14. Riyad Kalla June 10, 2008 at 12:36 pm #

    Jim,
    Let me clarify #2:

    Situation: You want to see how many folks are still using JSP/Servlets for their web applications.

    GT “jsp”: Will capture any use of the acronym “jsp” in a search term. Like “jsp debugging”, “jsp source editing”, “jsp hosting”. This isn’t bad normally *except* that JSPs are used as the base for almost all Java web frameworks… that person could be using JSF, Struts, Spring, etc.

    So I was just making the point that in the case of JSP/Servlets, it would be tricky to find folks, using Google Trends, that are ONLY deploying apps using this super-old-school approach because of how general the terms have become.

    Maybe I’m reading too much into that though, maybe it is a valuable data point for some folks? I don’t know.

  15. Jordi Hernandez June 10, 2008 at 2:25 pm #

    I did a test with GWT, struts 2 and JSF. GWT is above struts 2. And, if you add GWT and struts 2 seems that combined they beat JSF.
    JSF being the standard may be the single most used tool, but the others combined are probably way above it. Which doesn’t say much of a ‘standard’ especially since many alternative tools appeared way after the JSF spec was first implemented.
    Plus, one evil thought: what if a tool is so bad that users need to keep searching google to solve its problems? That would mess up the statistics a bit, I guess.

  16. Riyad Kalla June 10, 2008 at 3:06 pm #

    Ha, Jordi, that’s an interesting point and I think a very valid one… a lot of folks might start out searching on JSF and see some complaints that make them keep searching.

    I’m getting more interested in JSF 2.0 to see if it resolves any of these issues across the board sort of like Java EE 5 made the EE spec stop sucking and introduced very Hibernate-ish development paradigms to EE development.

  17. Darren June 10, 2008 at 5:05 pm #

    The Flex SDK is open source, the Flex compiler is free, the SWF spec is freely available and anyone is free to build their own Flash player, Actionscript is based on ECMAScript, and the Actionscript VM is open source. There are aspects of Flex that aren’t completely open but when someone is able to build a Flex app for free and write their own player to publish it, I don’t think “vendor lock-in” and comparisons with Microsoft are accurate. Is it really that different to requiring users to have a JRE? Or if you’re publishing to HTML, are you in fact locked in to at least four different vendors’ implementation of the (X)HTML spec? In reality, when I’m trying to get a standards-compliant web page to simply display correctly in IE, it feels a lot like Microsoft vendor lock-in to me.

  18. anonymous June 10, 2008 at 10:10 pm #

    you should compare “java” to “.net”

  19. codesounding June 11, 2008 at 1:48 am #

    A question: if I google-search “jsf NullPointerException XYZ”, or “asp.net workaround DataView delete last record”, Google Trends include those results into “jsf” and “asp.net” report trends? Popolarity may be out of positive as well as negative reasons :)

  20. Bruno Vernay June 11, 2008 at 4:07 am #

    In choosing a Web Framework, the popularity is a criterion that maybe should not be encouraged. (What about tools, scalability, plugins …)

    Besides, Google Trends is only a part of the answer (how many books, jobs post, mailing-list traffic …)

    More over, you said that “Wicket is your personal favorite”. I guess that is why you included “wicket” alone in the search terms ? On the same trend, I guess that you dislike Seam, as you put only one term. You could add (Seam java) or (Seam 2) … The same goes for GRAILS, starting from 2006, the trend goes up above Spring and Seam.

    But overall, I am quite OK with your conclusions. At least your post suggest that the Java framework space is way too fragmented.

  21. Alex June 11, 2008 at 6:10 am #

    First thought, just as Jordi and codesounding mentioned, the popularity of the searched term may indicate the number of defects and issues faced by developers when using it in real development.

    We are a JSF shop. When we evaluate JSF against Webwork, Spring MVC and Tapestry two years ago, we didn’t do many searches. However, we have encountered numerous problems when developing with JSF and constantly have to google JSF in search of a solution…

    Secondly, the terms used in the Google Trend are not ideal. Instead of using brackets, double quotes should be used to specify the order of the multiple word search terms.

  22. Riyad Kalla June 11, 2008 at 8:00 am #

    Darren,
    Adobe had to widen their tools “funnel” to get people into their proprietary stack a bit more than Microsoft, but it’s still the same approach. Once you get in, you purchase Flex Builder, then Air and most likely are looking at AdobeLive Cycle Data Services.

    *but* I’m not degrading commercial solutions, I actually think that part of the problem with open source solutions is that they stay so diverse and half-cocked, running around writing in the newest hot thing into the framework, that at the end of the day the only folks truly providing solutions (entire stack?) to customers *are* the commercial vendors.

    When was the last time you used an open source (non-commercially backed) framework that provided a robust tool set surrounding it? Never most likely… (no JBoss and Spring don’t count, those are huge commercial entities backing those technology stacks).

    Tooling really is the only thing that will get stacks adopted widely, especially in companies that need solutions to problems and don’t love learning the next hottest thing.

  23. Riyad Kalla June 11, 2008 at 8:01 am #

    Bruno,
    These are really good points you bring up, I didn’t mean to show any favoritism towards 1 framework or another, my lack of search combinations for Seam were just out of ignorance; I wasn’t sure of other names it was referred to by but those two additions you provided are certainly good ones to add.

    Thanks!

  24. Riyad Kalla June 11, 2008 at 8:03 am #

    Alex,
    This is an interesting point, but doesn’t this further support the trend data? You guys *did* roll out JSF technology and are now needing to get more proficient with it, which is what I was hoping the trend data would show.

    Same goes for all the other technology stacks, once you deploy it in-house, you do quite a bit of searching to learn about it, skewing the search results towards more meaningful “deployed technology” indicators versus “curious searches”.

  25. John Lewis June 11, 2008 at 10:58 am #

    I’m not sure this research is terribly meaningful. Google Trends is a list of how often people searched a given term on Google. So if people are searching for it does that mean its popular? Or does it mean there are a lot of problems with it? Does it mean their documentation sucks and their forums are hard to search?

    I suspect the Spring Web MVC results are incomplete. Most people interested in it will know that it is part of the Spring Framework, so will they really go to Google and type in “Spring MVC”? Or will they just search on “spring” or “spring framework” or “webflow”? Or just go to springframework.org? And “spring web mvc” (the most correct way to refer to it) wasn’t included at all. If you add “spring web mvc” and “spring web” (both reasonable to include, I think), then the results are much more on-par with JSF and Wicket and well ahead of Struts 2 and Seam.

    I think Seam is also suffering from the fact that people likely just search on “seam”, but it’s impossible to count that. In the case of Wicket, the query includes the word “wicket”, which means it is including searches coming from Croquet enthusiasts and Star Wars fans. In the case of JSF, the query includes the word “jsf”, which means it is including searches coming from military aviation buffs looking for more information on the Joint Strike Fighter.

    Another strange thing from these results — the inquiries on “Struts 2″ are mostly in Chinese (like 6 times more than in English). What the heck does that mean? Is there really a ton of Struts 2 development going on in China? Or is there some linguistic issue that is creating a bunch of false positives there.

    Anyway, interesting stuff I suppose, but ultimately not really useful information.

    (Full Disclosure: I’m a committer on Spring Web MVC, so I am a bit biased here…)

  26. Victor Ott June 11, 2008 at 11:27 am #

    The “evil thought” Jordi Hernandez mentioned is in fact not evil at all, it’s a plain fact. My first thoughts when I started to read this blog post was: but people usually aren’t searching for “frameworks” all the day, they’re looking for solutions to problems with those frameworks!

    Of course, if nobody uses a framework, there aren’t questions to it. But I think too that it could be seen more as a warning signal “here is some issue with this framework” (of whatever kind: docs, programming, etc) than as a indicator of popularity.

  27. Hayden Steep June 11, 2008 at 11:39 am #

    I work in a sector that is very uptight about shifting from one technology to another. Several months ago, it was very easy to get approval to develop a Struts…..(pause)……2 web application, because management has heard of it and trusts the name. Had I gone with another framework, I’d probably still be fighting red tape.

    I didn’t do this blindly, however. I evaluated Spring MVC, Struts 2, and Stripes beforehand. I didn’t think that either of those was a huge improvement over the others. Maybe a little better here or there, but all were huge improvements over Struts 1, so I just followed the path of least resistance.

    The Struts 2 people did me a huge favor by recycling the Struts name. If they didn’t, I’d still be fighting to get webwork or stripes approved for use.

  28. Riyad Kalla June 11, 2008 at 11:47 am #

    John,
    Excellent points all around, and you are right, it’s tricky to know what the trends mean. You do have to understand first exactly what Google is doing to generate the trends, then secondly decide if you are using the right terms and the implications of them.

    I was personally surprised that Seam and Spring weren’t higher so it’s entirely possible that I just wasn’t using good enough terms.

    As far as the problematic/popularity issue goes it’s hard to say… I would lean towards saying that *most* developers are not experts, so if you are told to learn a new technology, whether it the most convoluted thing ever or the nicest framework ever, you are going to Google for it (indicating popularity).

    Again, all up to interpretation… it might be nice to combine mailing list data with GT data with Google search count data with job-posting data… I think that would be a really meaningful number.

  29. Riyad Kalla June 11, 2008 at 11:48 am #

    Hayden,
    I think that’s a crucially important data point for some folks to be aware of; that companies *actually* make decisions like that. A lot of developers in the trenches that I know, would say that’s the silliest thing they have ever heard (because they are gurus and pick wahtever they want), they don’t understand how some of these bigger tech companies move; how much red tape their can be and how much politics can be involved in choosing something as innocuous as a web framework.

    It’s nice to hear that it’s all still alive and well :D

  30. Priya M June 11, 2008 at 1:09 pm #

    I’ve worked on Struts, Spring MVC extensively and now working on Seam. I’ve a had small helloworld examples setup using Grails, Rails and Wicket. After all that, I can say that Seam just beats the crap of the competion in this space — Enterprise Soltuins. Unfortunately the JBoss guys aren’t doing much marketing on Seam as much as the Spring shop. Spring MVC is cool but it’s just a facelift for Struts. And so is Struts 2. Today, if someone is still working on non-action based frameworks, I’d laugh my ass because its jst archaic to even think of “post” and “get” after 10 years. JSF was cumbersome, but thanks to Seam which simplifies it, the *huge* advantages of action/component base frameworks can only be realized, once someone dips their dirty hands into an enterprise application. Lot of folks out there, just get excited by writing a hello world and generating crud based screens with a cool eclipse plugin. But my friend, in real world — Enterprise Apps are much more complicated.

    The only place where Java is failing miserably, consistently, is a strong Front end kit, like Microsoft. Maybe Flex is good, but I have to see how well it incorporates with a rich back end enterprise solution. I use Richfaces Ajax but it still pales in front of Flex.

    As for “Web applications”, I think Grails or even Seam (with Groovy) might be the defacto in the next couple of years. Lot of developers don’t know that one can do *cool* stuff with Seam in Tomcat and write groovy code to generate crud screens, exactly like Rails …

  31. Riyad Kalla June 11, 2008 at 1:38 pm #

    Priya,
    I’ve never seen such a strong pitch for Seam before; it certainly sounds interesting.

    If you had to narrow down what Seam did *right* to a list of just 3 things though, what are they? (when compared to Struts, JSF, etc.)

  32. Priya M June 11, 2008 at 2:11 pm #

    Ok, here’s my experience with building a webapp in a little more than 3 months (you get more than *3 things* :) )

    — “Conversation” scoped Beans. I think most people have forgotten about managing scopes in session and httpRequest. With Seam, a “middle level” scope is introduced. This single feature, is worth all the money and beats majority of frameworks. No more LIE exceptions, no more OpenSessionInViewFilter (it’s useless anyways)
    — minimal or zero xml footprint, everything else is annotations. Annotations is *not* an additional feature but it’s the standard!
    — Integration with Richfaces Ajax framework. Out of the box components and it works with Seam
    – No more “layering”. Before we used to have a Contrller layer, a Service layer, a DAO Layer – total waste of time for the so called “coding to interfaces” pattern. IF you use JEE5, you don’t have to worry about DAO layer as the container implements JPA. You write code once, for one API. Rest of the code is written as either Stateless Session Bean or Stateful Session Bean. That’s it — no layer because you just don’t need em.
    — Take this use case -
    search criteria –> show results in a table –> edit all the rows in a table –> save entire table –> show validation results or success message with redirect. I bet anyone to implement this with < 30 lines of code in server side with an equally simple tag library in the UI. It will just crap out. I remember doing it with good old Spring MVC and sluggish tag libraries, urgh. Ugly.

    With Seam, I was able to do this with minimal coding. It’s that poweful.

    – And many many things like — adding a ajax “spinner” on a webpage, comes right out of the box. Adding a converter for entities,
    comes out of the box. For simple queries, you don’t have to write a single line of code (just “from Foo”) in an xml file, will
    open the connection, fetch results, create a List of that type and return right into the UI page. Very powerful

    — incorporating Security. Again, 15 minutes, flat out. That’s what it took me to add authentication inbuilt for my webapp inc
    redirection filters. Do that in Struts or Spring MVC, I doubt.
    — I Can leverage a rich domain model abstraction with hibernate annotations & automatic schema generation with hibernate’s hbm2ddl.auto (no special config in Seam’s project structure) — ofcourse this is Hibernate stuff mostly.
    – We haven’t yet implemented but Business Rules and Complex Business Process Engine are out of the box, Configuring Quartz Scheduler is out of the box. (simple annotations)
    – I’m not a big fan of unit tests as the concept has been overbloated of late. If you have a web app, you need more integration tests from teh web layer to the server – that’s more useful. Unit tests are more useful for framework developers. Seam also provides an embedded JBoss Container. I don’t know how easy it is in any other framework to simulate a round trip integraton test running in a server (without actually starting the main server)

    Of course, the biggest drawback (if you want to consider) is a very steep learning curve. Becasue it introduces a new paradigm shift, not only to I still probably know 20% of Seam but I’ve just released a version of my webapp in less than 3 months. We have 5 screens, all with rich ajax UI (richfaces). Report generations, email generations, schema generation, hibernate cache, PDF generation. And all that was done by one developer who was _learning_Seam_and_richfaces_on_the_project. At the end, I showed the codebase to my manager and he said “is that all?”

  33. Riyad Kalla June 11, 2008 at 2:33 pm #

    Priya,
    I appreciate you taking the time to write all that up, having no experience with Seam I really didn’t understand how to flipped JSF on it’s head or why people were liking it so much; but it seems there is a paradigm shift in there that is allowing you to get a lot of work done, fast, once you understand it.

    I’m always open to paradigm shifts if they introduced accelerated development and glad to hear that is what Seam is bringing to the table.

  34. Priya M June 11, 2008 at 2:39 pm #

    Yeah. Seam is a complete Paradigm shift in JEE development, it could be Web development too. goto http://www.seamframework.org and try it for yourself

  35. Darren June 11, 2008 at 4:54 pm #

    Priya, the enterprise edition of LiveCycle Data Services, as opposed to the open-source BlazeDS, is specifically targetted at connecting Flex with a rich back end enterprise solution. Probably the two biggest features worth noting are the data synchronization engine which automatically synchronizes data between the client and server, and the publish and subscribe messaging service which integrates with JMS. More information here:

    http://www.adobe.com/products/livecycle/dataservices/indepth.html

    There’s also a free developer version (LiveCycle Data Services ES Express) that you can try:

    http://www.adobe.com/products/livecycle/dataservices/faq.html

  36. Ashutosh Sharma June 11, 2008 at 10:14 pm #

    Hiii,

    Tapestry is one of the things thats been missed out here.. I believe it should be considered !!

    Great Job done…. JBoss SEAM is one of the things that we should keep an eye on !!

  37. reader June 12, 2008 at 4:19 am #

    this review is absolutely useless and stupid. have you ever thought about if google trends distinguishes whether “wicket” is meant as the Web framework or as the englisch word “wicket”. “seam” does also have the same problem.

  38. Jeff Mutonho June 13, 2008 at 7:40 am #

    @reader
    “this review is absolutely useless and stupid. have you ever thought about if google trends distinguishes whether “wicket” is meant as the Web framework or as the englisch word “wicket”. “seam” does also have the same problem.”

    If you had taken time to read the whole article ,other readers’ responses and Riyad’s responses you’d know making such a comment makes YOU look “useless and stupid” . Everything in your comment has been responded to already!

  39. Alex June 13, 2008 at 8:01 am #

    I added the word “tutorial” to the search term, and now I can compare “Wicket”, “Tapestry”, “Seam”, “Rails” and “Flex” as well. Please read my blog post: Which is the hottest Java web framework that people want to learn?

  40. Darren June 15, 2008 at 10:39 pm #

    Personally, I think searching for job trends on indeed.com using something similar to this criteria probably gives a more accurate representation:

    java tapestry, java spring, java wicket, java seam, java (“struts 2″ | “struts2″), java jsf

    I think having two terms between commas is the equivalent of a logical “AND” in this situation, much like a Google search. I would imagine on most occasions an ad for a wicket developer, for example, would also have the word java in there too.

    I think this criteria also gives a better picture on Google Trends too.

    You’ll notice that the results are completely different to yours Riyad.

  41. Bruno Vernay June 16, 2008 at 12:55 am #

    This is going nowhere. What is the point to compare “Spring” and “JSF” or “Seam” ? They could be use together !

    OK, Indeed is another data source. There are more job description with the word “Java Spring” than “Java JSF”. Now what does it mean ?

  42. Darren June 16, 2008 at 4:51 am #

    Firstly, you’re right in that those three technologies could be in use together but I think this type of analysis does add some information about the comparative use of those technologies, eg. spring and jsf, whether used together or separately, are far, far more popular technologies than any of the others, if you take job ads as an indication.

    Secondly, I think job ads are a more reliable indication of usage of a technology than search trends for many of the reasons stated above. Of course, the ads represent only a small percentage of the people using a technology but they do provide some indication of the relative use of these technologies in the real world.

    Thirdly, it’s not the words “java spring” and “java jsf” – this would be meaningless – it’s the job ads that contain both the words “java” and “spring”, and ads that contain both “java” and “jsf”. The word “java” is not really important – it’s only there to filter out the noise. If you want to compare which proportion of the job ads for spring also contain jsf, you could do a search like:

    java spring, java spring jsf

    and you can see what proportion of the spring ads also contain jsf.

    I think there is some information to be gained from this but of course it doesn’t really answer the question about which is the hottest *web* framework, as spring for example is obviously most commonly used as an application framework rather than a web framework per se.

  43. Chris Chaney June 26, 2008 at 6:57 pm #

    I added PHP to your combined graph and it DESTROYED ASP.net. If you look at the regional data breakdown, searches for asp.net in India look like they provided a huge amount of lift over the java alternatives. I think the numbers in the US were more in line with reality.

  44. Riyad Kalla June 26, 2008 at 9:52 pm #

    Chris I think that’s a really interesting data point to add (and I should have added it after I added ASP.NET, it just slipped my mind).

    IIRC a lot of the huge new social networking sites out there *are* written in PHP… it’s a language that won’t die, but also doesn’t seem to grow. It’s been insanely popular since it came out, but doesn’t dominate enough to ruin Java/Ruby/etc. out of the picture and from what I’ve seen the tooling is lack-luster with the only good things coming out of a commercial vendor.

    Given *how much* is written and deployed in PHP I’m really surprised by that… you look in the Java realm and we are tripping over ourselves with tools/libraries/etc.

    Glad to hear that PHP is going strong… I know *I* owe a lot to that language, namely with this site ;)

  45. Chris Quijote June 30, 2008 at 11:14 am #

    I used Rails but most development codebase was on Java. So I (grudgingly) tried out Grails.

    I cannot even begin to calculate how much more productive – and creative – the framework has allowed me to be.

    So, I recognise the trend and understand your conclusions – but these kinds of comparison are never conclusive. However much I loved firing up Textmate and coding RoR – Grails has (for me I stress) far, far more actual benefit when combining with my code base and experience.

    PHP just keeps on going – I agree. Although I cannot for one second understand why. I am not trying to knock it’s fantastic contribution and ubiquitous nature – but have you ever joined in a PHP based project half-way through! Never again for me! Many other people must feel very differently from me, however.

  46. Riyad Kalla July 1, 2008 at 6:48 am #

    Chris,
    I took a look at some of the Grails stuff… just from the tutorials/introductory materials it looked interesting, but I didn’t see any “holy shit that’s AWESOME!” things… what did I miss?

    • Leoncio February 29, 2012 at 9:13 pm #

      Hi guys,I had the same prbolem and worked it around the very same way I read somewhere that the bug is related to JSF2 and that it’s corrected in JSF2.03. Has anybody tried it?

  47. Bruno Vernay July 1, 2008 at 7:38 am #

    5 years of a big Struts 1 legacy application maintenance ?

  48. koko September 10, 2008 at 8:29 am #

    How can you compare individual frameworks to a complete technology stack, e.g. JSF vs .NET? You should compare .NET to another complete technology stack such as Java, or compare individual frameworks only: JSF vs struts vs ProMesh vs Spring.NET, etc.
    The last comparison is just invalid.

  49. Editor September 10, 2008 at 11:01 am #

    koko, I think you might have missed the diagram *and* the “NOTE” right under it that explain I did a comparison against ASP.NET for exactly that reason (to avoid catching all the other uses of the more generic “.net” term)

    NOTE: I only used ‘asp.net’ to represent .NET to have a more focused trend. Using ‘.net’ almost completely flattens out the competition technologies and there is no guarantee that I wouldn’t also be capturing a ton of client-side development using .NET as well.

  50. Pno September 26, 2008 at 5:59 am #

    Hello,

    Thanks for this work but :

    Jboss Seam includes Jsf …

    So the comparaison is not very easy , I think taht your graph is not objective.
    :)

  51. Krishna October 27, 2008 at 12:57 am #

    Well, it was is non other than JSF.

    • Angela February 29, 2012 at 8:05 pm #

      Chris, tkhans for the mention.We like to think our fair framework is just one of a variety of ways to look intelligently at the corpus of work being done at an organization. Getting value from adopting and adapting frameworks is possible they’re not just pretty pictures . Our research identified a set of use cases performed by organizations that get value from process frameworks every day. Business process definition was but one of those uses.The ability to have a single language which we can all agree with (regardless of today’s organizational structure or the most recent management fad) and ultimately structure the business around through organic growth, specific engineering, or just simply overlaying the framework atop the existing organization is a powerful concept. The PCF and frameworks like it enable this flexibility.I learned today that the final report will be ready ahead of schedule. I encourage its widespread dissemination and look forward to the various discussions it will no doubt trigger. Stay tuned, as our research into this space continues in 2011.Thanks,John

  52. ideyatech November 5, 2008 at 8:06 pm #

    i have an article about java ui trends
    http://www.ideyatech.com/2008/10/java-ui-trends-whos-gaining-popularity/

  53. Ghanshyam December 6, 2008 at 9:15 pm #

    Hi, nice analysis done for framework popularity. Its really appreciated, but chances of failure of it cant be avoided as google gives popular cricket wicket also when we search wicket framework as already mentioned by friend. Probably I may not be Ideal person to sure which framework is widely used, but like to share some of my experience of working on Struts, Spring, wicket and JSF.

    Spring is most suitated framework for Buissness logic layer and widely used with Integration with another frameworks like Struts,Wicket,JSF and.,,lab..la. So Spring is Common part with when we design most of the applications. So obiviously I feel its widely used. Also recently Spring Framework 3.0 is released with further features. go for more detail for my blog for this or spring official site.

    Here now question remains which one from Struts, Wicket and JSF.

    Struts:- People are posting about it from 95. so google have lot of stock! we know struts is no more. So less chances of use in new application devolpment.

    Wicket:-Wicket is all about simplicity. It is Swing for Web Applications. There are no configuration files to learn in Wicket. Wicket is a simple collection of components. In Wicket, your web applications will more closely resemble a Swing application than a JSP application. If you know Swing, yes you know most of the Wicket!
    None of the existing frameworks are appealing to me in terms of quickness, ease of development, easy to understand etc.

    JSF:- It is another framework on which started to work recently. most of the Drag and drop devlopment is provided and looks very good. I see its growing widely. Still I need to learn lot in this, you can add here.

    I missed here about other frameworks as i don’t have much Idea about them. you can make valuable addditions for us.

  54. GWT User March 5, 2009 at 8:02 pm #

    I have been using GWT, GWT-Ext and now SmartGwt for over a year and it is truly superior to all of these. When the SmartGwt widgets are powerful and well thoughtout and you get to program in Java (not Javascript). Then when the Java GUI is compiled they work on 4 browsers with no effort then how can you go wrong. Take a look at this showcase http://www.smartclient.com/smartgwt/showcase/

    Then after seeing all of the examples of SmartGwt compared to the other frameworks, you will then understand.

    Its easy and you get to work all in Java and it comes with a debugger that also supports debugging in Java. Who wants it to be simple…I do.

  55. Riyad Kalla March 9, 2009 at 8:30 am #

    GWT User,

    That’s a damn impressive component show-case, but even being in the Java community I’m not seeing that many companies or contractors rolling out GWT apps as I thought would be the case after Google announced it. If anything I see more folks normalizing on JSF (hopefully it gets better in 2.0) and a lot of Java developers looking more closely at Flex.

  56. Jarred Haley May 5, 2009 at 9:49 pm #

    We saw many frameworks and eventually went with http://code.google.com/p/startsoft/ a combination of Struts 2.1, Spring and Hibernate.

  57. GWT User May 6, 2009 at 7:03 am #

    Hi Riyad,

    We used GWT, GWT-EXT at Encana Oil & Gas for a well document management tool and it worked great. Now the SmartGWT framework I am using for another Health Canada project. So companies are using GWT and finding that the development time can be reduced while their widgets are powerful and practical. I really do wonder why people love developing in JavaScript and then trying to support multiple versions of browsers. GWT supports the core 4 browsers with no hassle.

  58. Riyad Kalla May 6, 2009 at 9:40 am #

    GWT User,

    That’s excellent to hear, I don’t have that much insight into what the GWT user-base looks like.

    What tools do you guys use to develop your GWT apps? Do you get the GWT tooling support you want out of them currently or do you wish you had a specific killer tool that would make your life considerably easier?

  59. GWT User May 6, 2009 at 10:11 am #

    The tools that we are using are Eclipse, Cypal plugin, SmartGWT and GWT for the Host mode tool. The GWT Host mode tool allows us to view and debug the GUI pages easily and resolve issues quickly by debugging the Java code. The GWT Host mode can show and refresh the code during runtime without requiring a Tomcat restart. Once we have the Java version of the screen operational then the GWT Compiler can compile it into a Javascript format that can be used by 4 browsers. I personally think that these tools are sufficient at getting our job done easily. Now 99% of the time the JavaScript generated code is fine but there can be bugs in the Javascript compilation. When this issue occurs it is usually because of a null pointer issue because I did not test all circumstances in my code.

  60. dandv July 25, 2009 at 12:21 am #

    The fact that there are 57 open source Java framework leads, in my opinion, to a much worse situation for the web framework user than if there were, say, 6.

    According to studies, when consumers were presented with 24 choices among varieties of a product, they much more often did not buy ANY of the products, than if they were presented with only 6 alternatives.

    I wrote about the paradox of choice applied to web application development at http://wiki.dandascalescu.com/essays/paradox-of-choice-in-web-development

  61. Yuri Novicow August 8, 2009 at 3:10 am #

    I looked for domain or model driven framework like Rails (its really database driven) or Jango but in Java.
    I found several and compared them:
    http://www.javaneverdie.com/java-frameworks/java-domain-driven-frameworks-review/
    IMO OpenXava the best (at least for my needs) . It uses annotations for persistence. And Naked Objects (no annotations) the most simple to start and rapid.
    I don’t included Spring Roo in my research, simply because did not find it that time.

  62. John Adams November 12, 2009 at 3:38 pm #

    Riyad,

    I am a Java developer and am looking for the best way to handle the UI for web and/or thick-client development. I have used Swing (long ago) and SWT (more recently). I am looking hard at either GWT or Flex. Using technology originally from Adobe makes me nervous as in the past I have not been satisfied with their level of support and/or documentation.

    In any case, have you seen the Flex widget samples?

    http://www.adobe.com/devnet/flex/tourdeflex/web/#

  63. Darren November 12, 2009 at 4:05 pm #

    @John, I’ve found the Flex documentation to be very good:

    http://www.adobe.com/support/documentation/en/flex/

    Especially the language reference:

    http://livedocs.adobe.com/flex/3/langref/index.html

    The Flexcoders list is also a good resource (and very high traffic):

    http://tech.groups.yahoo.com/group/flexcoders/

    Finally, the Flex SDK is open source so if you don’t like the way a component is coded, you can either monkey patch, cut and paste to make a new component, or, most commonly, extend the original component and override one or more of the main functions (ie. createChildren, measure, updateDisplayList, etc.). You’ll also find that Adobe is much more open then it used to be. As an example, Adobe wanted to change the prefix on the new Flex 4 components by adding an Fx To the start of every component name but the Flex community loudly objected so Adobe took the criticisms onboard and changed their mind. If you use Spring, look into the Spring BlazeDS Integration project. Also, there’s lots of good Flex frameworks available such as Mate, Swiz, PureMVC and Parsley.

  64. Nelson Christos November 13, 2009 at 8:30 am #

    Riyad,
    Is it fair to compare asp.net with java frameworks. When you think about it one is proprietary and the other is open source. I have worked with IBM portlets and other open source techs, and all said fairly open source is on top of my list. The speed at which the bugs get fixed in nightly builds is praiseworthy.
    If i had to go for comparison i would go for j2ee vs asp.net
    http://www.google.com/trends?q=j2ee%2C+asp.net&ctab=0&geo=all&date=all&sort=0
    Amazing .net is far ahead.

    • Riyad Kalla November 19, 2009 at 5:54 pm #

      Nelson, unfortunately that trend is too general — after all, what would you consider “J2EE”? Does JSP+JSTL count? What about EJB3? If so, then what about JPA? Does Struts count? How about Spring MVC and some JSF?

      It’s *really* hard to get good trend data out of Google trends because you have to consider every term and how to group them into some value on the chart.

  65. gangaraju December 28, 2009 at 5:51 pm #

    web framework is lengthy,,
    it is well,,if it simply and normal
    and easy to understand

  66. gangaraju December 28, 2009 at 6:02 pm #

    Spring is most suitated framework for Buissness logic layer and widely used with Integration with another frameworks like Struts,Wicket,JSF and.,,lab..la. So Spring is Common part with when we design most of the applications. So obiviously I feel its widely used. Also recently Spring Framework 3.0 is released with further features. go for more detail for my blog for this or spring official site.

    Here now question remains which one from Struts, Wicket and JSF.

    Struts:- People are posting about it from 95. so google have lot of stock! we know struts is no more. So less chances of use in new application devolpment.

    According to studies, when consumers were presenThe tools that we are using are Eclipse, Cypal plugin, SmartGWT and GWT for the Host mode tool. The GWT Host mode tool allows us to view and debug the GUI pages easily and resolve issues quickly by debugging the Java code. The GWT Host mode can show and refresh the code during runtime without requiring a Tomcat restart. Once we have the Java version of the screen operational then the GWT Compiler can compile it into a Javascript format that can be used by 4 browsers. I personally think that these tools are sufficient at getting our job done easily. Now 99% of the time the JavaScript generated code is fine but there can be bugs in the Javascript compilation. When this issue occurs it is usually because of a null pointer issue because I did not test all circumstances in my codeted with 24 choices among varieties of a product, they much more often did not buy ANY of the products, than if they were presented with only 6 alternatives.

  67. Prince of Denmark January 6, 2010 at 9:02 am #

    What about Hamlets?

    http://hamlets.sourceforge.net/

    Hamlets (previously known as IBM Servlet-based Content Creation Framework) is an open source system for generating dynamic web-pages developed by René Pawlitzek at IBM. A Hamlet is a servlet extension that reads XHTML template files containing presentation using SAX (the Simple API for XML) and dynamically adds content on the fly to those places in the template which are marked with special tags and IDs using a small set of callback functions. A template compiler can be used to accelerate Hamlets.

    Hamlets provide an easy-to-use, easy-to-understand, lightweight, small-footprint, servlet-based content creation framework that facilitates the development of Web-based applications. The Hamlets framework not only supports but also enforces the complete separation of content and presentation. It is the result of a radical software simplification effort.

  68. JetAbe March 2, 2010 at 10:18 pm #

    With the ruby on rails trends let me be specific.
    Its not ruby on rails you will search ever being a developer i know what i search is Rails and ruby seperately.

    I hope you can take that into account while figuring out the popularity.

  69. Johannes Geppert March 20, 2010 at 12:29 am #

    great to see that struts2 is growing and growing. but it is amazing that jsf is loosing his prominence.

  70. Anonymous April 4, 2010 at 12:57 pm #

    It was not around in 2008. Maybe now it makes sense to consider HybridJava by the Power/Complexity criteria.

  71. ammar July 5, 2010 at 3:36 am #

    don’t miss Shine Enterprise Java pattern
    http://sourceforge.net/projects/shine-enterpris/files/

  72. Ken Royall August 19, 2010 at 8:02 pm #

    I have used Struts, JSF, Servlets, JSP, PHP, ASP Classic and ASP .Net. I didn’t like the first version of ASP .Net much, but as usual Microsoft plods along and by the 2nd or 3rd iteration they get it nearly right. As far as ease of use and getting a scalable application up and running quickly, I find ASP .Net to be the most straightforward.

    Visual Studio is also by far the best development environment, although Eclipse (w/ MyEclipse) is very nice too. PHP is cool because it is free and as it is a scripted language deployment is quick and easy.

    I found Struts to be quite non-intuitive and convoluted, although I got used to it eventually. Plain JSP is pretty limited, compared to PHP or even ASP classic.

  73. Sandeep Mandori October 5, 2010 at 11:35 pm #

    Have you seen Vaadin? It is also an exiting framework with no html, xml, and java script.

    It works more like java Swing when comes to program UI interface from it.
    Go and try it once you will really found it cool…………..

    http://www.vaadin.com

  74. Murat Ozkan November 28, 2010 at 5:05 am #

    Thanks for the great article :)

    I think it would be better to include “asp net mvc” instead of “asp net”.

    Also it would be a great thing to compare the results of 2008 and 2011.

  75. Ben Galbraith December 1, 2010 at 9:40 pm #

    Just wanted to add my voice to the stupified chorus that you used “wicket” in your search. Dude. You should revise this post or just pull it entirely; it’s completely bogus.

    • Riyad Kalla December 1, 2010 at 10:22 pm #

      I think we should go one bigger and pull the whole site down.

  76. MigueL January 31, 2011 at 6:59 am #

    Including asp.net in the trends graphs shows in my opinion that developers are gravitating more towards the microsoft technologies simply because it is just one technology that you have to deal with instead of having tons and tons of different frameworks out there, which honestly to me gives me a huge headache over which one to use over the other. Plus you can build web and desktop apps rather easily and very fast which is always very good to the companies.

    • Siavash February 28, 2011 at 4:30 am #

      Well it would have been better to search for “.Net MVC” which is a web framework and comparable to the other frameworks stated here.

  77. Alvin September 22, 2011 at 7:06 pm #

    OK, maybe this is a dumb question, but I see a lot of jobs out there for LAMP and PHP.

    Any way to make these kinds of comparisons between that and JSP and ASP?

  78. Dhiraj January 6, 2012 at 11:03 pm #

    i am surprised django isn’t included.!!

  79. Javier Paniza April 26, 2012 at 12:37 pm #

    The problem with the frameworks of the article is that all them are the same thing, that is MVC frameworks with little focus in productivity. So, what’s matter if you choose one or another?
    MVC is not the only way to structure an application and many times is not the more optimal. And the goal of the framework is not only to distribute your code in a pretty way, but to allow you to develop great application with little effort.
    There are other type of frameworks, like OpenXava, an Java Web Framework that allows you to develop application writing just domain classes (really JPA entities) and based in the concept of business component instead of the classic MVC:
    http://www.openxava.org/

    • Ken Royall April 26, 2012 at 3:15 pm #

      Doing MVC in Java/Struts is different than doing it with ASP .Net. The design pattern is the same but the implementations are different as are the tool sets. When I was doing MVC with Java, I had 3-4 third party sets of libraries (Struts, Spring, Hibernate, etc.) and it was up to me to wire them all up and get it working. Documentation and support was scarce. With MS, all you need is Visual Studio and there are lots of resources for getting up and running very quickly. I do agree MVC is not always the way to go, it is overkill for most smaller web apps.

      • Javier Paniza April 27, 2012 at 6:24 am #

        Hi Ken,

        @ken: “it was up to me to wire them all up and get it working” You’re right this is a problem of Java frameworks, maybe we need to learn from Microsoft about easy of use.
        @ken: “it is overkill for most smaller web apps” And also the big ones, because many times you do many changes in the data structure that spread across every layer, so you have the same data scattered in your application. One way to avoid it is organized the source code and other resource around business component, that is, all about the Invoice (or Customer, or Order) concept in the same place, including database, user interface, business logic, data structure, etc. It works very fine when you create business application where you change the data and logic very often.

  80. Jim June 15, 2012 at 7:46 pm #

    Although it could do with some more features and improvements, I like the idea behind http://www.skweb.com

  81. Jim June 15, 2012 at 7:47 pm #

    Sorry, wrong link.

    Although it could do with some more features and improvements, I like the idea behind http://skingston.com/skweb

    • Gabriele September 13, 2012 at 5:25 am #

      Hi Mark, I’m agree with you.
      It is not very popular, but I think it is the most innovative and the best.

  82. Gabriele September 13, 2012 at 5:25 am #

    +1 for Portofino 4

Trackbacks/Pingbacks

  1. Lally Singh - July 11, 2008

    Comparison of web framework popularity: http://tinyurl.com/5fezxx

  2. Angsuman Chakraborty - October 8, 2009

    Time for Java frameworks to reunite http://is.gd/45bxj

Leave a Reply


eight × = 40