The premise of this book is that good code matters because it
reduces maintenance costs and because the author says he doesn't
want to waste time on work he's not proud of.
OK, that sounds good, but what makes you proud? A program
that does its job and that users appreciate or one that is
written beautifully? Frankly, the first is a lot more important
to me, but perhaps the author just assumes that and feels that is
so obvious it doesn't need to be mentioned.
But I have some reservations about the maintenance assertion
also. It feels intuitively correct, but is it? I can certainly
think of many thousands of hours I've spent on code that never needed
modification and never will, either because its lifespan was
naturally quite short or the task it accomplishes is so simple
that it never needs any attention. Does the overall gain on
the few projects that need maintenance overhelm all that code?
I don't know, and that's my point: the case for so called
"good code" isn't backed up by hard data. Maybe it can't be,
not because it's wrong, but because it would be impossible to
control experiments tightly enough to come to legitimate
conclusions. But it could be just plain wrong - one of those
things that everyone assumes must be true but is not..
Well, all right, but it certainly doesn't hurt to read about
good practice. Any programmer should think about these things.
But that's my next gripe: ANY programmer should be thinking
about these ideas, but the book is written with Java used
as his example language. I don't like Java - not because
it's a bad language, but because it is so often badly deployed
on the Web where it is slow and painful. As Google has
so elegantly shown us, Ajax is the right choice for the
Web. But never mind - if you know any OOP language, you
can probably muddle through.. yet it would have been so much better to
give examples from a few different languages.
Finally, at times I felt a little bit "talked down to". The
author tends toward pedantry and is just this side of
someone you want to say "Sheesh, get over yourself!" to.. he's
not quite there, but he's close..
So, good book? Yes, probably so in spite of its defects. As
I said above, everyone should think about the kinds of things presented
here. Some may seem silly (certainly some did to me) but others
may resonate and still others may be an awakening.