Long time readers will remember when this journal was nothing but a long diatribe on Perl books. I've broadened my horizons recently, but I'd like to return to books briefly. You should be warned that there may be bitterness in this journal entry as it was partly brought about by hearing the (very disappointing) second half of 2001 sales figures for Data Munging with Perl.
Last night I was talking to ziggy and pdcawley about forthcoming Perl books. There are a number of books in the pipeline that sound really interesting. But we started to wonder just how well the kinds of books that we'd buy would actually sell.
There are a limited number of Perl programmers out there. From my experience, the majority of Perl programmers don't really care about the "software engineering" aspects of Perl - and I'm talking not about "bleading edge" stuff like aspects or attributes or currying or design patterns, I'm talking about sensible variable naming or resuable code. Now I realise that people reading this will probably disagree with me. Of course you care about all of those things. But my point is that you are not typical Perl programmers. By knowing about this site and these journals, you're part of the Perl community. We know about the importance of good code design and we either know how to achieve that in Perl or we'd be interesting in learning by buying the appropriate books.
But I don't think we're a very large group. There's probably only a few thousand of us. And no sane publisher is going to publish a book that will only sell a few thousand copies.
So these points were raised last night and someone raised a counter-argument. Even if only a relatively small number of people buy an advanced Perl book, the majority of Perl programmers will still benefit as the people who read the book will produce improved tools and modules that we can all benefit from. Last night I thought I agreed, but thinking about it I'm not so sure. I don't believe that the majority of Perl programmers will ever hear about the improved tools or the newer modules. Most of them don't see Perl as something that they need to "keep up to date with" and even if they did, they wouldn't know where to go.
Last year, I ran a lot of training courses for a large company. This company had a lot of Perl programmers. But the majority of these programmers knew nothing about CPAN or use.perl or their local Perl Mongers group. Wherever they'd learned Perl from, they hadn't been told how to join in with the Perl community. And that means that there are books and trainers out there who are teaching Perl without pointing people at important Perl resources.
So what do we need do? We need to draw people into the Perl community. We need to find people who consider themselves Perl programmers and show them what they're missing out on. We also need to grab people on their way into Perl and make sure that they know how to get the most out of Perl.
To bring it back to books, ehilst I do think it's great that we have new advanced Perl books to look forward to, I also think that we need to have better books that beginners will read. For my next book, I was considering something that went futher on the data munging path, but now I@m thinking it might be more useful to write a beginners CGI book based on nms - sort of a "CGI/Perl Cookbook" but done right