« Technical Interviewing: Pushing the envelope | Main | Name That Cat! »

June 05, 2004

Review: Hardcore Java by Robert Simmons Jr.

A quick Google search will reveal many reviews of this book Most are either negative or mixed at best. The recurring themes are:

I tend to agree with most of the above points.

Hardcore Java is the first pure Java language text I've read cover-to-cover since Ifirst learned the language. I admit I was somewhat attracted to it by the inference that I am, by reading it, a "hardcore" Java developer, although my primary motivation was the fact that it covered three relatively new areas of the language that I'd had no experience with to-date, namely:

  • Dynamic Proxies
  • Reference Types (i.e., weak, phantom and soft)
  • Inner classes (above and beyond standard Swing event listener-type stuff)

To this end, I was satisfied with the book as it did a good job in each of these areas.

I almost made the mistake of skipping the first chapter along the lines of "it's going to be a dreary stroll through a 'Hello, World' level application again", but I'm glad I didn't. The first chapter taught me something about using initializers I'd never been aware of before, which certainly raised my expectations of the remainder of the book.

In general, I have to say that I got something from every chapter. Sure, as most reviewers have suggested, the level of content is uneven, but for my current level of knowledge, I found the book to be a helpful resource. YMMV.

I found the length perfect as I shy away from "thick" books that adopt a "quantity over quality" approach and I basically don't have time to do them justice. I'm a huge fan of brevity and clarity in these things and would much rather a concise 300 page text than a bloated 500+ page equivalent.

Even given the succinct length, several of the sections could have been ommitted or considerably reduced in size. The final section on the upcoming (at time of publication) JDK1.5 was just being greedy and, although detailed, should not have been included given the publishing date and books dedicated to Tiger soon to be published.

Similarly, the section on Constant Objects is interesting, but with the fine work Joshua Bloch has already put into this area, and it's inclusion in JDK1.5, it too could have been left on the cutting room floor. The generally though-provoking section on the appropriate use of the final keyword is also screaming out for a rigourous copy-editing.

As for the title, the negative comments are probably warranted, although a quick flick through the chapter sections should give an astute potential buyer a good idea of the target audience. I'll have to get around to reading Effective Java (Joshua Bloch), as it seems to address a similar level of developers but with a more consistent and higher quality end result.

After finishing the book, it's my belief that it's been the recipient of some fairly harsh criticism, some of it warranted, some not. It's very easy to adopt a harder core than thou perspective when reviewing books that purport (through title or otherwise) to be of higher quality than the reams of other texts out there.

By no means is this book perfect - it reeks of a rushed publication, however you could distil 100 good pages of intermediate-to-advanced Java knowledge out of it. Given the plethora of obese Java texts in the market at the moment, that's a signal-to-noise ration I'm happy to live with.

Posted by Andy Marks at June 5, 2004 08:23 AM

Comments

You won't be disappointed by "Effective Java", Andy. :) If you need to, you can borrow my copy.

Posted by: Robert Watkins at June 5, 2004 09:01 PM

Interesting and fair review. Just one point that you should be awayre of. I didnt decide on the title. O'Reilly did that. As for criticism, it is far easier to tear down something than to create something. I seek out constructive criticism and hope the next edition will be even better.

Posted by: Robert Simmons Jr. at June 16, 2004 07:17 PM

Post a comment

Thanks for signing in, . Now you can comment. (sign out)

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)


Remember me?