Tuesday, August 16, 2011

NetBeans IDE 7 Cookbok: a review

After three intense weeks, the last one of which spent tiling floors (I definitely need to improve my speed as a tiler), I've finally been able to complete the review of the "NetBeans IDE 7 Cookbook" by Rhawi Dantas published by Packt.

The book is a collection of recipes (quoting from the text)

...for everyone that wants to try NetBeans or is beginning with a new technology and would like an uncomplicated way to setup and start coding.

Each recipe consists of four different sections:
  1. Getting ready: it tells you what you will need to follow the recipe (a sort of ingredients list)
  2. How to do it: the recipe itself
  3. How it works: an explanation of what is going on behind the curtains (or should I say in the larder?)
  4. There's more: slight variations or new insights (try adding more red hot chili pepper)
Before delving into the actual review, a disclaimer is due. I am a NetBeans Certified Specialist, and I have used it since it was not NetBeans yet, so I'm not exactly the intended target for the book and I might get extra critic (did I say "might"? I surely will). That said... let's tuck in (we're talking about recipes, so the bad pun is intended).

As I said, the book uses a very clear font and has very good and detailed pictures that help you follow the recipes. Sometimes they are a little different from the actual ones, but that is probably due to the fast pacing changes of the software, and this is never a real problem.

All explanations are clear and easy to follow, even if some are too simplistic, of the kind that makes you say "so what?". The most annoying thing are the uncountable typos, which are in no way accountable to the author, whose main job is to focus on the content.

I didn't like the recipes structure for different reasons. One of them is that sometimes one or more sections are useless: I really don't expect to find sentences like "...if NetBeans is not currently installed...", what's more I don't expect to see them more than once. Another one is that this structure gives way to a lot of repetitions, which as a (good lazy) developer I try to avoid whenever I can. This is particularly obvious in recipes strictly based on the previous ones. A simple organization in linear chapters would have been much better.

Another thing I didn't like is the organization of chapters: why wait until chapter 9 for refactoring and until chapter 11 to write about tests, moreover mixed with profiling? In chapter 9 it is said "..refactoring could break code...", and where can you find a better place to introduce tests? (this is a rhetoric question, so if you're answering "chapter 11" either you're wrong or I badly am).

The old but still good NetBeans IDE Field Guide had a very different first chapter, which I really appreciated: this is where you get NetBeans, this is how you install it, this is how you create a project, this is how you run it. New class, new method, new test class, debugging. A few pages and you've covered most of what you'll ever need. And you never have to get back on it.

On the other hand, here I have to wait 200 pages to find that CTRL+R renames almost everything, and a lot of refactoring are forgotten. And the preview option is discussed only ahead in the chapter instead of with the first refactoring.

Another thing I didn't like is a chapter that requires version 6.9: if this is a cookbook based on version 7 you should stick with it, at the most mentioning the fact that the previous version also supported JavaFX. There are so many things that are not supported anymore that could fill another book. By the way, when will we have Struts2 natively integrated instead of Struts1?

Leaving aside the fact that the chapter on version control does not deal with cvs (ops... did I write it aloud?) I was a little disappointed by the fact that most of the interesting things about the IDE are never mentioned: how do I start it with a different JVM? how can I configure projects for each developer's unique environment? (I know it is an antipattern, but it happens even in the best families). What are libraries in the NetBeans vocabulary (a hint: they are not jars) and how do you manually edit them? Shall we talk about the very powerful editor? where are code templates, except for the python example in chapter 10 in which is never said how to distribute your plugin or what the NetBeans Platform is? Can I only generate a web service from an EJB? (another rhetoric question). And many, many more.

All in all, the book is not that bad, but in my grumpy-old-man biased opinion it does not get past a 3 out of 5. Obviously you don't have to entirely rely on my words, as you can download the free chapter on EJB which you can use as a means to get a general impression.


John Yeary said...

I read your review as well. It is nice to see that someone else generally rated it in the same manner.

I too did not like the this may break your code remarks. I think this should be removed on subsequent releases of the book.

I had almost forgotten about the old field guide. I got a copy at JavaOne (NetBeans Day) many years ago. It was a good read and very helpful.

Thanks for the comments on my review.

.MOz said...

You are mostly welcome! Looking forward to your next review.

P.S. I got my copy of the field guide at JavaOne too :-)