I am familiar with most of the popular web app frameworks; Struts, JSF, WebWork, SpringMVC, Wicket, Tapestry, etc. And the more they evolve the more convoluted and complicated they seem to get.
I thought frameworks were supposed to make development easier. But once you get passed the login page and your app grows in complexity, I find frameworks just get in the way. Too many times I've ran into issues with a framework and thought to myself "man, I could have this solved in 5 minutes with a Servlet and a JSP" but most (not all) these frameworks make it nearly impossible to step outside their undlerying system.
I find myself all to often hitting the web to try and find solutions to my problems. And it's not a matter of "oh, I just didn't know how to do that". They are common issues that many people are having and solutions provided are work-arounds or framework extensions or hacks. And then I look at Servlets and JSP's like a person dreaming about his dog that died years ago, longing to play together once again.
I know there are still people out there doing Servlets/JSP. I know there are some really light tiny frameworks out there and I know that I could probably make one of my own if I just needed a front controller and a few minor features. But you get a job and they use a framework or two and if you ask why they use said framework the usual response is "because all our projects use that framework".
I can't imagine that a developer coming into a completed project for some routine maintenance is going to be able to look at a Struts or JSF based application versus a pure Servlet/JSP based application and expect to understand the logic and workflow any better. Granted, assuming the app were well written. I know bad developers can make anything look like a big pile of cow dung.
Anywa, enough rant for one day. I hope I don't get too flamed too badly for this post. I just needed to vent.
Originally posted by Henry Lowell: I am familiar with most of the popular web app frameworks; Struts, JSF, WebWork, SpringMVC, Wicket, Tapestry, etc. And the more they evolve the more convoluted and complicated they seem to get.
Don't worry about getting flamed, I've got a bucket of water ready behind the bar
What you said is true with most any kind of software, moreso for software that is used by many people for various applications as these frameworks are. To some extent, frameworks become victims of their own success. It's the natural process of evolution whereby extensions/adaptations are continuously added as people find new ways of using the framework.
I can't imagine being more productive using plain old Servlets/JSP over Struts or Spring in anything but the most trivial projects. I do prefer frameworks that allow me to pick only the features I want use and not force me into doing it "their way" all the time.
I've had the same frustration as you describe, but now I use Stripes. The guy who created it, created it because web application development in Java was just too much work and every other existing framework required gobs of configuration. This is not the case with Stripes, have a look at the Quick Start Guide