March 03, 2009

Drupal vs. Joomla!

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.

Less is more

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.

Add-ons

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.

Hive mind

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.

Look and feel

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 bottom line

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

Technorati Tags:Technorati Tags:
I'm not aware of any major Joomla! extensions that hack the core. What are some examples you have in mind?
Elin,
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!!!
Great detailed evaluation. I've used all three myself and summarised when I would use each of these on my blog Drupal vs Joomla vs WordPress Comparison. I pretty much agree that Drupal has the best wide use and WordPress is great for blogging, but I also think that Joomla has it's place. I had one project where Joomla was pretty much the only option because of some modules that it had like JEvents and Docman. You could do the same in Drupal but with a lot more pain
very common question from Beginners is whether I should choose Drupal or Joomla or other CMS? I had to make this tough decision 2 years back and I thank myself everyday for choosing Drupal over other CMS. I am glad I did not quit when I found some things difficult. Drupal has a superior architecture and very SEO friendly. It can cater to your needs, it can be used for a simple FAQ site or a very large million visitor site.
I've looked at the Joomla 1.5 code and use it on my site How to Fool. Architecturally it's a disaster. I sincerely hope someone has a serious set of charts for that spaghetti bowl. I could care less about fluff-and-stuff. As the article says, give me tools to work with. I don't need a sandpile full of disjointed over-engineered classes. Way to Flirt Pretty is as pretty does. Look pretty.
I have used both Joomla and Drupal. I prefer Joomla over Drupal for the following reasons: 1) You can modify the css of the theme directly within the admin area of Joomla and instantly preview the results. That alone saves lots of time when you want to do a major overhaul of a theme. Drupal has no admin "backend" and therefore no place to make changes to the css and preview before committing to the changes. 2) Joomla modules - true, there are quite a few that need to be purchased (relatively inexpensively). However, customer service has been top notch with the modules I have purchased. I also think that the coding for the modules being written by different people can be a good thing - it provides a way for the best modules to rise to the top. People have an incentive to write good code that works - money. So I am on the side of Joomla rather than Drupal. If Drupal strengthened the admin area - then it might be a better race.
Hello, thanks for your feedback!
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!
I really liked this post. I'm deciding between these two right now. I have programmed in 5 languages, including assembly (I never want to go there again). I can see the power Drupal offers, and I like that. However, fast proto-typing is a real concern for me. And Joomla seems to have the edge here. I hated using Dreamweaver because it would bloat code, so I used FrontPage to do quick mock-ups, and then pluged in a lot of javascript and PHP code. .NET is my newest endeavor, it is a good Web dev environment - read, fast prototyping. Going forward, Drupal is going to become far more end-user friendly. At that time, it will be the best of both worlds. Until then, however, I think Joomla will remain the populist contender.
RE: It points to the popular claim that "Joomla is for end users as Drupal is for programmers".

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.
Insightful input, Adam, thank you.  However, I'm not convinced that a "massive rewrite" is warranted...  I found this article helpful: http://api.drupal.org/api/HEAD/file/developer/topics/oop.html.  The central issue you bring up is a very important one -- what is Drupal lacking and how can we make it better?  Because you're right, Drupal is awesome, but it's the act of examining its flaws, which you (and others!) have done here, that will help make it even more awesome.
Thanks for this blog post. I'm a non-developer, trying to decide which open source solution to use for a directory based website. I've heard varying viewpoints in regards to Joomla's effectiveness with SEO. Some say that the SEO extensions do the trick and others say that SEO with Joomla is a nightmare. What are your thoughts in regards to both Joomla and Drupal's inherent SEO capabilities? Do you know of any highly ranked sites using either of these systems? Thanks!

Ethan,

 Here's a good article on the pros and cons of Joomla!, from Mike Johnston's cmscritic.com Website. Addresses your question.

take a look at Google Trend, guys. No body like to use Drupal in this Earth at all. Compare Drupal with Joomla is jsut like compare the chicken with Phoenix. Joomla is 100 thousands hot and better than drupal! [url]http://www.google.com/trends?q=joomla%2C+drupal&ctab=0&geo=all&date=all&sort=0[/url]
Yeah Joomla is much easier and better, extensible than Drupal. I am prfessional in Web development, out company use Joomla to build at least thousand websites already without any problem. FAst, a lot of extensions. Drupal? No way! Dump it please
"Everything popular is wrong" - Oscar Wilde
Drupal is great but its themes, forum and e-Commerce not. It is like a skoda with mercedes motor & electronik.
Hey Conor, I enjoyed reading you post. Could you add a post that went through what type of customer is ideal for Drupal? I don't have a lot of experience with Drupal, but most of my clients are small businesses who want a good looking website that can be developed fast, mostly static and that they can handle the updates when needed. For these clients, they've been very happy with Joomla. I'm interested in hearing your opinion. Best regards, David Chu
Thanks, David!  You're absolutely right, it's all about finding the CMS solution that is a good "fit" for the customer.  This is a great idea for a future post, one I'll try to get up here soon, so check back.  I'll touch on some of DPCI's experience with this -- finding a happy medium between satisfying what the customer needs now, and anticipating what they'll want down the road.
I think this question is like asking a man who has two wives, to choose one. In my view Joomla has several advantages, but in the world of IT, advantages can be disadvantages and the other way round. a) a typical Drupal module usually requires 2 or more dependent modules, while in joomla, you have one complete module b) joomla archeticture is more logical, if you are to deploy a module, the process of managing that module is more logical. For example if you add a forum in joomla, you manage it independently, while in Drupal, you manage it through content c)Drupal has a steeper learning curve (already mentioned) i must conclude by saying, drupal is a better option for techies and people who have time to troubleshoot, but the rewards are fulfilling regards
I used Joomla for 3 years and pushed it to its limits. But something was still lacking with Joomla. I had to find out why programmers loved Drupal and what it offered that Joomla didnt. At first it was scary and very different, Drupal doesnt have a back end interface like Joomla and changing the terminologies from each CMS such as Modules, Blocks, Components, etc wasnt much fun either. However, after 6 months I can now do more with Drupal than I ever could with Joomla. See with Joomla you hit a wall, a huge wall, usually a design wall. You just cant get the designs you want out of Joomla without finding a programmer who's done it for you already. With Drupal, it's extensions allow you to bypass the programmer, which is funny because people associate Drupal with being a heavy programming. But it's actually quite opposite. Drupal has extensions which allow you to work with content and databases without ever touching a single line of PHP (CCK). Best of all, I can design ANYTHING I see now. On top of that, I dont have to mess with Forum or Comment Components and I have MULTIPLE levels of User Access Roles. Each user can also have their own small pictures...Try finding that in Joomla. Drupal also has built in RSS aggregation. I paid 25 bucks to get that same feature in Joomla. The best thing Joomla has over Drupal is Ext Explorer, which as someone mentioned allows you to access files and change the theme if you wish. Joomla also has Sigsui and Sobi, but guess what...I can recreate those MYSELF (not a programmer) with modules in Drupal, via CCK, Views, Panels. And I can tailor my site the way I want to and when it comes to design, being able to do anything you want is VERY VERY important. Joomla is a quick and dirty whore you pick up. Drupal is the girl you take home to your mother. Nuff said.
"Joomla is a quick and dirty whore you pick up. Drupal is the girl you take home to your mother." This analogy helped me with my decision. I'm gonna use Joomla for my personal site and Drupal for my public site. : )
Extremely helpful blog. Thank you Conor
Thanks for the blog. :) I am currently trying to choose between Joomla and Drupal, and this has certainly helped me; much appreciated. :)
I'm a web developer with a fair bit of experience with both front- and back-end. I've done plain-HTML websites and I've done completely custom CGI websites, but I'm realising I should probably start working with frameworks. So ... which one, for which kind of task? Does anyone have a rule of thumb, like "the site is of size X and content type Y and you want to spend no more than Z amount of time looking after it for the client, so you should choose this framework"? My question is a little open-ended, and I realise it may turn into framework-chatfilter or even "your favourite framework sucks", but that's OK, I wouldn't mind taking part in the same kind of conversation I'd have if I was having a beer with a bunch of web developers. I'm inspired to ask partly because I've got a project coming up and I have to decide on a system, and partly because I see people discussing the frameworks on Ask all the time and I see offhand remarks like "Oh, but Wordpress is a security nightmare!" and "Drupal, Ugh! Half the contributed modules don't even work properly!" and so on, and well, every system has its fans and its haters, I'd like to hear, politely, from all sides.
Hi Conor, I am a non programmer and I have prepared some sites in Joomla. It's really good CMS to work with, but I am keen to use Drupal after reading the blog, but as have seen the themes and templates on net of same they are not so good. Can you pls suggest any of site where I can get good templates of the same.
"Joomla is easier. Joomla has a great user interface." From its competitor I hear, "Drupal is more flexible and it has tagging." When caching is disabled Joomla can serve 19 pages per second, while Drupal can serve 13 pages per second. Hence, Joomla is 44% faster than Drupal. However, when caching is enabled Joomla can serve 21 pages per second, while Drupal can serve 67 pages per second. Here, Drupal is 319% faster than Joomla site. In other words, Joomla's cache system improves performance by 12%, while Drupal's cache system improves performance by 508%.
Thanks for this article. In the beginning I had to choose between Joomla and Drupal. Unfortunately, I was limited in time to build a site. I ended up choosing Joomla only for that reason. V1.5 had just come out, so I had to learn from scratch instead of using 1.0 and switching later. I'm now very proficient in Joomla, almost to advanced level. Unfortunately, there have been a lot of security releases lately. Just in the last month, there has been two. Now V1.6 is almost ready and that means a complete infrastructure change. I have a lot of sites now using 1.5. I would have to rebuild most of them to fit within the 1.6 structure. It is very frustrating. I am seriously considering taking the risk and switching to Drupal now.

More Blogs From Author:

DPCI In The News

Article by Jill Ambroz of Folio Magazine on the rise of the open-source Web Content Management System as a way for publishers to deliver content to their sites. > more

Alltop, all the top stories