Figure 1.1 The great framework decision.
The choice is so bewildering that the framework inquiry is now the dominant greeting exchanged between
developers at conferences. While the question "What do you do?" may have traditionally served in the role of
sizing up a person's abilities, these days you are judged based on the merit of what framework you use for
software development (or the advice that you can give pertaining to that choice). Just when you've made a
decision, a new framework arrives on the scene promising to bury its predecessors.
These choices can be harmful, especially to productivity. Barry Schwartz argues in The Paradox of Choice
that having a bewildering array of options floods our already exhausted brains. The result is that your ability to
write a quality application stalls. You keep believing that the best framework is the one you haven't tried yet.
As a consequence, you spend more time researching frameworks than you do designing functional
applications. The search consumes you. You develop a false sense of how busy you are. While you may appear
busy, the fact is, you aren't accomplishing much.
If any of these choices were truly satisfying, than you probably would not be reading this book. You
would already have a set of tools that you know, beyond all doubt, allows you to be highly productive. But,
you don't, do you? You are still searching for a framework that is new, yet familiar. Lightweight, yet powerful.
You are in need of a platform that integrates the vast landscape of Java technologies into a unified stack. Seam
might be just the framework you are looking for.
1.2 Choosing Seam
You might be tempted to think that Seam is just another web framework, competing in an already flooded
market. In truth, to tag Seam as a web framework is quite unfitting. Seam is far more broad than a traditional
web framework, such as Struts, and is better described as an application stack.
1.2.1 A complete application stack
Let's consider the distinction between an application stack and a web framework. Web frameworks are
analogous to the guests that show up just in time for dinner and then leave immediately after eating. They
entertain and soak up the limelight, but they are mostly unhelpful. They go out the same way they arrived, with
lots of commotion. An application stack, on the other hand, is like the person who helps to plan the dinner
party, shops for the groceries, cooks, sets up, serves, makes the coffee, and then ultimately cleans up when it is
all over. They are steadfast and resourceful. Sadly, their work goes mostly unrecognized.
In a world where everyone wants to be a rock star (i.e. web framework), Seam is your practical sidekick,
your sous chef. The Seam stack includes the framework, the libraries, the build script and project generator, the
Licensed to Phillip M Sherman <msherman@dejazzd.com>