10/13/2005

On Technical Books, Accuracy, and "Holier than Thou" pedantic attitudes

Among my other travails in the .NET world, I've been serving as a Technical Review Editor for a couple of upcoming .NET related books.

You see some interesting and occasionally VERY ANNOYING statements made by various authors when you get to review these chapters. It becomes obvious (especially with .NET 2.0 where authors are often "rewriting" their 1.1 books, and more often than not, they aren't adding much new value either) that we are making statements and proclamations out of habit, even when they are DEAD WRONG, simply because some tech reviewer from the previous book didn't catch it.

I'm not naming names, because that's not the point. The point is, authors should take GREAT PAINS to get their facts straight. If I am a "noob" and I buy and read your book and accept information that you give me in the confidence that it is factual, and it turns out not to be so, you have done me an egregious disservice and hurt not only me, but yourself, your publisher, and the rest of the technical publishing landscape.

Last night I got so confused by two related "best practices pronouncements" in a book I'm reviewing that I actually had to write a short program in C# 2.0 to prove to myself that if I pass a DataTable (a reference type) into a method, and modify a column's value inside the method, that the ORGINAL Datatable will be modified! This is one of the most egregious and poorly explained language facts, reference types are passed by reference by default, it doesn't matter if your method is getting a "COPY" of the reference, the point is if you modify the object inside the method, YOU ARE MODIFYING THE ORIGINAL OBJECT. Period! You can put the "ref" keyword in front of the parameter, or leave it out. It won't make a bit of difference.

Just a word to the wise:

If you are an author, take the time to get your facts straight, and once you have, be sure that you can explain them very clearly.

if you are a reader, don't trust everything you read!