Web Framework Du Jour
Dan asks, What is the web framework du jour for Java these days? -- it is a good question considering in recent years there has generally been a couple hot tickets. For the most part I agree with his quick comments, but will add a few:
- Actually quite impressive in its simplicity last I looked at it. I have never used it in production, but a former coworker who I respect a great deal was quite enamored. I would consider it for a new project, personally. Model2, which is well understood if annoying.
- Struts 2
- For all practical purposes undocumented though. At least I had a hella rough time trying to use it, gave up and used something else (servlets). Model2, which is well understood if flawed.
- Always impressive, and the next version is always more impressive yet. No upgrade path, and Howard is smarter than me so I have troubel figuring out how things are supposed to work. I have had success with Tapestry 4, but wouldn't use it now as Tap 5 is not cmopatible and is due "any day now" Tap 6 will be the same story again. Component based, which is a good thing
- JSF makes me want to vomit. Maybe Seam makes it not suck as bad. I read the early Seam examples and wandered away shaking my head. I know people who love it, though, so would probably eval it for a new project.
- I like Ruby a lot, it has replaced Perl for me, but for any practical Java project I am doing would kinda like to work in Java. If I want to work in Ruby would still verymuch consider JRuby and jRoR, but the specification was Java project and RoR doesn't buy you enough to throw it in for just the front end in most cases. Yet another Model2, but with integration between layers which gets rid of most of the annoyances.
- Guillaume is going to flame me for this, but I don't like Grails. Sorry. Admittedly I haven't looked at it in a couple years now, so it may have changed, but when I last did it was... the worst parts of RoR (scaffolding) with even less flexibility :-(
- Spring MVC/Spring Web Flow
- I love Spring-as-Library but describing web flows in hand-edited XML was a bad idea in 2000, that hasn't changed.
- Have played with Wicket and was very impressed, but ran into some really unpredictable behavior with the back button and when it decided it needed a session vs not. I would definitely eval it more fully for consideration in a new project. Components rock.
As I commented in Dan's blog, I think we are in a (Java) web framework nuclear winter.