Drupal and Joomla are the two most popular open-source cms solutions around, and there is a long-running debate as to which is the superior product. After having worked with both, I am ready to choose a side:
Drupal is the superior CMS.
That said, I want to be clear that Joomla is definitely a great product, and I mean it and its community of developers no disrespect. Joomla has many strengths and powers many great websites. However, when it comes to building a robust, feature-rich website, Drupal wins, hands down.
Before I compare the major features of Drupal and Joomla, I would like to address probably the biggest complaint about Drupal: it has a steep learning curve and requires a lot of work to get a site up and running. I agree and can sympathize with those who feel this way. However, believe me when I say that once you get over the initial “hump”, Drupal is a joy to work with and ultimately provides a truly flexible and scalable CMS solution.
On the surface, Joomla is feature-rich and out of the box, it is fairly easy to get a basic Joomla site up and running. Drupal, on the other hand, is more lean, and to really get your site going, there are more steps you need to go through. While this seemingly limited feature-set appears to be a weakness, it uncovers a distinct advantage of Drupal. Being built around principles of frugality and necessity, Drupal's codebase focuses more on its extendibility, allowing developers to easily hook into core functionality. Thus, Drupal doesn't try to pack in every little feature, rather it includes the essentials and elegantly exposes itself to enhancement.
Because of the advantage described above, Drupal functonality addons, called "modules", are significantly more powerful than their Joomla counterparts. Joomla's addons, called "extensions" (more specifically: "components", "modules", and "plugins"), because of Joomla's rigidity, tend to "hack" Joomla core functionality in order to achieve their purpose. Furthermore, every extension is a "different animal", and they often don't play nice with one another.
Drupal code, whether core code or module code (written following Drupal's well-documented coding standards), looks like it came from the same person. Furthermore, Drupal's core and its contributed modules and themes live in one central CVS repository, there is peer-review of code and a security team that constantly reviews both core and contributed code, and there is an efficient system for notifying site-owners of new releases (of Drupal's core and contributed modules). These provisions organically ensure a high qualtiy of standards.
Joomla's contributed extensions, on the other hand, each bear the handwriting of the code's author. While this isn't inherently bad, more standardized code breeds efficiency. Also, while there is a great Joomla Extensions Directory, the extensions packages themselves are downloaded from sites external to joomla.org -- again, less standardized.
Joomla has many great templates available in the community, and in this area, Joomla has the advantage over Drupal -- it's easier to find a professional-looking template to skin your Joomla site than it is to find one for your Drupal site. That's not to say that great Drupal themes don't exist or that it isn't possible to develop a great Drupal theme. Just the opposite. The themeing level of Drupal is very powerful, and exposes Drupal core functionality more effectively than the templating level of Joomla takes advantage of its core functionality.
The line is there in the sand, so to speak, and I've taken a big step to the side of Drupal. It is a joy to work with. To be clear, I'm not saying Joomla is bad. Although I haven't touted it's many strong points, I welcome debate from the other side. For I believe that from this debate -- this competition between the two leading open source CMS solutions -- that both will be strengthened, and the community at large will only learn and benefit.
Posted at 09:32 am by Conor McNamara
Contact DPCI to learn more about our Web content management systems,
digital asset management solutions,
online collaboration software,
custom development,
multi-channel publishing systems, and
workflow management solutions.
First of all, thanks for reading and thanks for your comment... Perhaps "hack" was too strong a word and I was a bit aggressive in my phrasing. What i was trying to convey is that, in my experience, many Joomla extensions that add seemingly basic functionality (for example, custom user groups), add another thick layer of data management (more admin screens that are disparate from the many that Joomla already has) and also significantly alter the data structure so that trying to uninstall the extension causes major problems... There is less of a "hand shake" between extensions and core than there is in Drupal, where the core opens itself up more gracefully and thoughtfully to extendability. Rather than "finger-pointing", I hope this explanation helps. Again, thanks for keeping me honest!!!
1) Yes, the embedded file editor in Joomla (and other CMS solutions like Wordpress) is a great feature. It points to the popular claim that "Joomla is for end users as Drupal is for programmers". So, theme development in Drupal (changing your site's look and feel) all happens by setting up templates, CSS, etc. using code-editing tools. Furthermore, changes need to be uploaded to the file system before the results can be viewed on the site, adding another "step" to the process. In terms of previewing changes before they are "committed", when you're doing a major overhaul of a theme (or developing one from scratch), it's optimal to do your development in a coding environment, rather than a web browser because of the robust tools you can harness from these programs (among plenty of other reasons)... So, you've pointed out a great feature of Joomla for making "quick tweaks", but for a development-staging-deployment cycle of pushing changes to a live site, Drupal does just fine without this feature.
2) You bring up a good point. We all need to eat (even developers!!!), so money can be a great motivator, and there's no doubt in my mind that there is great customer support and great developers in the Joomla community (I do not dispute that AT ALL). But, money isn't everything. Drupal developers (and Joomla-, and other open-source developers), in general, write, contribute and continually enhance their modules/patch/extension/widget/what-have-you because they have identified a need and have seized the opportunity to satisfy it. Personal gain, in many forms, is part of it, but the driving mechanism for ensuring that the "cream rises to the top" in the Drupal community is asking this of the contribution: "does it fulfill the original need, and how well?", and a sort of Darwinism takes its course as the community tests, edits, responds to, and adopts the contribution... Your point that "the coding for the modules being written by different people can be a good thing" is precisely right, and this a great benefit of all open source software development, Drupal and Joomla alike. As for Drupal's admin interface and the many issues end users have with it, I could write another blog post altogether (and perhaps I will!). I believe that Drupal's administrative areas are very strong and highly developed, but I also agree that there is a lack in usability. I am not alone in this, and the Drupal community is working very hard to address these issues and remedy them. With your experience with both Joomla and Drupal, you are in a great position to offer your feedback to the Drupal community in this area. Check out drupalusability.org!
I hope this helps further clarify, and I hope you give Drupal another look... Thanks again for your comment!
After attempting some module development within Drupal -- I was actually a bit turned off by Drupal's design. It's done without object oriented PHP (mostly using PHP 4 design principles) and attempts to recreate basic and fundamental object oriented concepts, at the application level. Polymorphism exists in PHP -- it doesn't need to be redone at the application level.
From a programmer's perspective, I find Drupal to be in need of a massive rewrite. Definitely, just my very humble opinion. This isn't meant to take away from the awesome application that is Drupal.
Ethan,
Here's a good article on the pros and cons of Joomla!, from Mike Johnston's cmscritic.com Website. Addresses your question.