Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

Java Frameworks and Components 153

Simon P. Chappell writes "Life is busy enough without writing your own infrastructure code. With all of the high-quality frameworks available today, it's no longer necessary to even think about writing low-level code (except as a technical exercise, or to express your inner geek :-) Our problem today, is to review and select the best available framework for our needs. This is a non-trivial task, but help is at hand with Java Frameworks and Components by Michael Nash." Read on for the rest of Chappell's review.
Java Frameworks and Components: Accelerate Your Web Application Development
author Michael Nash
pages 477 (14 page index)
publisher Cambridge University Press
rating 9
reviewer Simon P. Chappell
ISBN 0521520592
summary A tour de force! With only one quibble, this is the definitive work on Web Application Frameworks.

Overview

This book is a superb exploration of the current state of the web application development framework market. Both commercial and open-source/free frameworks are examined in detail.

The book works through a logical progression, starting with a discussion of what a framework is (and, of course, what it isn't) before moving on to an examination of the benefits that they bring to development efforts. The meat of the book is in the next couple of chapters where a framework (no pun intended) is explored to select and compare frameworks. A list of current frameworks is given, each being described, with strengths and weaknesses highlighted.

The trailing chapters cover aspects of development that are affected by the use of frameworks, including the obvious ones like IDE support and methodologies.

What's To Like

The aspect that most impressed me was the depth of research that has obviously gone into this book. I think most of us know that frameworks are good, and a reasonable number of us could list several reasons why they are good, but I suspect that very few of us could generate such a comprehensive and cogent rationale for using a framework.

The information density in this book is quite high. Normally, I read technical books quite quickly, but this one took a while, because every good point prompted much thought and consideration. This was impressive to me after seeing so many books coming to the market that have simplification as their rationale for existence. The selection of an appropriate framework for web application development is not a simple task and this book takes it very seriously.

While non-free frameworks might be a non-issue for some of the Slashdot crowd, those of us working in corporate I.S. have to be very aware of the differences and our local management's attitudes concerning it. The book does come out strongly in favour of open-source and free software, but does not let this bind the discussion in any way. Commercial and free software are judged equally and fairly throughout.

Pragmatic is a much over-used word these days, but I would describe this book as pragmatic. The advice given concerning framework selection, urged people to consider many factors, including existing frameworks used in-house, the type of project, the degree of accordance between the services provided by the framework and the requirements for the system being written. I have seen many a framework selected because it was buzzword compliant, so this advice was a refreshing change.

What's To Consider

After enjoying the book, to reach the case studies and be disappointed was, well, disappointing. The case studies seemed rushed and lacking in substance. The idea of comparing and contrasting the four leading frameworks to solve the same problem was a good one, but somehow it didn't quite come off. The Struts case study got to me the most: I have conniptions everytime I see business logic in actions! Perhaps the case studies could be dropped in a future edition?

Summary

A tour de force! With only one quibble, this is the definitive work on Web application frameworks.

Table Of Contents

1. Components and Application Frameworks
2. Components: The Future of Web-Application Development
3. Application Frameworks: What Do They Provide and What Are the Benefits?
4. Choosing an Application Framework
5. A Catalog of Application Frameworks
6. Comparing Frameworks
7. Open Source and Components/Frameworks
8. Development Methodologies and Design Patterns
9. Integrated Development Environments
10. Strategies for Using Frameworks: Best Practices
11. Conclusions: The Future of Frameworks and Components
Appendix. Case Studies



You can purchase Java Frameworks and Components: Accelerate Your Web Application Development from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

This discussion has been archived. No new comments can be posted.

Java Frameworks and Components

Comments Filter:
  • by Elwood P Dowd ( 16933 ) <judgmentalist@gmail.com> on Tuesday November 25, 2003 @02:16PM (#7560118) Journal
    Java. He's talking about Java programs. It's no longer necessary to even think about writing low-level code like widgets. He's clearly not talking about embedded systems.
  • Not Perl (Score:3, Informative)

    by jonathan_ingram ( 30440 ) on Tuesday November 25, 2003 @02:43PM (#7560404) Homepage
    Bittorrent is written in Python. This means that if you download the source code, you'll actually be able to read it -- Python code can be understood by more than the person who originally wrote it.
  • by scumbucket ( 680352 ) on Tuesday November 25, 2003 @02:45PM (#7560428)
    I used PHP extensively for a number of years and finally wrote my own framework. In the end it turned out to be very much like some of the Java frameworks out there.

    IMHO the good parts about PHP are also the bad parts. ie, * you don't have to say what type a variable is, but that means you can't specify a type of parameter to a function. * you don't have to specify scope, but then you can't protect functions that should be private etc.

    I looked at a lot of Java code for ideas on what I could do with PHP to clean it up . The main things that I did were: set up a 3 or 4 tier architecture.

    * database abstraction layer
    * business layer
    * presentation layer (preferably using templates)

    (I modeled a lot of this on Enhydra - www.enhydra.org)

    never use globals. Wrap up the HTTP_GET_VARS, HTTP_POST_VARS etc in a class (ie Request). Create classes to wrap the server vars and whatever else.

    Use classes for everything. This gives you a reasonable amount of namespace control.

    Never access variables directly in classes. Create accessor methods for them.

    I think that if you are feeling the need to structure your PHP, you will probably need to move towards Java or some other more structured language. It can definitely be more challenging to write, but as your applications get bigger, the compiler-enforced type checking, programatticaly enforced/supported interfaces etc will save you a lot of time in the long run.
  • by nehril ( 115874 ) on Tuesday November 25, 2003 @02:50PM (#7560486)
    all applications use frameworks. the only question is where do you get your framework: do you code it yourself or use someone elses?

    lots of apps need to validate form input, connect to a database, retrieve data and save settings. these are generic "framework" tasks that apply across a wide range of applications. You start with these base foundations (either you roll your own or use someone elses), and decorate it with your particular business needs.

    Frameworks like Struts for web apps include much of the stuff you would do yourself anyway: authentication, validation, form repopulation, session management. since lots of geeks/nerds get together to create these frameworks they are often more complete than something you would whip up yourself.

    Since they do stuff you were going to do anyway, they can save tons of development time. that's why it's an important topic to be educated about. they are not just "make money commercial concepts."
  • Re:Who are you? (Score:3, Informative)

    by wideBlueSkies ( 618979 ) on Tuesday November 25, 2003 @03:18PM (#7560812) Journal
    >>I've said it once, and I'll say it again. Who are you, reviewer?

    He's some dude who works for Land's End. [google.com]

    wbs.
  • Sample chapter (Score:4, Informative)

    by akuzi ( 583164 ) on Tuesday November 25, 2003 @03:29PM (#7560957)
    You can read the first chapter here [cup.org].

    Unfortunately, like the 'review' - it doesn't mention which frameworks the book covers though.
  • by MSBob ( 307239 ) on Tuesday November 25, 2003 @03:42PM (#7561103)
    Our company did the same thing. They wrote their own frameworks to replace struts and their own O/R mapping layer.

    It was one of the overlooked disasters.

    Things looked pretty good for the first year or so when the requirements were straightforward and the persistence mapping quite simple. As the product grew the frameworks we built got very complicated very quickly and everything we built was in some form available in other products. Maybe there wasn't a one for one feature match but I think the small discrepancies absolutely did not justify the effort spent on building your own application framework.

    Why anyone would build a persistence layer when Toplink and Hibernate are both excellent tools which will almost certainly outperform homegrown solutions.

    Same with struts. We built our own struts-like framework with our own tag libraries and our own templating engine. Now we have to have people dedicated to maintaining that stuff all the time and at least keeping pace with the popular frameworks.

  • Re:Who are you? (Score:5, Informative)

    by The Masked Rat Fink ( 68826 ) on Tuesday November 25, 2003 @05:18PM (#7562134) Homepage
    Good question.

    I am the author and I appologise for forgetting to put a little something about me in the review. My excuse is that I'm too humble, but who knows if you'll buy that? ;-)

    I am a Java developer with Lands' End. In fact, I was the first Java developer that LE hired, and I've been with the company five years now. I have worked with Java since version 1.0 and was also responsible for the first Java program written at my previous employer (CUNA Mutual Group ... Go Credit Unions! :-)

    I have a slight relationship with the publishing houses, in so far as they send me books. I have no connection to the authors. I get to keep the book, but there is no payment for these reviews. I am highly opinionated, so if I say that I like a book, then that's the straight dope. Check out my personal website if you want proof of my willingness to express opinions (http://www.simonpeter.com/)

    Hope this helps, and I'll put in a bio next time.

    Simon
  • by mjglobal ( 559663 ) <mnash@jglobal.com> on Tuesday November 25, 2003 @06:33PM (#7563000) Homepage
    The book covers Java frameworks, primarily web-application frameworks, and discusses how to compare in general, and goes into detail on:

    Avalon, Cocoon, Expresso, Arch4j,
    ArsDigita ACSJ, Turbine,
    Wakesoft Architecture Server, Niggle
    Systinet's WASP, realMethods, Brazil
    OpenSymphony,
    JSF (not quite a framework per se, but covered),
    Struts, Maverick, Scope, WebMacro,
    Velocity, Tapestry, Barracuda, HyperQbs,
    Tea, Freemarker, Echo, Xerces, Xalan,
    Axis, Slide, Roaming Wireless Framework,
    JADE, Openadaptor, JUnit, Anteater,
    Jetspeed, OpenPortal, uPortal, Simper,
    Object/Relational Bridge, Castor,
    jRelational, Batik and Keel,
    along with mentioning more briefly a lot of others.

    (disclosure: I'm the author - of the book, not the review - so opinions may be biased :-)

    Mike

Old programmers never die, they just hit account block limit.

Working...