Going off the Rails: Really Rapid Prototyping With Drupal
Previously posted on http://labs.nypl.org/.
The other Labs denizens and I are going off the rails on a crazy train deeper down the rabbit hole of reimplementing the NYPL site in Drupal. As I pile my work on the fire, I've found that building things in Drupal is easier than I'd ever thought it to be. It's a scary thought, in part because I'm no fan of PHP (the language of Drupal's codebase). Really, though, doing some things can be dead simple. It's a bit of a truism in the Drupal world at this point that you can build a heck of a lot just by using the CCK and Views modules. The important part is that you can build a heck of a lot without really having to know a whole lot of code. This is what threw me off for so long - I didn't realize that I was putting too much thought into building a model like I normally would with another application framework. CCK and Views = well and good for the simple stuff, but what about building out even more functionality?
The major roadblock that I've found is that working with Drupal requires a little bit of a paradigm shift if you're used to using MVC frameworks like Rails, Django, or Zend. Instead, Drupal follows more of the PAC paradigm - a subtle difference, to be sure, but an important one. To me, the most important difference is the hierarchical structure of the paradigm, which is well suited to representing hierarchical structures of information (n.b.: I'll be writing more on this elsewhere, as I have an external project to talk about at some point). Regardless, once you shift your thinking to doing a few things in Drupal, you may experience the burning desire to do everything in Drupal. Occasionally, it can be contagious!