Beyond Spots & Dots | Digital

Drupal vs. WordPress: Which is Better for What?

We often see blog posts and debate over whether Drupal or WordPress is "better". As someone who uses both platforms but is better-versed in Drupal, I think the clear answer is "for what?" What purpose are you using it for? And on what metric are you judging it? Let's look at some:

Back-end Usability

The conventional wisdom here always was that WordPress was better, and that's certainly true out-of-the-box: that is, with a stock WordPress installation vs. stock Drupal. If simplicity and the ability to write in "zen mode" (i.e. no clutter or distractions) is your goal, WordPress wins hands-down.

On the flip side, much of the criticism of Drupal is based on old versions that existed before administrative themes like Rubik (which can be installed along with the Admin module) or Seven, which is Drupal 7's new stock administrative theme, Drupal has come quite a long way. This along with modules like Workbench (or, generally, the Views module) can allow a competent Drupal developer to customize a Drupal administrative interface that is more powerful, intuitive, and beautiful than WordPress— provided, of course, the client has the money to pay for it. This will be a recurring theme in this discussion: Drupal has the capability to do more, but usually with more work (and, by extension, money). On the flip side again, actually customizing WordPress's stock administrative interface is far more work, if you need to do it, than in Drupal, because WordPress's administrative area is more deeply baked-into WordPress itself, where Drupal is designed architecturally to be modular.

Ease of Set-Up

For me, the operative question is "Ease of set-up for what kind of site?" I believe there's a sort of continuum, not unlike economic graphs, whereby very simple sites are generally quicker to set up in WordPress (unless, of course, your developer has tools like Drush for spinning up Drupal installs quickly), but as you get more complex, the lines converge and get to a point beyond where Drupal (based, once again, on its modular design) is the easier choice.

So what are you looking to build? If it's something like simple content management or blogging, WordPress is purpose-built for this. More complex? It may be a toss-up.

Versioning

The One Side

Let's start with bad news for WordPress: in my view, from a software development perspective, it does versioning "wrong". That is, it moves up in version numbers in a way that doesn't necessarily seem to correspond with fundamental changes in architecture. Let me give you an example: a large change—and, in fact, a complete back-end administrative overhaul—happened between WordPress 2.6 and 2.7, and this happened again between 2.9 and 3.0. It is hard to tell why 2.7 wasn't, in fact, called "3.0", given the large changes, and why 3.0 wasn't then called "4.0". As far as plug-ins are concerned, those written for 2.6 or earlier may or may not work on 2.7 or 3.x, and there doesn't always seem to be a rhyme or reason.

But more importantly, you could not stay on the older version if you wanted security releases available in the newer one, and if upgrading for the security releases broke one of your plug-ins—well, too bad. Drupal, though, always keeps two "major" versions supported. As I write, Drupal 7 is the current release, but Drupal 6 receives all bug fixes and security releases they can put into it, meaning you don't have to upgrade the minute a new major version is released. Just last week, I upgraded some of my sites from Drupal 6.27 to 6.28, and others from 7.18 to 7.19. Not to belabor the point, as it should be obvious by now: Drupal 6.9 did not go directly to 7.0. There was a 6.10, 6.11, and so on. Consider it similar to how Microsoft and Apple give previous releases a certain lifecycle before dropping them.

The Other Side

Let's look at the other side for a minute. As to modules—i.e. plug-ins—Drupal eliminates backward compatibility between major versions, removing the WordPress-style mystery about whether an old module might work (hint: it won't.) Which is "right" from a software development perspective, but are you seeing dollar signs yet? It's much more expensive to upgrade Drupal, and there is no such "one-click" upgrade between major versions. Which, of course, is a financial disincentive to use Drupal, and helps explain WordPress' popularity.

Flexibility

If you consider flexibility a good thing (and you might not; it adds complexity and expense), Drupal wins this easily. The simplest way to compare these is to consider how they treat data and content.

WordPress, for its part, has several top-level types of data: Blog Posts, Pages, and Media, for example. Plug-ins, such as eCommerce or calendars, which add new types of data to store, work well but feel "bolted on"—that is, they live in their own little area and do their own thing without always interacting much (if at all) with what WordPress core was doing previously. This is largely due to the basic architecture that treats Pages and Posts, for example, as top-level data types, each of which have their own separate database tables.

By contrast, Drupal 7 introduced the concept of "entities", which are essentially a form of data, and, in programming-speak, each their own object class. Nodes, Drupal's word for content, which would include both Blog Posts and basic Pages, is one entity type, as are User accounts. Third-party modules can create any entity type they desire, which is how we do eCommerce, CRM (Contact Relation Management), Banner Ads, Event Registration, and more in Drupal 7. Thus a Drupal 7 eCommerce product is not "bolted on" but in fact is as much part of the system as any piece of content. Developers can add custom fields (text fields, textareas, select menus, checkboxes, or whatever) to any entity type through the user interface, often with no programming.

Conclusion

Well, I hope this helps somewhat if you're looking into the difference between the two platforms or are interested in building a site in one of them. I do have a bias towards Drupal, largely because of the type of work I do, which requires it, but at the same time I do believe the question "what do you want to do?" is one of the most important to ask.

Beyond Spots & Dots | Drupal vs Wordpress