Some people have asked me about my scathing review of "Perl and CGI for the World Wide Web" that I mentioned in an earlier entry. I think that the review itself is best left in the bit bucket, but I'm happy to resurrect one of its major arguments.
There are a number of sub-standard Perl books out there - they probably outnumber the good ones. but if you go to somewhere like Amazon[1] the reviews that the bad books get are just as glowing (sometimes even more so) than the good books. It's worth pointing out why this is.
A technical book needs to succeed on two fronts. It needs to present accurate information and it needs to present in such a manner that its target audience understands it. The problem is, of course, that if you take the target audience of a beginners Perl book, for example, they are exactly the group of people least capable of commenting on the first of these criteria. They have no way of knowing how accurate the information is. The book might explain things so that they understand them perfectly, but they have no way of knowing how useful the information is.
Therefore you get a set of books that explain Perl and (usually!) CGI in a way that anyone can understand, but because the authors don't actually know very much Perl or CGI, the information in the books is pretty much useless. Readers buy this book and after reading it, they are able to write a guest book for their web page so they go away happy and write a glowing review on Amazon. They don't realise that by putting the guest book script on their web server, they suddenly allowed anyone to view the contents of /etc/passwd, because they know nothing about tainted data, because the author of the book didn't understand it and therefore omitted it from the book.
What can we, as the Perl community, do about this? Well we need to understand that the audience for these books is completely different to the audience for the books that we like to read (or write). They are people who have no experience of of programming. They aren't coming to Perl from C. They need to be guided right from the very start. We need to start producing books aimed at this audience. To stop them reading "Dummies" books and the like.
Andrew Johnson's Elements of Programming with Perl is a great start and I've read good things about Simon Cozen's Beginning Perl[2], but we need to do more. I'm obiviously a bit biased here, but I think that what I did with Castro's book is a good model to follow. We shouldn't just ignore these bad books. We should contact the authors and the publishers and see if we can work with them to improve the books for the next edition.
Hae you hugged your local bad Perl author today?
[1] Just for research, you understand. Not to buy. We're
all still boycotting Amazon I hope.
[2] Haven't read it yet as Wrox don't send me review
copies. Hint, hint :)