Wednesday, March 11, 2009

Review: Using Drupal

Authors: Angela Byron, Addison Berry, et al Format: Paperback, 492 pages Publisher: O'Reilly Media, Inc.; 1st edition (December 16, 2008) ISBN-10: 0596515804 ISBN-13: 978-0596515805 To quote Wikipedia, "Drupal is a free and open source modular framework and Content Management System (CMS) written in the programming language PHP. It is used as a "back end" system for many different types of websites, ranging from small personal blogs to large corporate and political sites". According to the back cover of this book, "Newcomers will find a thorough introduction to the framework, while experienced Drupal developers will learn best practices..." Cool. A "something for everybody" book. That's one reason why I included a basic definition of Drupal at the beginning of this review. Apparently, you don't have to be particularly familiar with Drupal to find a use for the Byron, Berry, Haug, Eaton, Walker, and Robbins ("whew") book. This is confirmed on the first page of the Preface in part, by the statement, "If your lead developer can't seem to shut up about this weird 'Drupal' thing, and you want to figure out what on earth she's (to compensate for decades or centuries of using only men as examples in technical books, all modern technical books now feature only women) talking about, this book is for you". The first chapter is an overview of Drupal and the first section is called "What is Drupal", so it's pretty plain that you don't have to be an expert, although later sections are supposed to be written for Drupal gurus. Assumptions, assumptions. While it's ill advised for people to make assumptions (though we do all the time), books must make them relative to their audience. In this case, some of the assumptions are that you have access to a server running PHP, a web server (Apache is recommended by the authors), and a database (MySQL is recommended by the authors). LAMP would be the logical choice for me, but WAMP is available for Windows users, and Mac users can access MAMP. That makes it pretty darn easy to get your server up and running fast and ready for Drupal. The unspoken assumption is that you know what all those things are and how to use them, at least marginally. If not, you might want to spend some time learning the basic technologies involved before tackling this book. Oh, it wouldn't hurt to learn more about Content Management Systems (CMS) if you have no idea what those are. Like I said, this book is accessible to the beginner, but you should at least understand what a CMS is and why you'd need one. Chapter 1 gives the reader the basic rundown on what Drupal is, what it's good for, and how it works. A general, high level explanation to get the uninitiated up to speed. Experienced Drupal people can easily avoid this and the next few chapters, but the rest of you should pay attention. For those of you who are impatient (like me) and want to get your hands dirty fast, Chapter 2 presents "Drupal Jumpstart" which lets you build a small website using Drupal. Some books, at this point, back off and return the reader to a conceptual tour of the topic, reintroducing the audience to hands on tasks only during the later chapters. Fortunately, this book isn't one of them. All of the successive chapters teach the reader how to develop a particular type of web site functionality (job board, wiki, photo gallery, and so on) and, at the same time, each chapter deepens the reader's understanding of Drupal modules and features. There are only 11 chapters in the book but they're packed with valuable information. Each chapter presents its particular emphasis on a site type, and the content is relatively easily adapted for commercial use (which I assume...there's that word'll want to do). The Preface contains a brief section on how to download and set up Drupal on your server, but the appendix section has a much more detailed description. You might want to have a look at the back of the book before doing anything else if you are completely new to Drupal. If you've already gotten one or more Drupal environments up and running, you can skip around chapters and focus on the topics that interest you. The book is quite good for newbies, but make sure you access the online errata. The book's been out for about three months now and early readers have pointed out some minor issues with the content and the code version used. As far as more advanced readers are concerned, I'd say that "intermediate" would be the highest level of Drupal user that would really be "wowed" by "Using Drupal". That's hardly a slam and I find the book to be quite good for readers wanting to learn to use Drupal or wanting to get more out of it. That said, it's not a "one stop shopping center" for all things Drupal and the truly high end developer may only find limited value between the text's covers. The other audience that will benefit are those developers who've been working with another platform such as Django and are looking to either branch out or change to Drupal. Whether you are a CMS/Drupal neophyte or are searching for a way to enhance your understanding of Drupal, you should have a blast using this book. A final word. How does Drupal stack up to Django? It's sort of like having your favorite Linux distro or preferring one JavaScript library over another (Dojo, jQuery, and such). I use Django on a more or less daily basis so familiarity breeds preference in my case, but don't let that stop you from trying Drupal or from buying this book. There's more than one road to building web applications. Update: 2009/03/12 From the Oops Department There actually isn't a comparison according to Sander Marechal who made the relevant comment below. Mea Culpa or in English, "my bad". Update: For a brief description of one developer's experience with Drupal and Django, read The Blog of Curtis Chambers.