Hi,

I am developing a relatively simple web app.

I have coded in Struts…and along the way, there were many similar web frameworks poped out in the industry, namely Spring MVC, WebWork, Tapestry and JSF.

I have noticed that new web frameworks pop out so very often in the Java web app scene – something like 1 in every 6 months or so ? I can’t help but feel that the frameworks are not “stable” enough to stay reasonably long in the industry. When a new framework is created, the author will often say something along these lines : “xxx was created out of my frustration with yyy”.

We all know there is a learning curve for each framework. And to be able to use a particular framework effectively, one really needs to understand not only the mechanics of how it works but also the reasoning/architecture behind its design. This takes time. We often hear that Struts have a steep learning curve.

This fast changing and volatile framework scene made me think twice and think hard about learning and programming in a new framework.

Question :
Are ALL of the commonly used web frameworks base on JSP/Servlet technology?

If the answer to the question above is true, it means the common denominator is the JSP/Servlet technology. And the one that has not changed much (relatively) in the volatile framework scene is again, JSP/Servlet technology.

If this is the case, I think it is best for those building relatively simple webapp to just code against the JSP/Servlet API/specification instead of using any of the frameworks. The knowledge and experience gained coding against JSP/Servlet is much more valuable in a sense that it is useful much longer…and they will be able to pick up and appreciate new frameworks much better, if they choose to do so later.

We know Java/JSP/Servlet is well accepted in the mega mission critical web app applications used by banks, airlines and governments. But sadly, it is not as successful as PHP when comes to simpler web apps for the smaller industries. My guess is because Java is “plagued” with the “framework obsessed” problem while PHP just keep itself simple and don’t give its developers “framework headaches”. (I am a Java programmer all along and not really a PHP fan.)

What do you think ?