2009-04-28

Plone vs Joomla, Drupal, DNN, Community Server

A fellow Twitterer (@visualmatters) is considering several CMS platforms. The subject is much discussed elsewhere, so what is shared here represents some personal experiences that may be under-reported elsewhere. Principally I compare the options for Plone vs. non-Plone, but throw in a couple additional observations.

  • Among this group Plone, and possibly DotNetNuke are the most polished from an engineering point of view. This means they tend to have better managed open source community volunteers behind them, and exercise more control over the contributed code.
  • Unlike the other CMS's, Plone comes with its own Python-based object database system, Zope. This is a plus and a minus. Best plus: Zope's system features a rollback, because it can maintain versions of updates made to the content. A great feature. Worst minus: it requires a long-running application server-like process (a la JBOSS) and many hosting companies won't touch it with standard (cheap) hosting plans.
  • Hosting plan alternatives for a newbie include shared ($5-20/mo) in which you are one of hundreds of other websites on a "server," or semi-dedicated (VPS), in which only a few share the server resource, or a dedicated server (rent the hardware for yourself). Most everyone starts out with shared because it's bundled with DNS services, email and webserver administration functions. With VPS and dedicated options, in addition to costing more since more resources are dedicated to you, you must also administer them, such as deal patches, firewall security and maintaining system software. This can be routine, but sometimes isn't. Definitely not for someone who wants to stay focused on the content.
  • Plone is especially strong for group editing and mid-sized projects because it features a well-thought out plan for editorial workflow. The other packages have this feature to a greater or lesser extent, but it's fairly recent, and has a tacked-on feel.
  • Plone runs over Zope, which is an object oriented database.  The practical benefit of this is that if you suffer a major problem, it's possible to roll back the database -- easily.  This can be a life-saver; the job it saves may be your own.
  • Plone is less well known, less widely adopted (for the reasons mentioned here, perhaps) and thus it has a smaller ecosystem. This means there is vastly less free / commercial add-on alternatives. E.g., if ecommerce options for Plone are more limited.
  • DotNetNuke requires a Windows server, which for some hosting companies costs a bit more because the associated Microsoft stack (complement of software dependencies) is more costly to them.
  • Plone can be reskinned, but it's far more difficult to do so than with Joomla, DNN or Drupal. There are also much fewer third party skins, so it's a DIY affair involving some CSS work. The CSS tasking is well managed, but you'll find yourself less well supported in existing forum posts as you go down that road.
  • With the possible exception of DNN, scalability can be an issue for each of these products, though it can be managed with effort. Scalability will required unshared resources -- i.e., not hosted.
  • If you're going to perform lots of Flash hacking on the site and use lots of third party widgets, it's harder to do with Plone, but not impossible.
  • I found Community Server a bit more difficult to reskin, but it's been awhile.
  • Newbies are well served to sign up with Godaddy, or a hosting firm like them, because they offer preconfigured setups for Joomla, Drupal, Community and DNN. You can try each of them and switch them out pretty much on demand. Opinion varies, but I've found their customer service to be mostly adequate, and certainly they're well staffed compared to some. For Windows, you might look at Alentus or Aerohost.
  • Drupal has market momentum because some recent high profile sites were built to support White House initiatives.
  • I found the volunteer management behind Joomla and Drupal to be somewhat less disciplined than Plone's.
  • The LAMP stack (Linux, Apache, MySQL, PhP) used for most Joomla and Drupal implementations is increasingly stable, but has a history of security issues not dissimilar to Windows. Because it's widely used, it's got a bulls-eye on its back. In addition, the CMS's themselves have experienced some vulnerabilities. One needs to monitor this and ensure patches are applied quickly.
  • DotNetNuke has probably the most economically viable third party add-on ecosystem. This means that, as a very general rule of thumb, the add-on offerings are deep, diverse, better supported overall, and less likely to be free.
  • In this group, I found Joomla to have the fastest implementation cycle. I was able to build a creditable multipage website with decent practical functionality using a low cost skin and a number of free plug-ins -- in 2 comfortable days. It worked, I was generally satisfied, but I came away from the experience shaking my head at some of the components' documentation and uneven quality.
  • This might seem counterintuitive, but take a look at the add-on packages for the CMS's under consideration. You might find something indispensible there that will save you lots of time. It's possible switch CMS's later when requirements become clearer.
  • I use Sharepoint on a daily basis, but for various reasons that are a bit involved, it's typically more suitable for corporate enterprise situations (though there are several things that it does extremely well that no other CMS I am aware of can do yet).
  • I have also started to use Google Sites. Google sites is quite economical at $50/yr, but is too new to recommend for anything but a very simple site. This most certainly won't be true a year or two from now, but for now it's somewhat difficult to make Google Sites look as good as even a Blogspot page.
Since posting this message, @cchodnicki pointed me to the R2I.ntegrated comparison project, which if nothing else will get you thinking more exhaustively about what capabilities might be needed in a CMS for your application. There are numerous other comparison sites worth visiting when the choices are less numerous.

2 comments:

Dimitar said...

Thanks for post. I think that I will start learning joomla instead of plone , and I'll have to see which one is more supported by website-hosting companies , and the cost of each technologies.

knowlengr said...

Joomla is well supported by Godaddy, which is where I have used it. It's much easier than it once was to install; it's handled by Godaddy scripting. Contrast this with Plone (which I would like to use on my sites - but is hassle to install), where you'll need to install a VM that can run Zope. That's beyond what most folks can deal with.