[Nottingham] Book Review

Robert Postill robert at grinning-cat.com
Mon May 9 20:44:58 BST 2005


Hi,
Michael reminded me of something I said to him down the pub a little
while ago.  so here in its terrible glory is my review of an O'Reilly.
Comments welcome.
Robert.

Better, Faster, Lighter Java 
By Bruce A. Tate, Justin Gehtland
1st Edition June 2004 
ISBN: 0-596-00676-4
256 pages
RRP £24.95 UK

When I sat down to read this book I was full of anticpation.  I had read
Bruce Tate's Bitter Java and been enthralled by it.  One of those books
you can't keep away from.  I've programmed Java on and off since Java
1.1 and I've come away from the experience with a keen appreciation for
books that help you make those leaps between novice and journeyman or
journeyman and master.  There is no point trying to learn Java from this
book.  Nor is the more experienced hacker going to be taught the darkest
corners of Java.  What I was looking for in this book was a way to
change my thinking about Java development to help me achieve that
journeyman status and rise above the tide of Java technologies available
today.

The book divides into a theory section and a practice section.  It's
interesting that comparative to some other publishers O'Reilly's titles
tend to be written by fewer authors.  In point of fact I think its the
first O'Reilly (and I have close to 100 O'Reilly publications) where I
could easily pick out the different authors.  Perhaps though that
relates to my previous experience of Bruce Tate's writing.  In any case
there is a marked change in attitude, emphasis and approach once the
theoretical principles have been dealt with.

In the theory section there is an almost polemic discourse on EJB.  You
could easily see the authors experience shining through and in some
cases the near tears of frustration that must have hit the keyboard when
writing the book.  In all honesty I can't fault the book for that, EJB
is a terrifying standard that rightly deserves the authors ire.  As the
theory section examines each of its principals (these are: "The
Inevitable Bloat", "Keep It Simple", "Do One Thing, and Do It Well",
"Strive for Transparency", "You Are what You Eat" and "Allow For
Extension") each gets a little bit of why and wherefore.  Particularly
engaging is the what happens when you *don't* follow the principals.  If
you're fresh from a training course or education, this stuff is a real
insight into why some developers write as they do.  When the authors
give their experiences each one is like a gunshot going off inside your
mind.  One quote that struck me akin to the application of a shotgun was
"I'll never forget when one of my friends asked for a code review and
handed me a nine-page hideously complex blob with seemingly random Java
tokens...I couldn't think of anything I'd done to deserve it."  However
for those who've read AntiPatterns this will seem like old hat though.
The duplication is especially noticeable as the treatment offered within
Better, Lighter, Faster Java is generally preventative rather than
corrective.

The practical section takes a couple of tools (namely Hibernate and
Spring) and reviews them against the principals laid out in the theory
section.  This so almost works and I'm glad the authors attempted it.  I
love the idea of taking a tool that could be used in projects and giving
it a critical glance, it gives you real confidence in the tool.
However, projects like this move quickly and for instance with
Hibernate, the project has moved on at least one major revision number.
That's not to say the material is worthless, just that it's likely to
age quickly.  It then moves on to applying some of those principals
againt a jPetstore example which, if you're familiar with Java, should
ring some bells (Sun has a petstore app implementation that was the
source of much argument after it got thrashed by a .Net implementation).
However there are a couple of major gripes in this section.  First and
foremost is the needless exposition of iBatis.  In the Spring chapter,
*right after the Hibernate chapter* iBatis is used with Spring to
provide the persistence layer.  iBatis and Hibernate are competing
projects, so why waste time explaining the iBatis workings when we know
how Hibernate works?    

Overall there's a lot to like in Better, Lighter, Faster Java.  The
authors keep with the O'Reilly house of style of no fuss exposition,
which brings out the work in a clean, practical fashion.  The theory is
all gold and worth a read on its own, there's a simple lesson in each of
the chapters and taken together they build a very effective manifesto
for Java development.  The preventative nature of the theory is nicely
done, certainly comparative to the heavyweight treatments handed out in
the three amigos (Booch, Rumbaugh and Jacobson) which tend to be
force-fed to us in our early career development.  The downside is there
is an ever-decreasing window of opportunity in the second half of the
book, which means in a year's time dependant on the progress of the
Hibernate and the Spring projects the landscape will have moved on
significantly. If you can buy it now, if not do some research before
shelling out next year.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://mailman.lug.org.uk/pipermail/nottingham/attachments/20050509/9184dc01/attachment.bin


More information about the Nottingham mailing list