"10 reasons why Drupal (might) kick your CMS's a**" - Crowdsourcing an upcoming talk

I'm going to be doing a talk in a couple of weeks called "10 reasons why Drupal (might) kick your CMS's a**" to a local group of web tech folks, only a couple of which use Drupal. I have some ideas, but wanted to crowdsource this a bit and see if I can get some input from the community. I have a very limited exposure to other popular CMS's, so any input on comparing and contrasting Jooma, Wordpress and Drupal would be appreciated. Also, any nifty graphs or diagrams that might hit the points home? So far, here are some items on my list:

  • Caching - The various caching tools enable Drupal to perform nearly as fast as static HTML
  • Community - Lots of IRC participation, local user groups, positive leadership
  • No forking - The community hasn't yet reached the point where a schism caused forking.
  • Central module repository - This has meant that all projects are supported in similar ways (version control, issue queues, etc) and that they are GPL compliant. Also, this adds exposure for the modules and they get vetted by the community.
  • Drupal is a programming framework plus a CMS - Drupal does a lot of heavy lifting, and helps you organize your code in a meaningful way other folks can plg into.
  • Drupal modules don't have to hack core to work - As opposed to other CMSs
  • Drupal scales well - And this will only get better with Drupal 7 and the new database layer
  • Drupal is mature - It's been around a while, it's stable and is being supported by a lot of big projects (need some good diagrams here)
  • Extendable data structures (i.e. fields in core) - Makes all data flexible at the interface level

I'd love to have some good visuals for this, and I'd also like to get some ideas on what I might be missing. I will gladly open source this presentation as well once it's complete.

Thanks!



Comments

I think views, although not in core, is one very strong point for drupal, no other cms I've worked with has anything remotely comparable to views functionality.

Also the community around drupal has not opted for selling modules, like the Joomla! community has. There are also some plugins in wordpress that are going in that direction, basic functionality is free, if you want more, pay for it.

Distributions is also a strong point for drupal.

Caching Comparison Page: http://groups.drupal.org/node/21897, this should help you gather some info. Just be sure to promote Boost for me ;)

I wrote an article comparing Drupal and WordPress - might be useful for you - oriented differently from the points you make above (more about which features do you need => which is easier/better).

http://poplarware.com/drupalwordpress.html

I think just the sheer number of modules that Drupal sports is one of it's greatest strengths. "There's a module for that" is the oft repeated Drupal mantra. Finding the damned module and comparing between the 3 that sound like they might be what you want takes a bit of work, but you can best rest assured that if what you are trying to do isn't too wacky, most of the work has already been done for you. I'm pretty sure most other CMS's out there can't say this to the same degree.

Let me digg up some numbers here:

Joomla: 3558 extensions
Wordpress: 7174 plug-ins
Drupal: ~4000 Modules

OK, well, looks like Wordpress wins, but it's not a real CMS anyway. :-) And Joomla is surprisingly close - so perhaps just ignore everything I just said.

CCK + Views, enough said :)

I did a talk recently on Drupal and you are welcome to any of the graphics I put together
http://venturacottage.com/files/Drupal5.zip
Regards

Joe

For me Drupal's strength comes from
- the unlimited multi-level taxonomy
- the ability to create whatever and however many fields I want
- the power that I have to customize the site (I'm not a programmer)

The biggest drawback right now is design/theming. There are SOOOO many css files. Oy. My savior has been the Firefox Web Developer plugin.

I've installed Expression Engine, Moveable Type, Wordpress, Joomla and Drupal sites. Drupal is by far the most flexible and powerful. Drupal 7 is going to be even better!

Translation? It's a bit tough to get used to at first but with localize.drupal.org up and running we should have translations for not just core but for most contrib modules. Contributing translations is now a piece of cake;)

Who is going to be your audience for this talk? If you are aiming at comparing some of the small home-grown CMSs then I think you have some good points. And against some of the larger proprietary CMSs then again some pretty good points in your list. But some of the other Open Source CMSs might actually have you licked if you compare point to point. e.g. running Plone against your points above:

Caching - The various caching tools enable Drupal to perform nearly as fast as static HTML
Plone has built in caching too, both to RAM and Disk, and also HTTP header manipulation to work behind Squid/Varnish/etc.
Community - Lots of IRC participation, local user groups, positive leadership
Similar with Plone, a very active IRC channel, mailing lists, several conferences/symposiums world wide, World Plone Day, lots of development Sprints worldwide. Plus formal framework/release teams for each major version
No forking - The community hasn't yet reached the point where a schism caused forking.
Same with Plone. Plone also has the Plone Foundation, which holds the IP and trademarks of Plone.
Central module repository - This has meant that all projects are supported in similar ways (version control, issue queues, etc) and that they are GPL compliant. Also, this adds exposure for the modules and they get vetted by the community.
Same with Plone. Plone.org/products lists 3000+ add-ons for Plone. We also have central distributions of the modules and easy installation via the Python Package Index (pypi)
Drupal is a programming framework plus a CMS - Drupal does a lot of heavy lifting, and helps you organize your code in a meaningful way other folks can plug into.
Within the Plone community there has been discussion of is Plone a product or a framework. I guess that alone answers your question. Plone provides a rich set of APIs and framework components to work with to built on top of it
Drupal modules don't have to hack core to work - As opposed to other CMSs
Same with Plone. All modules are distributed separately and can be installed/uninstalled cleanly without hacking the core.
Drupal scales well - And this will only get better with Drupal 7 and the new database layer
Plone is built on top of Zope, which scales horizontally very simply with the ZEO clustering ability built in. Again works with caches etc if you want more scalability. Out of the box Plone 4 will be about 400% faster than Plone 3 and about 20% less codebase, so getting leaner and faster.
Drupal is mature - It's been around a while, it's stable and is being supported by a lot of big projects (need some good diagrams here)
Same with Plone, which is now over 7 years old (there have been 7 annual Plone conferences so far) and the Plone Foundation is over 4 years old
Extendable data structures (i.e. fields in core) - Makes all data flexible at the interface level
You can use several methods for content type creation in Plone (Archetypes, Dexterity, etc) which all support extensible arbitrary metadata

Also a few points not covered in your list:

Plone Foundation
The Plone Foundation is a non profit foundation that holds the trademarks and IP of Plone. The foundation has a board of seven directors nominated annually from the Plone Foundation membership. AFAIK Drupal's trademarks are owned by a single person... who happens to run a commerical company packaging their own version of the software.
Security
Plone has the lowest number of reported vulnerabilities of any major CMS (source: cve). Probably one of the reasons organisations like the CIA and FBI use it to manage their sites

So I'd just make sure you know who your audience is for your talk, as you might find some stiffer competition than you might think in your arse kicking competition ;)

-Matt

i'd suggest the Zen theme as another reason. it is an introduction to drupal theming by itself, easy on first-time drupal developers/designers and flexible as it could be.

I would have to agree that Plone is very comparable if not better in various aspects. Although outside of Plone and definitely in the php arena I haven't seen anything that is as good as Drupal.

I would suggest talking about the #smallcore movement that's building upon the features module. Drupal is starting to take a turn in how we use it so in the next few years there will be packages for varying types of sites.

Drupal's strength is probably views and cck, triggers and actions and so on the fact that a major part of development can be done by clicking around. This really cuts down development time not having to write boiler plate code. Although it can make version control a little hard.

Performance/Scalability is not one of it's strengths. The only answer to increase speed in drupal seems to be caching like the boost module. It's quite slow for logged in users.

I was at a python conference last weekend and there was a very good presentation of what plone can do. It was better than drupal in a number of ways.

Plone is more secure (done by zope at the object level).

Inline editing is very nice, coming in Drupal 7, but at the moment plone is the easiest to use it seems.

Plone is python, PHP sucks somewhat.

To create objects in plone you can simply draw a UML diagram and import it to plone.

Plone intergrates with LDAP and other authentication services.

In terms of development time Drupal might be the best, but plone seems to be every bit as capable as Drupal if not more. I'm not sure how good zope is, but plan on investigating it. Plone looks like more of an intranet tool for large organizations.

I am very keen to learn more about Plone. Admittedly, PHP is horrible. I am going to sit down and learn python when I get a chance.

I think that there are some other nice points about drupal that you have overlooked:

  • Drupal has excellent URL Aliasing out of the box, combine this with the pathauto and custom breadcrumb modules and you have a very neat automation of all your urls and content hierarchy display.
  • Drupal has powerful, fine grained user control through roles and permissions.

I think Drupal's greatest strength is its massive flexibility, which allows building incredibly complex sites -- especially community/social networking/media sites -- with relative ease and efficiency. Wordpress is great for sites that are primarily blogs, and Joomla! is fine for sites with a lesser degree of customization, but Drupal's extensibility trounces that of the other major players. I've seen others reflect this view across the internet -- Drupal is simply the best community platform available right now. Joomla! is its closest competition on that front, although a good portion of Joomla!'s essential community modules are not free.

With regards to Plone, it's the only CMS I've ever come across that people consistently refer to as harder to use than Drupal; many people mentioning having to learn both Zope and Plone as one obstacle, there is a paradigm shift in the way you think about websites to use Plone, you have to understand a lot more about how each layer of the system works, and from my personal experience, Plone is designed more as a developer framework than a content management system. That means that if you're a Python developer it's easy to build out your own features, but... you have to build out your own features. Drupal can be heavily customized with relative ease if need be, but it rarely needs to be. Drupal is also better-established and runs on architecture that is very widely used across the internet, making it easier to find support for it (both in terms of developers, tutorials, and hosting services). Drupal's theming system, Views, and CCK also give it an advantage; Plone works rather more fluidly if you stick to its default content types. Plone people will tell you the next version of Plone will minimize this advantage, but Drupal 7 will widen the gap again. Zope is extremely powerful, but the security rating is misleading. FWIW, Drupal has been rated more secure than Plone by other organizations. Both communities are friendly and helpful.

I also find that the default Plone installation is a little more user-friendly to beginners than Drupal's, but it's also harder to customize from the interface or with community add-ons. One of Plone's greatest historical advantages is that it has put a lot more thought into workflow (using "folders," "connections," etc.), but Drupal 6 can do the same, and Drupal 7 does actively make content management workflow as easy as Plone's.

The greatest advantage of Plone for me is that by default, it is much easier for content editors to use, although the rest of it is harder for the web developer. It's the opposite in Drupal (relative to Plone): it's easier for the developer but harder for the content manager (by default; of course, Drupal can be made easier).

I suppose I should add that before Open Atrium existed, Plone was the hand-down choice for intranets.

One more interesting Plone vs. Drupal point: if you browse around on the internet, you will find people who hate Plone. There are very few people who truly harbor such great resentment against Drupal. On the other hand, Plone people can be pretty evangelical, and often seem to think (wrongly) that Plone is so powerful that it is the only solution for large sites, and that Drupal should be restricted to small sites. I have found that Drupal developers tend to be slightly more open-minded, although YMMV.

Chris, you asked:

When it comes to Sharepoint, just say no. I'm at work, so I don't have time to go into details, but let me just say that the one web content management project I worked on with Sharepoint, at the client's request, turned out to be a huge fiasco. Plus, the licensing fees are ridiculous. It's a fine tool for intranets, but truly awful for the web.

To me as a developer, the main strength of Drupal is its elegant code. Everything is beautifully wrapped.

Form API - Everthing on a page is alterable without touching core. More importantly, its presented in an organized accesible struture, not in lump code that you need to parse.

Hooks - massive amount, don't needto corrupt core

menu API - easy to define pages and paths. Simple to set when include an .inc file depending on what page is served, easy for developer to understand and promotes minimal code loading.

permissions API - Well designed and easy to use.

Theme system/registry - nice way to separate presentation from logic

I suppose if you're only comparing this to open source PHP CMSes, then Drupal definitely is the only game in town. On the other hand, this could have been a presentation of Plone, just add the following:

  • built in content versioning (not drupal's dbfm module only works on Drupal 5)
  • undo support
  • automatic locking and unlocking
  • working copy support (check in and check out content)

Speaking of forks, does Drupy count as a Drupal fork, I suppose it's more of a reimplementation? If the Drupal community can push a CMS this far on top of PHP, imagine what they could do on a Python platform.

I want to thank everyone for the great feedback on this post. A number of you put Plone on my radar, thanks! I've never been privy to a Drupal vs. Plone discussion, but it sounds like there could be some benefits in fostering some. The Python port of Drupal looks interesting, too.

I presented last week and put up the video, slides and summary here: http://chrisshattuck.com/blog/video-presentation-why-drupal-kicks-other-.... I used a lot of the feedback from the comments here, but also found out that a few of the things that I think are really great about Drupal aren't unique and perhaps are being done better by other CMSes (like the sheer quantity of modules, hierarchical taxonomy and caching).

Matt - Thank you so much for the point-by-point comparison with Plone, the level of detail in your comment was excellent.

Joe, Mikeytown2, jhodgdon - Thank you for pointing to additional resources, these were helpful, even if not a lot of them ended up in the final presentation.

Patrick - Thanks for digging up the number of modules for several CMSes, I was surprised to see the comparison.

David - Thank you for the additional info on Plone, and for pointing to the Drupy project, I had no idea that existed.

And thank you everyone else for the excellent input. I felt like the points I ultimately chose were much stronger as a result of your feedback.

Cheers!

In my opinion Drupal is just hype and over-acclaimed. It may be a good CMS if you are a large organization with lots of financial resources or have many experienced web developers and webmasters.

Here are some of the issues with Drupal that are not talked about in most forums:
Over complicated
Performance problems
Expensive to maintain
Difficult and expensive to customize and setup
Backward compatibility problems
Scalability issues
Usability problems
Long learning curve and overwhealming for entry level webmasters

This article says it all:
http://www.comentum.com/drupal-vs-joomla-cms-comparison.html

Hi Chris,

I have been browsing some blog sites because I am in talks to rework my website in to an e-commerce site and was wondering what kind of advice I could get from somebody with lots of Drupal experience. I keep on being told to hire somebody who works with Magento Commerce, but I am still not sold (as some buddies of mine have complained.) Is Drupal even compatible with e commerce? Thanks. You can take a look at my site if you want.....www.moisturemeter.com