Neal Ford, frequent speaker at the No Fluff, Just Stuff conferences, recently wrote about The Craptaculous Web Framework, sharing the findings of Jay's polls taken at these conferences related to which web frameworks people are using:
Generally, Struts still rules the numbers (although, recently, he's been asking how many people would use Struts on a new project and the numbers plummet). He rattles off the litany of web frameworks (there are dozens in the Java world, after all). And, on the panels I'm on, I pipe in by asking people how many are using their own, home grown "Craptaculous" framework. Interestingly enough, there are always hands. And the home grown Craptaculous framework generally beats out some well known rivals, like JSF (thank heavens) and Tapestry (what a shame).
In Neal's opinion this demonstrates the confusion in the Java world about web frameworks. He argues that if people only had 3 choices, they could go and compare them while, when presented with 10 or 20 alternatives, paralysis sets in and they end up using Struts or creating another version of their home-grown framework. He views this situation analogous to the classic example of the store selling jam presented in the book "Paradox of Choice: Why More Is Less":
A little boutique store started presenting jam samples to entice customers. When they put out 3 different flavors, customers sampled them and the sales of jam soared. More must be better, right? So they put out 10 difference flavors...and the sales plummeted. When presented with too many choices, people's decision making ability shuts down.
Neal adds that in the case of Groovy, Grails as the main web framework choice will help drive the adoption of the language. As it runs on the JVM, he even believes that Grails "may be salvation from the home-grown Craptaculous framework that Java developers are still using". Other commenters on the blog were of opinion that more fragmentation exists even in some of these markets. In the Python world, the number of frameworks decreased from 20 to 4 and none of them stands out while in .NET other choices are Monorail and the anticipated ASP.NET MVC, recently covered by Jonathan Allen on InfoQ.com.
Even when choices are overwhelming and people prefer, at times, to build their own solutions, the proliferation of web frameworks in other languages proves that maybe choice is good, as Charlie Collins argued:
When buying jam, yes, I want to make a 5 second decision and not have "too many choices." When choosing a spouse, buying a house, or making any kind of long term or expensive commitment like selecting a framework I will be using for the next few years, I don't want less choice, I WANT MORE.
Charlie explains why he believes there are multiple Java web frameworks:
What is your opinion? Is the larger amount of Java web frameworks choices helpful or not?The quintessential argument with Java is the plethora of web frameworks. But, and here's the rub, that's a complicated space with a lot of people working to solve the complicated problem in different ways (and much of the problem not being their fault, but rather the way HTTP works). If you are going to select a framework to help there, do yourself a favor and spend 30 minutes, not 5 seconds, or better yet a week, deciding what your requirements are and ACTUALLY LOOKING INTO THE DETAILS OF THE FRAMEWORKS TO MAKE AN INFORMED DECISION ABOUT WHAT BEST MEETS YOUR NEEDS.
Talented people looking at things in new ways, and solving problems differently, reflects on how open and healthy the Java space is in my mind, rather than the opposite.