This review, written by Jack J. Woehr, was originally published at the Electronic Review of Computer Books (“ERCB,” long defunct).
Electronic Review of Computer Books – Jack J. Woehr
Of the many books I’ve read this year with “Patterns” in the title, Essential Java Style: Patterns for Implementation, by Jeff Langr, is the first that I could fully enjoy.
Harry S Truman once said of youngsters seeking autographs, “It’s like dogs pissing on a hydrant, one of them does it and the rest of them all have to do it.” Lately it’s been that way with “Patterns” books, many consisting largely of naive attempts to recast all of computer science in the light of the latest pop computer-science trend.
Java Style is different. Langr enthuses for the new metaphor and serves his patterns straight to the true believer. But Langr’s work is also illuminated by mature insight into the relation of patterns to the rest of theory, and in particular, to the theory of design implicit in the carefully engineered constraints of the Java development environment.
Java Style is ambitious. While Langr humbly avows that “the patterns…within this book are very specific code-level patterns…not subsystem design patterns,” he has, in effect, offered us the prototype of a standard pattern library as it applies to Java programming, a library analogous to the standard C library, or to the standard template library for C++. Although the patternification of programming environments has not in practice progressed quite so far that we should hasten to convene for an ISO standard, Langr’s opus is a bit of evidence for the point-of-view that we are approaching that point very rapidly.
It’s hardly coincidental that Langr conceptually concatenates issues of patterns with issues of style. Langr’s examples and his explanations of how his models evolved bear witness to the author’s meticulous coding. Langr’s pattern emerges less from intuitive recognition of hidden similarities than from diligence in collating identity sets made to leap from the pages of his lucid, orthogonal, and workman-like source.
I’m not sure that I agree with all, or even with the majority, of the assumptions and prescriptions found in Java Style. Indisputably, however, Java Style is a thought-provoking, professional evangel for the patternification of Java development. Langr is convincing in that he, at least, among the patternists understands factoring. Many peer works suffer from overambition and isotropism. Langr is content to apply his theory methodically and with an admirable thoroughness to the foundations. I look forward with interest to reading in later volumes well-documented case studies of the results of the application of his pattern library.
Java Style as a book benefits from competent editing, excellent page layout, and attractive design. Appropriate font changes enhance readability. Code samples are adequately annotated and formatted. The latter quality redounds to the credit of the designer, who labored with success within the narrow column space on the pages of this handbook-sized printing.
It’s hoped, or assumed, that the publisher intends to release a CD-ROM of Java Style, as this book is eminently suited to an online work.