• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Liutauras Vilda
  • Paul Clapham
  • Bear Bibeault
  • Jeanne Boyarsky
  • Ron McLeod
  • Tim Cooke
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Jj Roberts
  • Stephan van Hulst
  • Carey Brown
  • salvin francis
  • Scott Selikoff
  • fred rosenberger

Struts Vs Other Frameworks

Ranch Hand
Posts: 390
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There are quite a few frameworks (such as Tapestry and web works) which are gaining a lot of momentum in software development; they actually reduce the amount of coding a programmer does significantly and have better separation of logic. what comparative advantage does struts have over these other frameworks.
Posts: 6450
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One huge advantage in my opinion is Struts' ubiquity. Books, learning resources, community resources, etc... are more readily available with Struts. If I'm a manager, I like Struts because it's well accepted, in use on many major applications, and I'll have a much easier time finding developers who already are familiar with Struts.
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Anselm,

I think that Jason hit the nail on the head with respect to the two main advantages Struts has: mind share, and what's often referred to as 'network effects,' or a 'value chain,' meaning the implicit value of all the books, articles, blogs, training courses, add-ons, and plugins, etc., as well as a large base of developers who have at least some Struts experience.

From a technological standpoint, I basically view the web app framework world as divided into roughly three camps:
  • Struts and its direct descendants, such as WebWork and the relevant portions of Spring;
  • JSF implementations, such as MyFaces.
  • WebObjects and its sole descendant, Tapestry;

  • Admittedly I don't have much direct experience with WebWork and the web app framework stuff in Spring, but they appear to me to be modernized versions of Struts that smooth some of its rough edges, and thereby simplify development. What they share in common is a simple architecture that primarily provides a front controller, a navigation mechanism, and a binding mechanism (Struts lags here in that its Converter architecture never really fulfilled its promise).
    So there's not a lot of meat to their architectures.

    JSF has some similarities, but it also defines a sophisticated component model that the others lack. The downside of JSF is that, arguably, it is overengineered. There's a lot of complexity under the covers, though that does buy you increased extensibility. The question is though, how many developers are really going to need/take advantage of that flexibility? That being said, if I had to pick from all the above, I'd lean towards JSF, though I'd take a closer look at Spring before deciding.

    Finally, there's WebObjects and Tapestry. WebObjects usually doesn't enter into the discussion because it's not open source, but from my experience it increased developer productivity by a factor of 3 or more (in no small measure because it includes a superb O/R mapping framework, and a sophisticated controller layer in between). Tapestry's architect, Howard Ship, was formerly a WebObjects developer, and that model of development is strongly reflected in the design of his framework.

    One of the huge advantages of WebObjects/Tapestry over other web app frameworks is that it models web pages and components of web pages rather than being form-oriented. Another huge advantage is the approach to templating, which relies solely on a simple HTML tag (<WEBOBJECTS name="foo"/>) in WebObjects, or even better, custom HTML attributes in Tapestry, so that there's no scripting code or funky tags in HTML templates.

    The downside of Tapestry is that it is reportedly quite large and complex (but then again, it has a lot of features that the other frameworks don't). Also, most Java developers are familiar with the simpler, JSP-oriented approach of the other frameworks, and for some folks apparently have difficulty adapting to a new way of thinking about the problem space.

    If I had to choose from among all the available open source frameworks, all things being equal I would probably pick Tapestry, because it offers a more sophisticated model of web development that over time would make a development team far more productive than they would be using the other open source frameworks. Though I haven't used Tapestry, I'm familiar enough with that model from my years doing WebObjects development to be convinced of the fundamental benefits of that approach.


    [ April 06, 2005: Message edited by: Jonathan Lehr ]
    [ April 06, 2005: Message edited by: Jonathan Lehr ]
    Posts: 25
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Hi, I believe Spring has been the best decision made so far by us. It has tremendously helped not to mention Spring Security has been a blessing.
    incandescent light gives off an efficient form of heat. You must be THIS smart to ride this ride. Tiny ad:
    Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
      Bookmark Topic Watch Topic
    • New Topic