On 3/15/06, Frank W. Zammetti <[EMAIL PROTECTED]> wrote:
>
> Growing like wildfire?  Hmm... well, I'm certainly not intimately
> familiar with that community, so I can't argue that point.


If you believe that, nothing I can do will persuade you otherwise.  I'll
just leave you with my personal belief ... MyFaces is very close to knocking
off Struts as the second most popular Java-focused Apache project (after
Tomcat) by every measure *I* can see.  And I talk to *lots* of developers
over time -- not just the few that pay attention to the Struts mailing
lists, and the overwhelming question I get *used* to be "which do I choose,
Struts or JSF", and in the last three months it has turned into "what's my
migration strategy?"

I see more books about JSF that were published in the three *months* after
1.0 went final than in the three *years* after Struts 1.0 went final (and
that takes some doing -- Struts got a *huge* amount of coverage).

I see job postings that used to be 80/20 "struts and everything else" start
to be 30/30/20 "struts/JSF/everything else".

I see credible efforts from multiple parties to create JSF based component
libraries ... orders of magnitude more successful than JSP was ever able to
get people to build tag libraries.

I see better tool support for JSF than I see for Struts.  Again, *months*
rather than years after the 1.0 release.

And, I see a pretty significant backlash against Struts *because* of our
emphasis on backwards compatibility.  Hopefully, SAF 2.0 (the result of the
WW merger) can put that crap to rest -- but I've gotta tell you ... if
Struts developers hadn't been so passionate about backwards compatibility,
it would have *never* seen the early adopters that it saw.  Tell me that was
a bad thing.

So what are you seeing?  Or are you just seeing things you wish were true?

Legacy doesn't count in this equation -- *of course* if you have existing
apps based on Struts you are going to be pretty passionate about ongoing
support.  And for those folks, the activity around Struts Action Framework
and the WebWork merge is absolute goodness.  But it's time to stop being an
ostrich, and understand that JSF is *already* here to stay.  You seem to be
one of the repeaters of the "JSF hasn't lived up to expectations" mantra.
*Whose* expectations are you talking about?  Your perception of this
certainly does not match my experience over the last couple of years.

Craig

PS:  By the way, with Shale's support for Commons Validator and Tiles,
Shale+JSF can legitimately claim functional equivalents for everything
Struts 1.x can do out of the box.  And many of the Struts add-ons being
bandied about are simply not necessary in a JSF world, because JSF's
controller already deals with those issues.   Don't be misled by people who
think that the programming environment -- for the *application* developer --
is subtantively different, either.  Compare the MailReader app as
implemented with Struts and with Shale+JSF.  Compare the (upcoming)
implementation of the iBATIS JPetStore application (implemented with Struts,
but with a "dispatch actions" hack) to what you can do with JSF, with
fewer/simpler Java classes.  The interesting message I am seeing is this --
the internal architecture of the framework doesn't matter much to everyday
use of that framework ... the "shape" of the resulting application can be
basically identical in both paradigms.

PPS:  As you might imagine, the most popular question I get asked when I
speak at conferences related to web architectures is "what do I do now?"  My
standard answer goes along these lines:

* If you have existing Struts based apps, don't feel threatened into being
forced to move.  Struts
  Action Framework will take care of your needs, and has a clear roadmap
(with the WW2 merger)
  to make your life better.

* If you have existing Struts based apps, but need some of the benefits that
components can
  bring you (but also don't have time to migrate an entire app) ... no
problem.  The Struts-Faces
  integration library allows you to transition from one architecture to the
other, one page at a time,
  althougth this is not an optimum long term architectuire.  But it means
you are *not* stuck
  having to convert your entire app at once.

* If you are starting a new project, you owe it to yourself to evaluate the
benefits a component
  oriented architecture can bring to your application.  If you don't know
that those are, shame on you :-).
  Note that there are no functional limitations ( i.e. things you can do in
an action oriented framework
  that you cannot do in an appropriately architected component framework),
so the key decision
  point needs to be whether you can benefit from components or not.
Opinions that the underlying
  architecture of the framework really matters to anyone beyond framework
geeks needs to be
  *seriously* questioned :-).

* If you need to transition from Struts to a JSF-based architecture, it is
much less painful than you
  might be led to believe by the currently popular FUD :-).  And, as an
added benefit, transitioning
  from what's likely to emerge from the WebWork merger into Struts Action
Framework 2 is going to
  be even easier :-).  The WW2 concept of an action class, and the JSF
notion of a backing bean,
  are virtually indistinuishable.  The only substantive differences are in
how you customize the
  overall framework behavior ... and that is more in the "how do I do it"
details, rather than
  "what can i do."

Reply via email to