
Catalyst
Jonathan Rockway
Packt Publishing, 2007
ISBN-13: 978-1-847190-95-6
US$ 39.99 - UK£ 24.99
Rating: 4/5 (very good)
This is the first Catalyst-related book to be published, and I'm very happy of this as Catalyst is my platform of choice for web application development. Packt seems like a great publisher, as it provides books on very specific topics that otherwise might end up being uncovered by the printed media.
Catalyst is a killer Perl application, and brings MVC web development to a new level. The main other available frameworks (i.e. Rails) try to impose the framework authors' choices on the developer (i.e. which templating system to use, which database abstraction library to prefer, ...); Catalyst simply provides a basic structure, along with a wide range of different choices which play well with this basic structure. This approach greatly improves the developer's opportunities to create customized and high-quality software, but it also has a downside: newbies find it difficult to enter the Catalyst world, as they have to make choices they're not yet ready to make, and so they might tend to walk away from Catalyst, leaning towards a different framework. Jonathan Rockway's book attempts to solve this problem, providing a beginner's guide to Catalyst where all the relevant choices have already been made by the author. This book tells you: "there's more than one way to do things, and this is my way; follow it, and then you might decide to stick with it or make changes but, in the meanwhile, you will have learned Catalyst".
Catalyst - Accelerating Perl Web Application Development begins with an introduction to MVC concepts and with an overview of the Catalyst installation. The main focus of the book is, however, development of applications, from simple to more advanced ones which involve complex database operations and authentication. The book assumes the developer already knows object oriented Perl fairly well, and follows a smooth path which allows him to learn Catalyst and the author's preferred modules: DBIx::Class for the database Model, Template Toolkit for the template View, and a selection of plugins. This selection isn't - however - a group of obscure Perl modules: they are the ones most widely used by the Catalyst community. So, what this book offers is also a series of "best practice" suggestions on what to use. The chapters on testing and deployment are a much appreciated addition.
Not everything is perfect. Code formatting, which doesn't feature any empty line to separate code blocks, might sometimes make it difficult to read examples - but it's minor thing. The part regarding the Authentication plugin is a bit outdated because of API changes - but things like this happen in every programming book. The chapter on the installation of the framework is just a few pages long, and doesn't cover the problems one might encounter - but it points to IRC chat and mailing lists where to ask for help.
All in all, this a good-to-excellent introduction to the Catalyst framework, and great first book on a framework which is becoming better and better every day. Rockway's work is the starting point for anyone seriously interested in building modern and scalable web applications, and in having some fun while doing that as well.

Thanks for the review. I've been evaluating the various frameworks (rails, django, catalyst), and it seems that many are overlooking Catalyst. Though as you pointed out, it is perhaps not the easiest to learn, it does seem to have similar capability. I just received my copy of the last week and hope that it will inspire more interest.
Well, it's alright. Like the tutorials, it doesn't highlight a lot of the important things such as submission of data in a few separate forms. All the tutes and examples highlighted basic scenarios (ie like an address book application) which has no business rules built in.
For example, if I had a shopping cart, I would of course have pages for the user to check out, confirm the shipping address and payments details.
The last two would be in a separate page from the check out page.
this book does nothing to cover important things like that.
Nevertheless, good ice breaker.