This past week Matt Raible gave a presentation (PDF 1, 2) at ApacheCon comparing Java Web Frameworks. This is a follow up to a presentation he gave a few years ago. The list of Java Web Frameworks covered in the 2 PDFs:
The new talk targets a slightly different list of technologies as a result of the changing development landscape:The presentation itself consists of a smackdown between a short list of web frameworks using criteria such as:
-
Ajax Support: Is it built-in and easy to use?
-
Bookmark-ability: Can users bookmark pages and return to them easily?
-
Validation: How easy is it to use and does it support client-side (JavaScript) validation?
-
Testability: How easy is it to test Controllers out of container?
-
Community and Support: Can you get questions answered quickly (and respectfully)?
Raible finds stong points as well as weak points in all of the web frameworks. Some statistic are shown pointing to Struts and JSF leading the Job trends, but Raible shows that there are a number of web frameworks making their mark in the job market.
Noting that it is the developers responsibility to choose the right web framework for the project Raible give important factors to take into consideration when choosing a web framework:
-
What type of Application are you building?
-
Ease of Development / Is full-stack an option?
-
Technical Features
As expected Raible's review of web frameworks generated a lively debate. Seam creator Gavin King commented:
What I think is most interesting about this list is simply how different each of these frameworks is from each other. A couple of years ago, any list of the top web frameworks would have featured a bunch of metoo-ish action-style-MVC frameworks, with maybe one or two component-style-MVC frameworks thrown in.
Adobe's James Ward disagreed with Raible's initial assessment of Flex and countered:
Now we could debate these pros and cons all day. But really it depends on what you are building. What I find most interesting is how these frameworks relate to building Rich Internet Applications. That helps narrow it down a bit since very content-centric applications differ greatly from RIAs. But what is a RIA? I’ve taken a stab at defining RIA.
Based on those characteristics I can tell you more definitively how Flex compares as an RIA framework.
Raible states that the futre is bright because of all of the competition there is in the area of web frameworks. Considering half the web frameworks found in this presentation were not even around when he did in original presentation he is correct.