Drupal 7: Ready or not?
At local Drupal group meetings I've been to lately, the big question among those of us who build sites with Drupal is (as you might guess): Is it time to switch to Drupal 7? I can't give you a simple yes or no answer to this question -- I think it depends on your situation, mainly due to the state of contributed modules and some key core bugs -- how disappointing! Drupal 7 was released on January 5 of this year -- it has been out for more than seven months -- and the D7CX (Drupal 7 Contrib Experience) pledge (which many signed and few fulfilled), and the promise to keep the core bug numbers down was supposed to mean that Drupal 7 (unlike Drupal 6) would really be usable on its release date. I'm not blaming the core developers or module maintainers for the fact that it wasn't -- we're all volunteers on the Drupal project. Fixing core bugs is not always the most exciting work, and updating a module from Drupal 6 to Drupal 7 (and providing a data migration path) is not exactly easy or automatic. But it's still a disappointment that for all of the hype about D7CX and the bug counts, more than seven months after the release of Drupal 7 I am still not convinced that it's time for everyone to switch.
So let's return to the practical question: Is it time for you to switch to Drupal 7? As I said above, I think it depends on your situation:
- If you have a staff of programmers, and a large-budget project: Yes. If you are willing to expend enough effort, you can most certainly build a web site in Drupal 7 with whatever functionality you want, and it's a LOT better than Drupal 6 in many respects. But this case is a very small percentage of all Drupal projects.
- If you are building a web site that doesn't need any contributed modules at all: Yes. You can almost certainly also upgrade an existing Drupal 6 site with no contributed modules to Drupal 7. But this case is also pretty rare.
- If you have an existing Drupal 6 site with contributed modules (and a smaller budget): Probably not, although the answer to this is getting steadily closer to Yes, as module maintainers find the time (or someone funds them) to port their modules to Drupal 7 and/or build a data migration path.
- If you are building a new site with contributed modules (and a smaller budget): Probably not. I'm sure many people would disagree with me on that answer, but having recently had the (dubious) pleasure of working on a couple of Drupal 7 website projects, I am sticking to that answer. Two problems I ran into on my recent projects will serve to illustrate:
- Internationalization: if your site will be multi-lingual and uses Views, you will need the Internationalization Views module. However, as of this writing, it is completely unusable -- the base Internationalization module was updated recently, in a way that made Internationalization Views completely break (this will hopefully be fixed soon). And I ran into several other Internationalization issues as well, which don't have solutions on the horizon (beyond the expedient solutions I had to adopt: hack core, hack contrib, turn off validations that were causing me problems, etc.) (and I do mean hack! In the sense of ugly, rough cuts).
- Complex queries: In several situations I'm aware of, there are some bugs in database queries that cause them to return no results. I've personally run into it when building Views with complex filters, and there is another reported core issue when using Search with content access permissions.
If you are willing to do some programming or patching, you can probably get around these types of issues -- just don't expect everything to work well "out of the box".... Which I think was the promise/intention of the D7CX and bug count efforts?
In summary: although Core is getting better all the time, in reality you can't build most sites without using at least a few contributed modules (and most sites will want to use a custom or contributed theme, too). So maybe we need to concentrate more on the contrib ecosystem, and the impacts that changing Core have on Contrib, rather than just thinking about how to make Drupal core even more awesome, efficient, and usable. And (although everyone hates them), maybe we should consider even lower thresholds for bug counts, and count it as a critical bug if some change in Core breaks a bunch of contributed modules? Something to consider, anyway... Let's not have a multiple-month delay in Drupal 8 between its release and when I can definitely say "Yes, it's time to switch".