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