Concrete5 vs Joomla! vs Drupal vs Wordpress
This blog post is something I've wanted to put together for a while. I tried to compare Concrete5 with Drupal in a previous post, but I wanted to include Joomla and Wordpress and make the comparison a little more detailed and organized. I'll start by taking a developer's prospective, a developer prospective, then a client prospective.
Please comment on what you think can be added, especially as versions and features change.
The versions I will be comparing:
Concrete5 220.127.116.11 (The most recent as of the writing of this article)
Drupal 6.22 (Ver 7.8 is the lastest, however I've not used it as much as 6)
Joomla! 1.5 (1.7 is currently available, however the site I've done most work on is still on 1.5)
Wordpress 3.2.1 (The most recent as of the writing of this article)
Concrete5 - The requirements are very straightforward. Nothing out of the ordinary. One screen setup is convenient. If you want to choose a different native language, then you must do so after install.
Drupal - Similar install procedure. Very straightforward. A few more options at the onset of the install.
Joomla! - I haven't installed a Joomla! site in a while, I'll download it and try it out and update the post!
Wordpress - The have a famous 5 minute install. I'd agree - straightforward approach to install.
Concrete5 - A helpful community most of the time. I've seen a few unanswered questions. For the most part, the core team will chime in when necessary, and there are some amazing people who consistantly help out.
Drupal - The community is very good at answering well formed questions. There is an amazing amount of content to find on Drupal, so most oftern a Google search will yield an answer.
Joomla! - Joomla's community is on par with Drupal, but there are many paid modules which provide support outside of the main Joomla community.
Wordpress - Arguably the best community. A lot of community efforts to build extensions and themes at no cost.
Addons / Extensions / Modules
Whatever you want to call it, these are the things that extend the core functionality.
Concrete5 - Unique to the others, concrete5 has a marketplace similar to an app store. All purchases have a guarantee of both working, and being supported. Many free add-ons, some paid. All addon's are vetted by a peer review, and purchases are made through Concrete5's website. All addons are on a per-site basis.
Drupal - Thousands of modules. This is a benefit and a detriment. You can oftern find a dozen plugins that all have similar features. Knowing Drupal is knowing Drupal modules. For every opensource banner / gallery / lightbox etc. there is at least two Drupal modules. I've found that active module will give decent support, and I've had bad experiences with paid Drupal modules.
Joomla! - A similar markeplace to Concrete5, however the addons are not vetted in the same manner as Concrete5. I'd say of all the systems, Joomla tends to have the most polished and most advanced addons. Some are pretty bad, and it's hard to tell based on the ratings. Support is often hit or miss. Some addons you pay for the annual support, and others are lifetime.
Wordpress - Similar in size to Drupal, there are thousands of addons available. Constant version updates do cause issues with compatibility of addons, and Wordpress suffers from the same issues as Drupal with many addons for one purpose.
* Update (1/28/2012) - I recently worked on a Wordpress 3 site, and was looking for a plugin that would help me set a few widgets up only on a specific page. When looking for a plug-in to manage widgets, I found 4 that looked like they would work. The most promising didn't work for ver 3.x of wordpress so that's out. The other two had reviews saying they didn't work. The last one looked fine, except you had to use PHP code and "widget logic" to determine where the blocks would appear. That ultimately means my client will never be able to modify where his block goes.
Concrete5 - MVC. Easy to undestant and easy to overide.
Drupal - Does not use MVC, nor does it fully use OOP. Often has nested functions. The result - fast code execution without acceleration. It is harder to read, and in my opinion it was less intuitive to override. [cite]
Joomla - OOP - Done fairly well. I haven't had the pleasure of really overriding core functions, but I've read enough to know that some high end sites have used Joomla! as a framework by overriding a lot of the backend. Joomla's code is 8 times the size of Drupals. An example of what some might call "bloat".
Wordpress - a codebase similar to Drupal's. It had the fewest comments compared to Joomla! and Drupal. [cite]
Themes / Templates
How easy is it to make the site look like the comp? How hard is it to go from HTML to Template? What kind of resources are available?
Concrete5 - Getting the site to look like a comp is very easy. There are content areas and blocks, with custom templates that can be attached to each. All of these blocks can have overrides and can be moved via drag and drop. All pages can have defaults (nav etc.) that get created through a gui.
HTML to template can take less than 15 minutes depending on the complexity of the site.
There are less resources for free/paid templates then Drupal / Joomla or Wordpress, however in my experience, if I need a template from monster template or themeforest, I can often purchase the HTML version and have it "concretized" in less than an hour.