João has posted 2 posts at DZone. View Full User Profile

The Problem with Java Web Development Frameworks is…

  • submit to reddit

Well, from my point of view, the problem with Java Web development frameworks is that there are too many. Each one has its strengths and weaknesses, like anything else. I'm excluding those that are proprietary and you have to pay to use them. Really, why would people pay for such kind of thing?

Focusing on what is open source, you just need to see those supported by Apache:

Then you can see a list of Java web development frameworks (result of a Google search):

There's are so many and the community does not focus on building a complete Java Web Development Framework. The one I like more is Play! Framework because it's a complete stack of java technologies that really help the development of web apps and it borrows many concepts from Ruby on Rails, which it's my favorite.

I don't know every Java web development framework, of course, and each must have their strengths and serve different purposes, but my feeling is that if there were only a few, then the community will focuses on improving those and we'll end with a truly good framework.

Original from
Published at DZone with permission of its author, João Pereira.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Jose Maria Arranz replied on Wed, 2011/02/16 - 2:38am

Really, why would people pay for such kind of thing?

Maybe because it fits your requirements, make easy to get your job done with no hassle, ensuring future to the tool and better satisfy to your CUSTOMERS?


Andrew Spencer replied on Wed, 2011/02/16 - 3:06am

Here's an interesting question ( least, I think so): why are there so many Java web frameworks?

Is it because it's too easy to write a web framework? Because it's too hard (to get everything right)? Because there are too many different ways to go about it? Is it just a historical accident?

(I suspect it's all of those things, which doesn't give me much optimism for an improvement in the situation.)

Here's another question. Suppose that you persuaded all web framework projects to work together on creating just one or two merged projects combining the best features of all current projects - like how UML was created as a collaboration between previously-competing notation systems. Which features of which frameworks would end up in the final product(s)?

Ronald Miura replied on Wed, 2011/02/16 - 6:21am

If there were just a few, there would be no community. Not the vibrant community we have today, at least. We would be just like .Net developers, passively getting excited with new things coming from a single vendor, instead of creating new things.

Not long ago (2009!) they got all excited about the brand new Mircrosoft's MVC framework! Before that, they were stuck with WebForms or raw ASP.Net, AND THEY WERE UNABLE TO INVENT THEIR OWN STRUTS???

No, I don't want a 'community' like that...

And the problem with 'full-stack' frameworks/bundles is that they usually are optimized to the 'hello-world-generated-CRUD-with-very-simplistic-authorization' case, and you always end up having to work (hack your way) around their limitations, causing more work and requiring more knowledge than if you had just put some libraries together.

Mark Unknown replied on Wed, 2011/02/16 - 9:27am

I would rather be able to put round pegs into round holes (Java ) instead of pounding [large] square pegs into [small] round holes (.NET).

Michael Urban replied on Wed, 2011/02/16 - 10:18am in response to: Jose Maria Arranz

Maybe because it fits your requirements, make easy to get your job done with no hassle, ensuring future to the tool and better satisfy to your CUSTOMERS?

Except there are so many high quality free and open source frameworks out there, that I think any closed source framework you have to pay for is doomed to fail because of lack of customers. That's not exactly what I would call ensuring the future of the tool.  The popular open source frameworks are really the only ones that have a sure future. Because even if developers leave the project, others will step in to fill the role.

Christopher All... replied on Wed, 2011/02/16 - 11:18am

I'm really sad to say this, but the answer to, "Why are there so many Java Frameworks" is the same answer to, "Why is the Lisp community so fragmented?" History combined with people's desires for perfection and a "do-it-yourself" attitude, all of which are boons to the programming community, combine to create some major fragmentation.

On the other hand, as I said, these forces are also boons. jQuery was originally one man who was dissatisfied with what was available. Now it is the most popular framework on the web.

The paper, "The Evolution of Lisp," by Steele and Gabriel actually gives a brief explanation of how these trends work. (I also recently pointed this out here)

Sivaprasadreddy... replied on Wed, 2011/02/16 - 9:55pm


Yes, there are too many java web frameworks which sometimes gives flexibility in choosing the right framework that best suites for our application needs and sometimes become a big headache in evaluating, getting familiar with new frameworks.

But IMHO having this kind of flexibility gives the following benifits:

1. If we are developing a simple application with fewer DB interactions we can go with JDBC or IBATIS, we need not go for Hibernate and carry additional baggage.

2. If we are developing a web application which has lot of form interactions we can choose Struts, Spring MVC etc. But if the web application is more of even-driven style, we can choose GWT, JSF etc.

3. If the application is a distributed application we can use EJB3 or if it is not a distributed application we can go with Spring framework.

etc etc...

This is the freedom which Java has and .NET doesn't(won't) have :-)

David Lee replied on Thu, 2011/02/17 - 12:33pm in response to: Christopher Allen-poole

 @Christopher....Well said.

Nikolay Skachkov replied on Sat, 2011/02/19 - 1:59am

Here is the truth. The only reason why there are so many java web frameworks and each years we get several new is in the sad fact that none of those has solved the problem. And they indeed try to solve one and the same problem. The most important missing link is componentization == reusability. Only HybridJava has solved this puzzle with its MVC component model where the web application may be build from components each of which is MVC.


Drew Repasky replied on Thu, 2011/02/24 - 7:43pm

The conclusion is: we would have a better Java web framework if we had fewer of them.

More choices is obviously not a bad thing.  Nobody ever wished there were fewer types of cars when you go to buy a new one.  And you may recall Microsoft getting hit with anti-trust charges about 10 years ago over the Windows monopoly.  Options can translate to getting exactly what you want as the consumer/user at a cheaper price.

Now, with having one popular framework for a language, you may have your open source developers all combining their effort towards one tool.  So, let's just assume that if Struts doesn't exist, then that developer would simply jump over to SpringMVC.

On bugfixes this can be a win, but sheer number of developers doesn't always translate to "better."  I may have one Java class to finish, and 3 more aren't going to get it shipped any faster.  Or maybe I'm an incompetent developer that should be spending my time ruining the Struts framework.  It's a fallacy that all developers are good.

Certainly, less frameworks would make it easier to determine the pros and cons of choosing one of them.  But being overwhelmed by choice is a good thing.  Web development has an enormous problem set and an everything-and-the-kitchen-sink framework will have problems too.  If you take a look at Rails/Grails/Django, you will find something you don't like that could be improved.

Nikolay Skachkov replied on Thu, 2011/03/03 - 10:06pm

Statement: The only reason why there are so many java web frameworks and each year we get several new is in the sad fact that none of those has solved the problem.

The conclusion is: we would have a better Java web framework if we had fewer of them.



Dick De Jong replied on Fri, 2011/12/02 - 10:06am

@Alex, fully agree. If it was simple enough, there would be no reason to search so much for a framework, but there is no framework that does software development for end-users / key-users ... i simply want to have strong support from framework to guide me in developing applications. Now it ist mostly trial and error or invest a lot of time to understand the full framework ... It should be as simple as writing a document in MS word .. or making a schema in Visio ... which is not the case ... Would be very interesting to move really away from the deep coding. E.g. who, as an application / solution builder, wants to understand annotations, etc ... All these frameworks require to much technical knowledge ... In fact it is a shame for IT industry that software development is still so complex ...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.