Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
Book Review - Java 2 Performance Guide

Books  
HOME 
SEMINARS 
TALKS 
ARTICLES 

BOOKS

  OVERVIEW
  REVIEWS

  BIBLIOGRAPHY    
    J2SE
    J2EE
    CORE C++
    STL
    TEMPLATES
    IOSTREAMS
    CONCURRENCY
    I18N
    PATTERNS
    OOA/OOD
    TESTING
    MANAGEMENT
 

LINKS 
IOSTREAMS 
GENERICS 
ABOUT 
NEWSLETTER 
CONTACT 
SITEMAP 
Book Review - Java 2 Performance Guide
   
  Book Review of the week  
 
 
  Java 2 Performance and Idiom Guide 
  By Craig Larman, et al 
  Upper Saddle River,NJ:Prentice Hall PTR 
  ISBN 130142603 
  299 pages 
 
  Price: $39.99 
(Reviewed 5/15/00) 
 
A Second-Generation Java Title on Programming Idioms and Performance Issues 
A good starting point for learning about Java idioms
J ava 2 Performance and Idiom Guide , by Craig Larman and Rhett Guthrie, is another second-generation Java title like Practical Java Programming Language Guide by Peter Haggar or The Elements of Java Style by Scott Ambler et al. These new books do not aim to teach the Java programming language or any of the elements of the Java environment. Instead, they focus on Java idioms and programming techniques that have been developed during the past five or more years since the advent of Java. 

As the title suggests, Java 2 Performance and Idiom Guide deals with performance techniques and idioms in Java. In more detail, it breaks down like this: 

  • The book contains three chapters (100+ pages) devoted to performance issues, from high-level design techniques that can have a significant impact on the performance to fine-grained implementation tips that have only moderate to minor impact.
  • The next-largest section (70+) deals with Java library idioms. It covers the universal super class java.lang.Object, reflection, concurrency, collections, resources, and exceptions.
  • Three shorter chapters follow (around 20 pages each) and cover language idioms, packaging idioms, and testing idioms.
  • The book closes with a section on coding idioms (roughly 50 pages) dealing with naming and style conventions. 
As the overview reveals, Java 2 Performance and Idiom Guide aims to cover a broad range of topics: performance techniques, programming and design idioms, testing techniques, and coding conventions. Unfortunately, this broad scope comes at the cost of some parts appearing a little bit "thin," because the entire book is only 300 pages long. This is true especially for the Java design and implementation idioms, a topic that cannot be discussed comprehensively in 100 pages. However, the same number of pages is sufficient to explore the performance techniques in adequate depth and detail. 

For this reason, the section on Java design and implementation idioms leaves much to be desired, while the section on performance techniques, to our knowledge, is one of the best collections of Java-relevant performance techniques currently available in book form. Unfortunately, Java performance is a fast-moving area and, as the authors themselves point out, for some techniques like JIT compilers or Hot Spot technology, Java 2 Performance and Idiom Guide can give only a snapshot of the current situation. It will be outdated soon. 

We also noticed that the book, despite its title, includes a number of general - that is, non-Java-specific - idioms. For example, the section about performance offers advice like "use buffered I/O" or "move loop invariants out of the loop." This kind of advice might be welcome to novice programmers, but an experienced software engineer will not find anything new or Java-specific in these idioms. 

In sum, Java 2 Performance and Idiom Guide is a good starting point for software engineers or programmers who are relatively new to Java and want to get a broad overview of idioms and performance techniques relevant to Java. While the performance issues are discussed adequately, the reader should not expect deep, detailed explanations of Java idioms. Only a title specifically devoted to a certain Java issue will deliver this type of coverage. For example, the reader will not get the same understanding of concurrency and multi-threading idioms in Java from the 22 pages devoted to the issue in this book as he or she would get from Doug Lea's more-than-400-page book, Concurrent Programming in Java

Angelika Langer develops and teaches classes on advanced C++, STL, multithreading, internationalization, and Java. She served on the ANSI/ISO C++ Committee from 1993 to 1998. Klaus Kreft is a software architect and consultant with 15+ years of experience in industrial software development. He works for Siemens Business Services in Germany. Langer and Kreft are authors of "Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference" (Addison-Wesley, 1999) and are columnists for C++ Report magazine. 

 

 
© Copyright 1995-2003 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Articles/Reviews/JavaPerformanceGuide/review.htm  last update: 28 Oct 2003