Book Review


Seven Java Books A Whirlwind Tour

reviewed by G. Miller Clarke

So you're starting to do Java. Maybe I can save you some time and money with capsule opinions on some recent Java books I've been using. Included are tutorials I used when just learning and references I keep handy when I'm cutting code.


Title: Java in a Nutshell
Author: David Flanagan
Publisher: O' Reilly & Associates, 1996.
Pages: 468, paperback
Price: $19.95
ISBN: 1-56592-183-6

This little gem is a must-have — packed with information, not fluff. At $19.95 I consider it a great bargain. A good tutorial spans several chapters, including one aptly titled "Java vs. C," and one on objects as used in Java. This book contains lots of code fragments, which is good, though they're a little elaborate for my taste. I like examples stripped to bare bones and tightly focused on a single point. The reference section gives an excellent introduction to each package (Java's equivalent of a library) and then an introduction to each class in the package. Alas, the class members are just listed, not explained. The function and parameter names are mostly self-explanatory, but I expect to use a reference to be sure of the details. The indexes are worth the price of the book — among those included: Class Defined in Index, Method Defined in Index, and particularly, Returned by Index and Thrown by Index. On the down side, this book covers Version 1.0, even though their web site provides updates. At least, they're up-front about it — the version's on the cover.

Title: The Java Tutorial: Object-Oriented Programming for the Internet
Authors: Mary Campione and Kathy Walrath
Publisher: Addison-Wesley, 1996
Pages: 852, paperback
Price: $39.75
ISBN: 0-201-63454-6

Really, very good, this book began life as an HTML document, as the very extensive cross references show. The book includes code snippets throughout the text, then lists complete code for the programs in an appendix and again on the obligatory CD-ROM. Clear explanations cover the language itself and a good, representative sample of what's in the packages. This book is not an introduction to programming — it assumes a solid knowledge of C, and you'll get through the object-oriented stuff a lot easier if you know C++. Like too many recent books, this book also contains lots of information-free padding.

Title: Java Developer's Reference
Authors: Mike Cohn, Bryan Morgan, Michael Morrison, Michael T. Nygard, Dan Joshi, and Tom Trinko.
Publisher: Sams.net Publishing, 1996
Pages: 1284, hardcover
Price: $59.99
ISBN: 1-57521-129-7

This book is not nearly as impressive on my desk as it seemed in the bookstore. The language is introduced in four repetitive, nearly identical chapters: "The Java Language," "Java for C++ Programmers," "Java for Delphi Programmers," and "Java for Visual Basic Programmers." There's much good information in the next 500 or so pages, but repetitiveness, padding, and fluff continue. The short chapter on databases contains information I hadn't seen elsewhere, but half its length is consumed explaining databases. Finally, about 9/16 of the book is a reference to the Java packages. A stylized format and silly icons contribute bulk without adding information. The few code fragments don't help. The book seems to accurately reflect Version 1.0.2, though I couldn't find that stated anywhere. Don't you wish publishers would replace some of their marketing MBAs with editors? One novelty is bylines to indicate which author wrote which section.

Title: The Java Class Libraries: An Annotated Reference
Authors: Patrick Chan and Rosanna Lee
Publisher: Addison-Wesley, 1997
Pages: 1695, hardcover
Price: $48.50
ISBN: 0-201-63458-9

If you're a serious Java programmer, get this book. It's exactly what its title claims. First come brief introductions to each package with their hierarchy diagrams. The rest of this mammoth book is composed of descriptions of the classes and their members. The descriptions are organized alphabetically by class, not by package, then alphabetically by member — a much more convenient arrangement. The explanations are detailed and thorough, and there's lots of good example code. Very well written and very useful.

Title: The Java Application Programming Interface, Volume 1: Core Packages and
Volume2: Window Toolkit and Applets
Authors: James Gosling, Frank Yellin, and "The Java Team"
Publisher: Addison-Wesley, 1996
Pages: 529 (vol. 1) and 441 (vol. 2), paperback
Price: $38.75 each
ISBN: 0-201-002825

Until a few months ago, these were the best available. Now, in my humble opinion, Chan and Lee's class library reference does everything these do and better. And cheaper.

Title: The Java Programming Language
Authors: Ken Arnold and James Gosling
Publisher: Addison-Wesley, 1996
Pages: 361, paperback
Price: $34.50
ISBN: 0-201-63455-4

This book is by the designer of the language. Covers the language and some classes, but not those not associated with the GUI. Authoritative but disappointing. Gosling is a better language designer than author. Not a great tutorial, but not quite a reference either. If you have a couple of good tutorials and the Language Specification, you can skip this book and get by just fine.

Title: The Java Language Specification
Authors: James Gosling, Bill Joy, and Guy Steele
Publisher: Addison-Wesley, 1996
Pages: 850, paperback
Price: $36.75
ISBN: 0-201-63451-1

This is the definitive reference for the syntax and semantics of the language. It's thorough, clear, and surprisingly good reading. It's not nearly as dry as you'd expect, and it's easily accessible to an experienced programmer who's gotten through a tutorial or two. Keep this one handy for the times when you need to know what's really going on. o

G. Miller Clarke is a longtime freelance software designer and programmer working in the Boston area. Recent projects have taken him from designing low-level routines for a RISC processor embedded in a digital camera to cutting code for shrink-wrapped applications to teaching Java in Sun Microsystem's Education Centers. Miller has a B.Sc. in mathematics from The Ohio State University and can be reached at clarke@std.com.