Why Joomla is the leading open source CMS anno 2014

Endless blogs and discussions relating to open source CMS comparisons florish online, and the three most frequent candidates appear to be Joomla, Drupal and Wordpress.
Rather than doing a complete independent analysis, we have chosen to collect other intelligent peoples findings, and provide short abstracts of their indvidual conclusions.


The below abstract is a summary of the butterfly.com article published here: http://www.butterfly.com.au/what/we-re-talking-about/entry/joomla-vs-drupal-a-technical-comparison-of-the-best-open-source-cms

Technical comparison of Joomla and Drupal

There is no reason for doing comparisons between CMS's without specifying which version of each CMS is being compared.
In the below comparison it is assumed that the latest versions (Joomla version 3.x  and Drupal 7.x) are compared.

1. Database
a) In Drupal views are stored in the database rather than files, complicating version control and development collaboration on views.
b) Every new content type in Drupal corresponds to a set of database tables, resulting in frequent changes to Entity Relationship Diagrams.
c) In contrary to other modern sytems, Drupal logs are stored in the database making logging mechanisms ineffiecient. Additionally log-rotation and archiving of old logs are not supported.

2. Design patterns
Joomla is Object Oriented, while Drupal is based on PHP 4 procedural programming.
Drupal implements these design patterns: Procedural, Hooking.
Joomla implements these design patterns: Object Oriented (including polymorphism, encapsulation, inheritance, etc.), MVC (Model View Control), Event Driven, Event Dispatcher, and Observer, Singleton, Factory.
In addition the Database Abstraction Layer in Joomla, in contrast to Drupal, is almost as good as an ORM (Object-relational mapping), and easily integrates with Doctrine for full-on ORM.

3. Core architecture
Joomla has a clean core API, while Drupals code by many is considered to be messy.
Joomlas modular extension design is more intuitive and better organized.
Drupal uses call_user_func() and other dynamic function invocation / reflection methods extensively.  This makes debugging with modern tools a nightmare, rendering the click-through and auto-complete features of modern IDE's useless, as they wouldn’t know the return type of dynamically invoked functions.

4. Coding standards
PSR is PHP Specification Request, a coding standard adopted by most modern enterprise frameworks such as Symfony2 and Zend.
While Joomla is PSR-0 compliant and soon will become PSR-1 Compliant, Drupal is not compliant to any PSR.

5. Performance and caching
Joomla is more lightweight and optimised, and faster at the core partly due to Drupals excessive use of database queries.
Joomla’s recommended memory is 512MB while Drupal's is 2GB.
Some benchmarks consider Drupal faster when caching is turned on. But if Joomla caching is set up by experts and configured properly it can outperform Drupal even when caching is on.
In Joomla, caching is a lot simpler and less resource intensive than Drupal which makes Joomla easier to use, update, and customise.
When needed Sphinx can provide a massive performance boost to Joomla, making it many times faster than the Drupal Solr bundle.
No matter how many government websites you can quote being on Drupal, the fact that linux.com (employer of Linus Torvalds among others) is on Joomla outweighs them all.
Also it is worthwhile to note that linux foundation contributors have given joomla a 5 star rating while they have given Drupal only a 3 star rating.
Read the interview with Dan Lopez, Web Architect of linux.com about why they chose Joomla.