This question always comes up - and the general answer is - none of these frameworks are necessarily "better". You can make webapps with all of them, and there's not really anything you can accomplish with one that you can't accomplish with another (this isn't saying that there aren't things that certain frameworks do better - it's just that there's not one that does *everything* better.). If you need to quickly create an app for work the best choice is usually go with whatever framework most of the developers are familiar with - you'll use more time learning an unfamiliar framework than you'll gain by trying to learn a "better" framework as you go along. However, if you're just looking to learn a new framework, just choose one - preferably one that uses a different paradigm than a current web framework you know - it'll help you learn new concepts and what times you may want to use the new framework rather than your current one.
One other thing - some of these frameworks do more than just webapps - Spring is an IOC container for all kinds of apps - Spring MVC is the web layer; and Seam is a data binding framework that uses JSF for the web layer.
Write once, run anywhere, because there's nowhere to hide! - /. A.C.
Nathan Pruett wrote:This question always comes up - and the general answer is - none of these frameworks are necessarily "better".
I beg to differ. I suggest to try several frameworks, some frameworks are developed because the creators think that the existing ones are not good enough or have some problem. That applies to software development frameworks in general not just web MVC frameworks.
For me, some popular framework is really bad in design in some aspect, but I don't want to mention here, because I don't think it would make any benefits to anyone (especially to me).
My suggestion is when select framework we should read from more than one website (should also read competitor's website), take a look at architecture and design, and try to use/customize/extend.
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional