Chris said:
I'd give the opposite recommendation. Bruce Eckel's book is definitely
wordy and long-winded and sometimes outright annoying stylistically, but
it's really the best introductory book on Java out there.
I agree, if the reader is not new to OO programming and/or software
design. I love Eckel's book for showing the dimensions of the language,
the philosophy behind why things are done the way they are, etc. This is
all very important stuff. I have taught OO software design for years at
a university, and I know from experiencee that Eckel's book doesn't go
over well with students having little programming experience. I have
even tried to use it for my courses and found it too intellectual, for
lack of a better term.
If I recall, the first writer of this thread asked about GUI/Swing
stuff, and unfortunately Eckel's examples are mostly within a JApplet
context. Although that's not bad, it's limited if you are doing other
stuff, such as JFrame applications.
Ivor Horton's
book, on the other hand, is absolutely notorious -- a poster child for
horrible books that gloss over important language details and
deliberately mislead the reader just to avoid explaining a more involved
concept.
"Poster child for horrible books" and "deliberately mislead", are a
strong phrases that lack hard facts. Besides, you know what they say
about opinions...
Anyway, I say, the right tool for the right job. I don't think that
Horton has ever mislead me. If one doesn't go into every philosophical
detail, that doesn't equate to lying by omission.
A good reference lets you see down-and-dirty, cut-to-the-quick examples
without getting philosophical, so you can get a job done. I specifically
recall Horton being useful for things like the first time I wanted to
use a JList, a JOptionPane dialog, an implementation of Comparable or a
Comparator, etc. That is stuff I didn't easily find as usable in Eckel,
because of the JApplet bias and the philosophical wrapping.
For that matter, most of those examples can also be found in the Java
tutorial, which I still think is the best for the money. Sometimes it's
nice to have a physical book to look at, and Horton's is one I've found
worth its weight.
Again, I wasn't slamming Eckel (note the lack of drama in my tone), but
I would say Eckel is not great as a reference, much like Kernighan and
Ritchie isn't the best *reference* for C/Unix either.
Horton's book is not appropriate for anyone. (I haven't read
the updated Java 5 version... but the reviews I've seen have indicated
that this situation has not changed.)
Those are more, radically strong words to which one is entitled on
Usenet.
Judgment about the usefulness of a review is left to the reader.
Google turned up this review of the Horton 1.5 book, which is fairly
objective:
http://www.unixreview.com/documents/s=9602/ur0503q/
Since I mentioned my software design course, I can say that the book I
*do* use now is OO Design and Patterns by Cay Horstmann. It only has a
short-chapter, "crash course" on Java programming, and it's definitely
not a reference on the language. But it's only about an inch thick... It
talks about frameworks, coupling, reuse, unit testing, design patterns,
etc., i.e., much more than just Java, with a case study throughout.