|P is for Practical|
I've always been a bit worried about the term 'best' associated with a collection. I wonder who thought they were the best. I wonder if they think the same way I do. I wonder this, because I don't think that Wind of Change is the best song by the Scorpions, nor is Kayleigh by Marillion and I don't think Thin Lizzy's best work was Whisky in the Jar. However, pick up a 'best of' or 'best rock' album, and you'll find these in there somewhere, together with a Queen song and one by Meatloaf, who, in my opinion are not the best rock bands.
As a computer scientist and Perl programmer, I wondered if this was going to be right up my street or some dulled down introduction to computer science for those who didn't take the opportunity to do the degree. I thought I'd learn something, but it might be amongst a lot of chaff.
Having read numerous academic journals, but not The Perl Journal (TPJ), I wondered if, in fact, the contents would be of the same calibre. I wondered if references would be given in quite the same way, and if it had, in fact, been reviewed at any level. I wondered if The Perl Journal was really a Perl magazine.
So, steeped with negative thoughts, I opened up and got my head down. I was very pleased with what I found.
Mark Jason Dominus starts with a great Foreword. Explaining what TPJ is, who writes for it and what it's all about. He gives an overview of the book including an appealing note that there are no web oriented articles; those appear in the second book. This is the first of three.
The Preface contains not only the normal book conventions and in depth overview, but a potted history of TPJ, which makes for a fun read. He notes that this book contains 70 of the 247 articles written for TPJ. Given that the other two volumes will contain 40 and 47 articles respectively, making a total of 157, that leaves 90 unaccounted for. There may have been a little repetition, but not much according to the comments. Much of the rest, judging by the TPJ web site, relate to Perl news, competitions and systems oriented things like general IPC, Macs and NT things. It doesn't seem that many of the Computer Science articles are actually missing. That makes the book more of a related subset, than a 'best of', I'd say.
Like most journal articles from other journals, the piece is kept short, to convey the information quickly. However, the information has to be complete and correct, which it is. I presume it has all been peer reviewed. The wonderful thing about journal papers is that, being so short, the author retains their energy throughout the piece. So, what has been achieved here is a series of chapters (articles) which are extremely well written and convey exactly what they say they do. Of course, each contains references and often further reading.
The difference between TPJ article and normal academic articles is that TPJ is written for a different audience. In fact, written for an audience. An academic article can sometimes seem flat and factual, whereas TPJ article are definitely written with a reader in mind. With most of the authors having their own, recognisable style, they are a pleasure to read.
I was most interested by the chapters on Regular Expressions, Computer Science (trees, compression, etc.) and Programming Techniques, being quite pure topics. These grabbed my interest, and because I knew a lot about what they were talking about already, they tempered my existing knowledge as well as introducing new techniques I hadn't considered.
The chapter on Software Development brought together concepts such as debugging, benchmarking and embedding. Although these were quite interesting in themselves, some of the topics they were covering were part of a much bigger picture, which, like embedding, needs a whole book, really. Some of the articles, like the benchmarking one, stand alone well. I presume that such topics as profiling, code coverage and the like will be covered at some point in the future. This, if anything, is one of the few problems with the book. It's not attempting to give a complete collection of articles covering all aspects of a particular topic. More, it's bringing together articles that have already been written, the sum total of which may not complete a topic. This is a shame, but is to be expected.
The Networking and Databases chapters are not what you might have expected. Books have been written on these topics and the web is awash with basic DBI examples and basic socket code. These articles, however, open the readers eyes to the power variety that Perl can achieve in a diverse range of applications. Such topics as Streaming Audio, MS Office and ACEDB (Genome Project) were covered.</p?
The final chapter, Internals, give an under the hood look at the way in which Perl works. The information was basic, and too sparse to be useful to an internals programmer. It was quite interesting, but seemed bitty. It was a disappointing end to a book which had, thus far, kept my interest very close.
Other reviews I've read have noted that TPJ is free online and can come on CD. I say that even though that is the case, the book is worth it for its structure and order. It has brought together articles from many journals, including multi-issue spanning articles to create a compilation which is well ordered and well edited.
The quality of the book would be nothing without the superb articles written for TPJ. Articles are, in fact, my favourite way of learning new things, since they are concise and generally well written. However, like all other topics covered by articles, it's sometimes the case that you just can't find what your looking for, because it's not been written.
Computer Science and Perl Programming is a fantastic collection of well written article on the subject. It's not a breadth book, nor is it a depth one. In combination, it's give a sufficiently in depth look and a subset of each of the broad range of topics it covers.
I've learnt more from this book, than I have from many of the other advanced Perl books I've come across. For me, this is the best computer science book for Perl programmers in the world ... ever.
Steve Marvell is the Proprietor of an IT Solutions Provider based in the South West of England and runs the Devon and Cornwall Perl Mongers.
This review may be used, in full, including this message, by anyone, but may not be edited without the author's permission.