On 3/18/06, Mark Lowe <[EMAIL PROTECTED]> wrote:
>
>
> Tomcat is perhaps a little different in that its a reference
> implementation its survival and usefulness is potentially broader.


Having been heavily involved in the development of Tomcat (the Catalina
servlet container in Tomcat 4.x and later was basically my original design
for Apache JServ 2.0, but was adopted by the Tomcat community for 4.0), as
well as Struts, I think I can be a reliable commentator here :-).

* Tomcat didn't succeed becase it was a reference implementation.
  It succeeeded because it did the basic job of being a servlet and
  JSP container better/faster than many implementations at the time,
  and it was available under a business friendly license.  It continues
  to be popular because it continues to excell at execution of these
  goals (along with adding very nice configurability and other features
  that go way beyond the spec required functionality).  If it was
  "merely" a reference implementation, it would have been ignored
  by the market.

* Struts didn't succeed because it was dreamed up by some idiot
  sitting on the beach (although the initial 0.1 version *was* coded
  on a three day weekend at the Oregon coast :-).  It succeeded because
  it met real world needs, and continues to be popular because this
continues
  to be the case, plus the fact that the developers listen to their users
  (which is a blessing and a curse -- it means a strong commitment to
  backwards compatibility, and a corresponding reticence to break
  backwards compatibility willy nilly :-).

I would submit that these two use cases (which happen to be two of the most
popular Java based downloads across all of Apache) make a pretty good case
that the Apache development model can work wonders.  Throw Ant into the
equation, for the same sorts of reasons.  It's all about consensus among a
developer community, not about individual opinions on what is technically
elegant or not.  Don't agree?  Please show me some Java based projects that
are more popular.  (I don't care if you think their technical design is
superior or not -- I'm asking about popularity :-).

If you don't like the technology, you're free to offer alternatives.
Likewise, the Struts developers are free to accept or reject those
alternatives.  That's life.  Nothing is stopping you from going out and
evangelizing an alternative approach -- other than the fact that the world
at large (a) may not agree with your assessment of technical beauty, (b) may
not care because they have xxx thousands of lines of Struts code already, or
(c) may not even bother to pay attention because they can't find any
developers that know your framework well enough to create and maintain
applications with.

Technical elegance is, in the big picture, only one factor that leads to
popularity.  You have to execute well on basically *all* of those factors.
Plus, more often than not, you have to be lucky with your timing.  If you
want to fundamentally change the world, you have a *much* better chance if
you tackle a problem that has not been solved yet.  Building YAWAF (yet
another web application framework) might be fun and rewarding, but if you're
starting in 2006 it is unlikely to be market relevant -- no matter how cool
the architecture is.

Craig

Reply via email to