Comparing Java Web Frameworks: Proposed Outline

I'm just now starting to create my Comparing Java Web Frameworks presentation for ApacheCon Europe. According to Dave, I'm way late on submitting my presentation. However, I haven't received any late notifications from ApacheCon's organizing committee, so I don't feel too bad.

I think it's interesting how most conferences don't spend much time organizing from a speaker's perspective. The Colorado Software Summit and NFJS are two exceptions. As a speaker, you always know exactly what's going on, what the deadlines are and where you're supposed to be when. With ApacheCon, I feel like I'm in the dark on almost everything - including if I have a hotel room or not. I guess that's the difference between a volunteer organization and conferences where the organizers make money.

Luckily, I've done this presentation quite a few times in the past, so it's mostly an update rather than a rewrite. The biggest changes: dropping Struts 1 and adding Stripes and Wicket. Of course, I could keep Struts 1 since it's not much additional work, but since I only have 50 minutes for the talk (10 minutes for QA), it makes sense to drop it. And yes, I know many of you'd like to see Grails, Seam, GWT, RIFE and Click added to this presentation - but no one wants to sit through a presentation on 11 web frameworks in 45 minutes.

Here's the abstract for the session:

One of the most difficult things to do (in Java web development) today is pick which web framework to use when development an application. The Apache Software foundation hosts most of the popular Java web frameworks: Struts, MyFaces, Tapestry and Wicket. This session will compare these different web frameworks, as well as Spring MVC and Stripes. It will briefly explain how each works and the strengths and weaknesses of each. Tips, tricks and gotcha's will be plentiful. Lastly, it will provide attendees with a sample application that utilizes all 6 frameworks, so they can compare line-by-line how the frameworks are different. This sample application will include the following features: sortable/pageable list, client and server-side validation, success and error messages as well as some Ajax functionality. The frameworks will be rated on how easy they make it to implement these features.

Without further ado, here's my proposed outline:

  • Introductions (5 minutes)
  • Pros and Cons (15 minutes, ~2 minutes for each)
  • Sweetspots (10 minutes)
  • Smackdown - evaluation criteria includes (15 minutes)
    • Ajax support
    • Bookmark-ability
    • Validation (including client-side)
    • Testability (esp. out-of-container)
    • Post and redirect
    • Internationalization
    • Page decoration
    • Community and Support
    • Tools
    • Marketability of skills (can it help you get a job)
    • Job count (is there a demand for skills on Dice)
  • Conclusion (5 minutes)
  • Q and A (10 minutes)

During the Pros and Cons, I won't be showing any code like I usually do - there's just not enough time. I'm also adding in a discussion on these frameworks' sweetspots. The Pros and Cons section is largely my opinion, and I think it's important to hear the framework authors' opinions as well.

In evaluation criteria, I'm dropping List screens and Spring Integration. All these frameworks have good Spring support and most support some sort of page-able/sortable list. I can add either of those back in based on your suggestions.

Any feedback is greatly appreciated.

Posted in Java at Apr 17 2007, 09:13:22 AM MDT 8 Comments
Comments:

Other than the following error it looks great to me ;) <quote> ...which web framework to use when develop<strong>ment</strong> an application. </quote> I like the idea of the "sweetspots" but when I was reading the replies a lot of times it felt like the authors were saying "why would you want to use anything else", perhaps subconsciously, or perhaps I read into it more than they intended...

Posted by Nathan Anderson on April 17, 2007 at 11:33 AM MDT #

So much for "HTML Syntax: Allowed" ;)

Posted by Nathan Anderson on April 17, 2007 at 11:34 AM MDT #

I would consider using indeed.com instead of dice for checking job availability.

Amit

PS: And please do not make us think or do maths for preview and then again for posting.

Posted by Amit C on April 17, 2007 at 11:09 PM MDT #

Bookmark-ability, does that include pretty URL:s? Mats

Posted by Mats Henricson on April 18, 2007 at 02:34 AM MDT #

Is there going to be a video torrent of the talk for those of us who won't be there?

Posted by jh on April 18, 2007 at 08:22 AM MDT #

Amit - I've noticed the math problem myself. IMO, it's a bug in Roller.

Mats - yes, it includes URLs and the the ability to create REST-style URLs. It also includes CMA-friendliness for security purposes.

jh - I'm not sure. This is a question for the ApacheCon folks. I doubt it since they've never done anything like this in the past. I do plan on doing this same talk in a keynote at The JA-SIG Summer Conference and OSCON. Maybe I should submit it to a couple more conferences? I was thinking of doing JavaZone and Colorado Software Summit.

Posted by Matt Raible on April 18, 2007 at 08:49 AM MDT #

MyFaces is a framework? I consider it a JSF implementation... What about Seam? In my mind, it is one of the strongest frameworks out there. And then the talk of the town would be interesting to include: GWT...

Posted by 64.171.68.130 on April 19, 2007 at 10:02 AM MDT #

I agree that MyFaces is a JSF implementation. It's used in this talk because its 1.1 implementation was much better than the JSF RI. Unfortunately, I haven't had a chance to upgrade any of my apps to use JSF 1.2 (with the RI is the only open source implementation of) - so I won't be talking about 1.2 that much. I do agree that Seam and GWT would be good ones to add to the mix. However, unless I've implemented an application using them, there's no reason for me to discuss them. There's only so many hours in a day. ;-)

Posted by Matt Raible on April 19, 2007 at 10:06 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed