And the best MVC framework is….

Norm Deane is going to be pulling a Matt Raible by reimplementing the same software with all of the major MVC frameworks (Struts, Spring MVC, Webwork, Tapestry, and JSF). I'm excited to see his progress as he writes about it, it's a lofty goal but a worthy one IMHO!

I've been going through the same process in trying to evaluate the best web framework for our company going forward. It's a tough decision because there are more factors at play than simply good technology. I don't want to select the beta max of MVC frameworks.

So far I've written sample apps in Struts, Spring MVC, and Tapestry. Next I'll be embarking down the JSF road. The sample app only gives you a taste which is why I like the fact that Norm is redoing a real app. For example I found the learning curve steepest with Tapestry relative to Struts and Spring MVC but the more I used it the more I liked it.

There's a lot to be said for working with something until you know enough about it to honestly critique it. I'm not convinced that my sample app approach is sufficient for me to say which framework I really prefer since I still feel like a novice in most of them. It's unlikely I'll ever have the luxury of time to really become proficient enough in even 3 major MVC frameworks to make a well informed assessment. My decision will be made based on a combination of my own experience writing these sample apps, opinions of colleagues/fellow bloggers I respect, perceived longevity/eventual popularity of the framework, and ability to hire people that know the framework.

As a business decision I feel like on the hiring front Struts is the safest bet at the moment, I get more Struts resumes than I can count when I'm hiring java web developers. On the longevity and developing for the future front my money is on JSF because there are big companies behind it as well as open source advocates that like it. On the cool technology front I think the award should go to Tapestry, not only does it seem to me (a novice) to be a cool component/event driven MVC framework, it has a non-invasive templating language (reminiscent of Enydra's XMLC) that I long for every time I work in JSP.

So which MVC framework will we be choosing at my company? I don't know but I've only got another 3 weeks or so to decide and will let you know what we end up with.

This entry was posted in Java. Bookmark the permalink.