View Review Details


Book:   Learning Java
Subject:   Learning Java Review
Date:   2002-01-03 23:18:32
From:   Bryan S. Gibson
Rating:  StarStarStarStarStar

Well...the picture shown is not the book cover I have (2nd ed, perhaps?) - but it's still the same book.


Overall, I found this to be one of my "keep in the stack next to the monitor" books. As is usual with O'Reilly books, it is fast-paced without too much dry, technical jargon or useless fluff. The authors assume a strong C/C++ background, and as they explain many concepts in terms of C and C++, I would not recommend this as a guide for "first-time" programmers. However, for those who have mucked about with C++ (or similar OO languages), it's a great introduction to Java.


The book includes a copy of JBuilder but proceeds to discuss the programming directly with the JDK, using commands like javac and java to compile and run programs. Personally, I've used most of the "big-name" Java IDEs and program with a text editor and the JDK myself, so it wasn't a big deal for me. However, the inclusion of JBuilder implies that the reader should be coding with it - and this is a problem, because the book mentions nothing about its use...and JBuilder is feature-rich to the point of overkill.


The initial examples (the obligatory "Hello World!" programs) and written and explained quite well. The examples in chapter 16 of the various Layouts are also done well - and have the added advantage of being generic enough to use for base programs to build on. In the core chapters (ie 4+), I would have appreciated some more examples. I don't mean redundant examples of the same thing (such as the long list of GridBag samples in chapter 16) - noone likes reading a book that has more code than text - but I would have appreciated a little more exploration into the uses of various classes/functions/etc.


My biggest beef is the lack of technical discussion of Java's compilation process. If the chapter 4 examples are done as shown, upon compile, some create a single FILENAME.class file, whereas other create the FILENAME.class file plus a FILENAME$1.class file - and sometimes a FILENAME$2.class file as well. There is nothing ANYWHERE in the book that mentions these extra files (they're not even mentioned in section on building JARs!). Trial and error has shown that these files are necessary to run the compiled classes - so it would seem appropriate that they deserve explanation. (As a side note, I have several books on Java (including some from Sun) and none of them mention these extra files. O'Reilly in the past has been extremely good at catching the little details like this that other authors/publishers miss - which is why I value O'Reilly books over any other CS books (well, in general). It is a shame that this one slipped by.


There is also a fairly long list of errata for this book - as well as an even longer list of "unconfirmed" errata - that apparently is only appended to and does not get checked by the publishers, as there are many blantantly-needed corrections that should be "confirmed" that have been in the "unconfirmed" file for over a year now.


Don't let my gripes discourage you though. If you have some OO programming background (especially C++) and are looking to learn Java, this book is an excellent choice. As I always tell anyone buying computer books, "You can't go wrong with O'Reilly unless you don't know what subject you're looking for."


See larger cover