InfoQ

News

In a World of Web Framework Choices, Some Developers Still Build Their Own

Posted by Alexander Olaru on Jan 21, 2008 04:35 PM

Community
Java
Topics
Web Frameworks
Tags
ASP.NET ,
Grails ,
Struts ,
No Fluff Just Stuff Symposiums

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:

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.

What is your opinion? Is the larger amount of Java web frameworks choices helpful or not?
There's a ton, but... by Francois Ward Posted Jan 22, 2008 8:16 AM
Welcome to America! by Sergio Oliveira Posted Jan 22, 2008 8:19 AM
Re: Welcome to America! by Eelco Hillenius Posted Jan 22, 2008 9:02 PM
More choice is great for informed customers. by Eelco Hillenius Posted Jan 22, 2008 9:37 PM
Re: More choice is great for informed customers. by Ivan Lazarte Posted Jan 23, 2008 8:30 AM
Re: More choice is great for informed customers. by Casper Bang Posted Jan 23, 2008 9:04 AM
Re: More choice is great for informed customers. by Sergio Oliveira Posted Jan 23, 2008 11:34 AM
  1. Back to top

    There's a ton, but...

    Jan 22, 2008 8:16 AM by Francois Ward

    There's a ton of web frameworks in Java, but only a few stand out. If you're making your own project alone, you can just use whatever you wish, but if you're doing an enterprise solution or working in a team, especially one where there will be a cycling of ressources/developers, you only want to use something standard, mainstream, well known, etc. Reason behing, even if you can save an extra 3-5% of time by using what you think is a better framework, it just takes 1 dev going on vacation or quitting to make you lose days or even months on training a new ressource. And even once trained, they'll never be better than what they have 7 years experience with. In the end, you'll lose out. So stick to the mainstream, unless you have carefully evaluated the consequences of not doing so.

  2. Back to top

    Welcome to America!

    Jan 22, 2008 8:19 AM by Sergio Oliveira

    I love America (US), because America is a free place where people can do whatever they feel like doing as long as they don't hurt other people's freedom. This is as important to me as the air I breath. So if I want to create a web server in Java or a email client, or a todo list application, I WILL. And nothing or nobody will be able to stop me. The god news is: I will not put a gun in your head to use it or like it. You are also free to ignore it or to take a look and not like it. Also feel free to throw your comments, to say it sucks. I recommend a little read about Darwin and the Natural Selection theory. I also suggest checking out Cuba as a place to live for people that don't like competition or diversity. By the way, I am very happy I did not listen to people when I created the Mentawai Web Framework 3 years ago. Today many people and companies around the world use and like it. Feel free to check our online book: http://book.mentaframework.org/, our cookbook: http://recipes.mentaframework.org and our website: http://www.mentaframework.org/ And keep in mind that if you don't like it, you can just ignore it. There is not need to feel bad or say sorry.

  3. Back to top

    Re: Welcome to America!

    Jan 22, 2008 9:02 PM by Eelco Hillenius

    Sergio++

  4. Back to top

    More choice is great for informed customers.

    Jan 22, 2008 9:37 PM by Eelco Hillenius

    Research says that some choice is better than none, and that informed customers take advantage of more choice. And guess what, most of these frameworks are open source and their communities work in the public. All the transparency one would wish for! It is fantastic to see all those frameworks that are started and take on the established ones. It means that people aren't settling for the status quo, but instead are constantly looking to improve things. Sure, you might have to spend more time keeping up (that's probably why you read this site) and figuring out what the best option is for you/ your project. But a defeatist attitude (oh, there's too much choice, let's just choose for the one that everyone agrees with is outdated) isn't helping anyone.

  5. Back to top

    Re: More choice is great for informed customers.

    Jan 23, 2008 8:30 AM by Ivan Lazarte

    At this point it's just hurting. I really wish Spring and DI would really get into mainstream Java. At this point people still think of it as a web framework which is why I think people find themselves choosing Struts. Frankly working in the average Java shop is depressing: Java 1.4x, Struts, and people coding this is all in vi. Of course php or something similar seems like an easy choice.

  6. Less is definitely more. The hard and complex thing about Java is not the language, but the fact that there are so many choices to be made and no obvious ways thanks to Sun's devotion to complexity. It requires a lot of knowledge, skill and research to be successful (bet on the right horse). Every framework usually has a strong point but all in all, I find adopting a KISS route and avoiding frameworks alltogether (or at least, stick with very small and/or de-facto standards) is a win in the long term. The Oracle ADF stuff I wrote 3 years ago has now reached end of life for its tool support (JDeveloper & OAS) and is now effectively unmaintainable. The servlet micro-framework I am using now is so lightweight and simple that any Java developer can maintain it, and requires just a simple Tomcat. As much as I love the Java community, I am sure my job would be far less stressful and more productive if I was provided with fewer but stronger options, i.e. as the .NET world has it.

  7. Back to top

    Re: More choice is great for informed customers.

    Jan 23, 2008 11:34 AM by Sergio Oliveira

    For the newcomer, too many choices may be overwhelming. But worse than having too many choices is to use too many things at once. This is called a Rube Goldberg Machine. EJB is the classic example. JSF also comes close. To do a web project in Java is very "easy". All you have to do is use Struts, Spring, C3P0, Hibernate, JSTL, JAAS, Commons Email, Commons File Upload, Tiles, OSCache, etc. This is non-sense, we need FULL-STACK-HIGH-LEVEL solutions. This is exactly what Mentawai, RoR and SEAM are trying to do. So too many choices is something inescapable in a free world. I don't need to know all fruits to choose what I want to eat today. I don't need to know all grocery stores in my neighborhood to choose where I want to go today. Take a look into the Mentawai philosophy. You may get impressed, but if you don't like it, just consider another grocery store in another corner.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.