In modern Content Management System (CMS) world there are two major figures - Joomla (descendant of Mambo CMS ) and Drupal. They both are open source and have large comunities with enormous amounts of extensions and themes. It's hard to choose which one to use without trying them out. As usually, there are more options - home grown custom programming or even building your own CMS (which I was once stupid enough to do). Programming from scratch is always fun and beneficial for your skills, however, if you need things up and running in no time or you don't do (or don't want to do) any programming, using a CMS is the way to go.
If you are digging for CMS comparisons and trying to decide which one is best for you, here is a quick and dirty answer - go for Drupal, you won't regret it.
Why?
After test-driving them both I've came to these conclusions:
- Joomla is bloated, Drupal is minimal
- Drupal is easy to use and intuitive, Joomla is confusing
That was more than enough for a minimalist like me.
Here are some statistics from CMS Matrix for a more detailed comparison. It shows that Drupal is extremely modular and Joomla has a heavy core, thus a terrible architecture. That means Joomla is hard to extend and messy under the hood. Drupal, on the other hand, looks beautiful.
Product | Drupal 6.2 | Joomla! 1.5.3 |
Last Updated | 4/10/2008 | 5/31/2008 |
System Requirements | Drupal | Joomla! |
Application Server | PHP 4.3.5+ | Any that supports PHP (Apache recommended) |
Approximate Cost | Free | Free |
Database | MySQL, Postgres | MySQL |
License | GNU GPL | GNU/GPL v2 |
Operating System | Any | Any |
Programming Language | PHP | PHP |
Root Access | No | No |
Shell Access | No | No |
Web Server | Apache, IIS | Apache |
Security | Drupal | Joomla! |
Audit Trail | Yes | No |
Captcha | Free Add On | Free Add On |
Content Approval | Yes | Yes |
Email Verification | Yes | Yes |
Granular Privileges | Yes | No |
Kerberos Authentication | No | No |
LDAP Authentication | Free Add On | Yes |
Login History | Yes | Yes |
NIS Authentication | No | No |
NTLM Authentication | Free Add On | No |
Pluggable Authentication | Yes | Yes |
Problem Notification | No | No |
Sandbox | No | No |
Session Management | Yes | Yes |
SMB Authentication | No | No |
SSL Compatible | Yes | Yes |
SSL Logins | No | Yes |
SSL Pages | No | Yes |
Versioning | Yes | No |
Support | Drupal | Joomla! |
Certification Program | No | No |
Code Skeletons | Yes | No |
Commercial Manuals | Yes | Yes |
Commercial Support | Yes | Yes |
Commercial Training | Yes | Yes |
Developer Community | Yes | Yes |
Online Help | Yes | Yes |
Pluggable API | Yes | Yes |
Professional Hosting | Yes | Yes |
Professional Services | Yes | Yes |
Public Forum | Yes | Yes |
Public Mailing List | Yes | No |
Test Framework | Free Add On | Yes |
Third-Party Developers | Yes | Yes |
Users Conference | Yes | Yes |
Ease of Use | Drupal | Joomla! |
Drag-N-Drop Content | Free Add On | No |
Email To Discussion | Free Add On | Free Add On |
Friendly URLs | Yes | Yes |
Image Resizing | Free Add On | Yes |
Macro Language | Free Add On | Yes |
Mass Upload | Free Add On | No |
Prototyping | Limited | Yes |
Server Page Language | Yes | Yes |
Site Setup Wizard | Limited | No |
Spell Checker | Free Add On | No |
Style Wizard | Limited | No |
Subscriptions | Free Add On | No |
Template Language | Limited | Yes |
UI Levels | No | Yes |
Undo | Limited | No |
WYSIWYG Editor | Free Add On | Yes |
Zip Archives | No | No |
Performance | Drupal | Joomla! |
Advanced Caching | Yes | Yes |
Database Replication | Limited | No |
Load Balancing | Yes | Yes |
Page Caching | Yes | Yes |
Static Content Export | No | No |
Management | Drupal | Joomla! |
Advertising Management | Free Add On | Yes |
Asset Management | Yes | Yes |
Clipboard | No | No |
Content Scheduling | Free Add On | Yes |
Content Staging | Free Add On | No |
Inline Administration | Yes | Yes |
Online Administration | Yes | Yes |
Package Deployment | No | No |
Sub-sites / Roots | Yes | Yes |
Themes / Skins | Yes | Yes |
Trash | No | Yes |
Web Statistics | Yes | Yes |
Web-based Style/Template Management | Yes | Yes |
Web-based Translation Management | Yes | Free Add On |
Workflow Engine | Limited | No |
Interoperability | Drupal | Joomla! |
Content Syndication (RSS) | Yes | Yes |
FTP Support | Limited | Yes |
iCal | Free Add On | No |
UTF-8 Support | Yes | Yes |
WAI Compliant | Limited | No |
WebDAV Support | No | No |
XHTML Compliant | Yes | No |
Flexibility | Drupal | Joomla! |
CGI-mode Support | Yes | Yes |
Content Reuse | Limited | Yes |
Extensible User Profiles | Yes | Yes |
Interface Localization | Yes | Yes |
Metadata | Yes | Yes |
Multi-lingual Content | Yes | Free Add On |
Multi-lingual Content Integration | Free Add On | Free Add On |
Multi-Site Deployment | Yes | Free Add On |
URL Rewriting | Yes | Yes |
Built-in Applications | Drupal | Joomla! |
Blog | Yes | Yes |
Chat | Free Add On | Free Add On |
Classifieds | Free Add On | Free Add On |
Contact Management | Free Add On | Yes |
Data Entry | Free Add On | Free Add On |
Database Reports | No | Free Add On |
Discussion / Forum | Yes | Free Add On |
Document Management | Limited | Free Add On |
Events Calendar | Free Add On | Free Add On |
Events Management | Free Add On | Free Add On |
Expense Reports | No | Free Add On |
FAQ Management | Yes | Yes |
File Distribution | Free Add On | Free Add On |
Graphs and Charts | No | Free Add On |
Groupware | Free Add On | Free Add On |
Guest Book | Free Add On | Free Add On |
Help Desk / Bug Reporting | Free Add On | Free Add On |
HTTP Proxy | No | No |
In/Out Board | No | No |
Job Postings | Free Add On | Free Add On |
Link Management | Free Add On | Yes |
Mail Form | Free Add On | Yes |
Matrix | No | No |
My Page / Dashboard | Free Add On | No |
Newsletter | Free Add On | Free Add On |
Photo Gallery | Free Add On | Free Add On |
Polls | Yes | Yes |
Product Management | Free Add On | Yes |
Project Tracking | Free Add On | Free Add On |
Search Engine | Yes | Yes |
Site Map | Free Add On | Free Add On |
Stock Quotes | Free Add On | No |
Surveys | Free Add On | Free Add On |
Syndicated Content (RSS) | Yes | Yes |
Tests / Quizzes | Free Add On | Free Add On |
Time Tracking | Free Add On | No |
User Contributions | Yes | Yes |
Weather | Free Add On | No |
Web Services Front End | Limited | Yes |
Wiki | Free Add On | Free Add On |
Commerce | Drupal | Joomla! |
Affiliate Tracking | Free Add On | Free Add On |
Inventory Management | Free Add On | Free Add On |
Pluggable Payments | Free Add On | Free Add On |
Pluggable Shipping | Free Add On | Free Add On |
Pluggable Tax | Free Add On | Free Add On |
Point of Sale | No | Free Add On |
Shopping Cart | Free Add On | Free Add On |
Subscriptions | Free Add On | Free Add On |
Wish Lists | Free Add On | Free Add On |
Hope this helps to make a choice.
No offense, but I've regretted Drupal every time. It's great for simple designs and simple websites, but as soon as things get a little bit custom, all heck breaks loose.
ReplyDeleteAlso, if you look at the code behind the scenes, it is a nightmare of spaghetti. When developing with modules, turn on the query monitor and you'll see hundreds or even thousands of queries where a custom app would use less than ten.
I suppose I should have said that Joomla! isn't the answer...
ReplyDeleteThousands of queries may originate from poorly written modules, can't blame Drupal for that. And even if code is a spaghetti mess (which is quite a usual case with PHP...), main idea of CMS is that you don't get down to the internal code at all... Anyway, I haven't done anything big with CMSes yet, I'd most likely go for custom programming for big projects.
ReplyDeleteWhy not use something like Silverstripe, which in itself is an actual framework. Customize the CMS yourself, plus build in additional functionality. I've never used Joomla, but my 1 experience with Drupal was enough to know never to use either one of them again.
ReplyDeleteI've been using MODx for the last 3 years and could not go back to joomla. MODx is one amazing system (with a learning curve).
ReplyDeleteThe problem with the module spaghetti code is the more you try to customize it- the more painful it gets: for upgrading, customizing output, and adding new options for input).
But MODx outputs no default HTML. You have complete control.
Now there are some things MODx doesnt have yet like versioning. But for most sites, I think it's a charm.
Joomla and Drupal are both great for basic or niche (community for Drupal) sites. But if you want an easy to maintain CMS with kick-a$$ custom design, MODx is for you.
Chuck
Just my two cents
ReplyDeleteI think Drupal is now GPL v2
(http://drupal.org/node/272652)
Drupal can run on a LightHTTP webserver (ie http://realize.be/drupal-lighttpd-clean-urls-made-easy)
Btw, great comparison chart, congrats!!!
What about Typo3? They have hundreds of extensions, you can get commercial support if you want to and they have a clean design. Check out the upcoming Version5! Their mission is to build the best open source cms worldwide ;) and I think they are on the right track ... silverstripe also seems to be nice ...
ReplyDelete"Joomla has a heavy core, thus a terrible architecture. That means Joomla is hard to extend and messy under the hood."
ReplyDeleteThat's rather jumping to conclusions without backing it up, if you ask me. If you're talking about joomla 1.0.x, I agree, but Joomla 1.5 has a new object oriented framework, and is not messy at all. There are over 3000 extensions for Joomla, which proofs that it is in fact easy to extend.
What keeps surprising me about Drupal, is that they still stick to an outdated procedural programming style. PHP is moving more and more to OOP. Trying to force a programming style on a platform that's moving in a completely different direction is a weird choice to make.
The winner: Expression Engine
ReplyDeleteIam currently using two frameworks: Drupal and the Zend Framework. The first of course for simple to medium sites and the later for custom applications.
ReplyDeleteThere are two things that annoy me about drupal:
- The documentation, their writers assume to much of the reader. Its basically a RTFM manual.
- I find hooks very dirty. Iam a big supporter of OOP.
That said, the vast amount of plugable modules makes up for alot of its shortcomings.
I just opened Drupal's common.inc, 92 functions? I think one would expect a CMS framework to be OO these days. Im not trying to say that everything must be OO because it's cool etc but for the future growth and maintainability, it's necessary. And it does look bit like a spaghetti code. Another thing, why would you call a PHP file .inc?
ReplyDeleteJust some error, for Drupal:
ReplyDeleteo Graphs and Charts -> Free Addon
o SSL Logins -> Free Addon
o SSL Pages -> Free Addon
Bye
Drupal it's great with some modules: Content Contruction Kit + Views + Content Template. With these you get a platform to make whatever you want easily and with not so much programming. No similar extension for joomla (Free...)
ReplyDeleteYou might want to Check on the biggest joomla product ever released... Its got pre-made joomla websites with all the components and modules already installed(such as community site,shopping site and many more,you can install like the standard joomla), joomla video tutorials, extensions , templates and lots more...
ReplyDeletevisit : http://readymadejoomla.com/product.htm
I gather you didn't test drive these two systems long enough to really learn them, and to realize that some of the published specs on both of them are actually wrong. Having administered Drupal websites since version 4, and having tinkered with Joomla designs since 1.0, I'll add a few corrections.
ReplyDeleteFirst, you say "Joomla has a heavy core, thus a terrible architecture." This is a non sequitur. Drupal keeps its core light with lots of very strange hacks, making it extremely difficult to modify the source code if you ever need to (and yes, there are good reasons why you might).
Drupal also has the philosophy that it's "okay to break people's sites, but not their data." They're not kidding. Upgrading from 4.x to 5.x to 6.x, I've had my standards-compliant themes trashed every time. You can philosophize all you like about the architecture, but there's no denying that Drupal upgrades are a major PITA. Joomla takes the more responsible path of bending over backward to ensure backward-compatibility. That's one reason their code base is larger.
Joomla's architecture is well-documented, and built with the industry-standard Model-View-Controller design and extensive use of object-oriented constructs. However, honoring this structure sometimes makes components a bit slower, and you need to stay within the code's designed boundaries when modifying it. If you're a seat-of-the-pants programmer, you may find this annoying. I find it reassuring.
One very widely repeated claim is that Drupal is capable of multi-site installations "out of the box." Drupal is indeed designed to do this, but the feature is horribly buggy. I set up a multi-site configuration on one of my sites, and it was a nightmare. If you have a professional staff of full-time PHP coders and server admins at your disposal, the multi-site feature may be workable, but if you've got those resources, you could probably modify Joomla for a multi-site installation as well.
Next gripe: Drupal makes it hard to upload images. Seriously. Even in version 6.0, image upload requires substantial hacking. The modules that are supposed to provide this feature have also broken a few times, and each time it took the developers weeks or months to fix them. When every two-bit blogging application handles image uploads seamlessly, this omission from Drupal's core code is inexcusable.
Finally, Joomla wins hands-down for custom theme development. Drupal gushes hundreds of lines of idiosyncratic CSS from its core code, so every time you try to style some small annoyance in your layout, you find that the core is overriding you. This is appallingly bad design. Joomla theme overrides are trivial - they have a bit of a learning curve, yes, but once you pick up the logic you can make your theme do whatever you want.
Overall, I've come down on the side of Joomla, and am in the process of migrating one of my sites to it from Drupal. My personal site just moved from Drupal to Wordpress, and if you Google that comparison, you'll find there are legions of folks making similar migrations.
I've developed highly customized sites in both Joomla and Drupal. Drupal is more like a framework and is infinitely customizable without modifying the core code.
ReplyDeleteJoomla is not. At some point you have to make code changes, and when you try to upgrade you need to find those changes and re-apply them to the new version - an impossible task.
Anybody struggling with Drupal just hasn't grokked it yet. When you hit the brick wall in Joomla, switch to Drupal.
@Charles
ReplyDeleteYou obviously haven't used Joomla recently. The 1.5 version has something called template overrides. This make it possible to infinitely customize the raw data output of the CMS anyway that you want. Upgrading does not touch these template overrides, nor your template.
Having used both recently: Winner => Drupal... it's a real open source community. For example,
ReplyDeleteModules are free, Joomla community seems to want to make a buck. Can't even get developer copies with Joomla... can't test things out before you buy. Drupal, you just find what you want, plug it in, turn it on, and evaluate it against your needs.
Templates are free for the most part, though why anyone would use anything other than the Zen Template and code a complete custom design with it is beyond me.
There are tons of online tutorials, videos, examples and free code snippets... everyone wants to help in Drupal instead of trying to make a buck.
I found Joomla's 3-tiered content organization scheme (section/category/page) extremely limiting... and the fact that you can't set multiple categories to a content item kills it's usefulness as an advanced CMS for me.
The Drupal vs. Joomla arguments are tiresome because people keep arguing different perspectives with each person having widely varying requirements, expectations and assumptions ... none of them stated.
ReplyDeleteSo, the end result is usually that you've gained no information, but rather just heard a bunch of opinions that cancel one another out.
I believe there are two camps of thought worth considering:
The "quick solutions" camp: People who want to write as little code as possible and have very little budget and time. Generally these are personal sites, sites for tiny companies, etc.
The "design to spec" camp: People who have a functional specification based upon user requirements, design requirements, and whose specs have had no consideration for "what is possible" but only "what is needed". Then, they spend whatever time and budget are necessary to get it. These are major government sites, sites by venture funded or entrepreneurial companies, etc.
I have no experience with Joomla, and I would love to hear from people who do.
But, I have lots of experience with Drupal.
From my perspective, Drupal would be a loser in the "quick solutions" camp. It is hard to get point-and-click features that satisfy needs instantly without either customizing it, or lowering your expectations and accepting the often "nerdy" interfaces that Drupal provides out of the box. From what I have heard, Joomla does this better.
But, I am in the "design to spec" camp. Usually sites I develop involve multiple people, designs and specs written without regard to platform choice, many programmers, thousands of hours and tens of thousands of lines of code. In this regard, I have found Drupal to be extraordinarily good at providing base features which are highly customizable at with a very fine level of granularity. So far, if you what "exactly what you want", then I have to say I am very happy with Drupal as a platform and it compares favorably with major and often expensive CMS platforms.
It has problems. Performance is a challenge, and it is poorly optimized (despite the Drupal team's belief that they have highly optimized it). The flexibility and architectural model are so robust, however, that it is usually worth the effort to solve performance problems using clusters of servers using Varnish or some other reverse proxy, and there are some major projects underway to achieve this.
Drupal is also spaghetti. I wish Drupal were a clean object-oriented system which used inheritance as the foundation of its customization. I sigh whenever I see the intricate ways Drupal attempts to solve customization problems and realize how a good OO model in a good language (php is awful) would solve so many problems. But, strangely enough, Drupal is one of the best damned pieces of spaghetti code I have every used, and I am often surprised at how well the customization features actually *work* considering that, for the most part, it is built using software development techniques that would feel at home in the 1960's but are archaic by today's standards.
One thing that makes Drupal work so well is that the development group cares about the details of architecture. They care about code reuse, they care that everybody has a single, approved way of doing things. They are cautious about including new modules in the core, and before they do, they have to pass rigorous scrutiny by some very smart people. As a result, Drupal versions usually contain major and reelvant architectural enhancements, but contain few "visible feature" enhancements. For those of us who need the platform to be capable, Drupal keeps delivering, and we keep customizing and coping.
I would be curious if anybody has experience using Joomla to develop a website to a functional spec for a major company and using a large team effort. Did it go well?
Hello there,
ReplyDeleteCould you add the comparison table between them and Ruby on Rails?
Thanks
Here's he real truth about the most overrated CMS DRUPAL.
ReplyDeleteFirst I must be crazy I even picked Drupal.. LOL... It's ok but a huge trap and all the hype is crazy. The more you add to it the more goes wrong. Most of the contributed modules suck.. WTF.... Who's allowing these modules even to make it past CVS approval.
Also Why would you keep changing the API do it right the first time then add to it?
Seriously do not use Drupal if you plan on having a site with lots of features you will end up trashing it sooner or later I can guarantee that. I know I been working with Drupal for years now...
If you want a small site that doesn't need a lot of features then you will be OK.
Before posting a comment, read this.
ReplyDeleteComments with spam (links to Joomla / Drupal / web development services) will be deleted and reported as spam!
Currently I have project written using the Joomla 1.5
ReplyDeleteframework. And I was told that we might be migrating to Drupal.
So I decided to find out some info on this issue.
I've been using Joomla for 4 years already. Actually I started as
a Components developer for Joomla. And have been writing components, modules and plug-ins for it starting from the version of 1.0.x up to 1.6.x
And somewhere in between I decided to see the other world of software development and switched the company that was developing a social network system in a big team completely from scratch. That was made just to learn the real world OOP.
So what I was doing is trying to find out what all this war is about with Drupal and Joomla and what kind of people are involved in it. As it is said "First defined the problem and then find the solution".
People say "Drupal is for bigger project where you need scalability and Joomla is system for housewives who needs buttons to press".
That is partly correct up to some level.
But what happens when you are dealing with a very big system where you have to create more than 400 files to have all the functionality you want to have?
So what Drupal has to offer us? Hooks and Anchors. So I decided to read about the pattern.
The pattern itself is very nice and comfortable to use and you have well defined objects structure to work with.
But no much of OOP in the Drupal. Mostly it is just a structured code. Are we going 20 years back? Why did people invent OOP, all this Design Patterns?
Once I bumped on the comparison "How many files does it take to write a Hello World applications on both systems?" Drupal - 2 and Joomla 1.5 - 5.
If you are a novice it would be preferable to add only 2 files to add a feature. But isn't that subjective? What we have to look at, is the code scalability and architecture first.
Knowing that Joomla starting from version 1.5 introduced a well defined MVC pattern. Yes, it will take you to create 5 files for the first time. But later on while you add more they will be added in a very well defined way where you divide the logic from presentation. And with Drupal you will end up with a bunch of files where you have to always know the exact order of execution of each of them in order to add anything.
ReplyDeleteIn order to get familiar with Joomla framework it takes quite a long time and in order to know all of its features it takes even longer. I do still find out some interesting code features inside Joomla (And yes that is because Joomla has a lot of code inside) and that gives you a great way of expandability. The classes like JHTML, JDatabase, Elements etc. can be expanded very easily whenever you need to have something new. What drupal has to offer us isn't that much, but you will have to struggle.
Lets get back to the people involved in all this.
So there are 3 types I have found so far:
1. Newbies
2. Programmers (with not much of experience)
3. Others (Include OOP experinced programmers who worked with big and huge projects)
1. Newbies - use Joomla to learn what is CMS and how to use it to make a web site.
2. Programmers (with not much of experience) - use Drupal, have their web sites running and telling to the Newbies that they do not know a shit about web sites building. (man, of course they do not know anything)
3.Others - high experienced programmers write everything from scratch, using the Zend Framework, Code Igniter, KOHANA,etc. And this category includes the web site Administrators, Project Managers, and all the people who are not Newbies and not Programmers. They tend to be about 50:50 about this two CMS.
Then I decided to ask my fellow colleagues to look at both of this systems and they like Joomla more just because of the architecture.
To learn Drupal architecture and features it provides to developers takes less time than to learn Joomla architecture and features it provides in a code base(that is one of the reasons some people say that Joomla has poor architecture, it that they just cant understand it at first. it is completely OOP and you have to be familiar with design patterns to get familiar with it)
The question that I am looking for: is Joomla3 better architected than Drupal's spagetti hook design. I personaly was using and developing on Drupal for about a year. and I must admit that behind so called application framework comes hours of hacking till it works "development" approach... far from any application framework development workflow.
ReplyDelete