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.
18 comments:
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.
Also, 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...
Thousands 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.
Why 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.
I'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).
The 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
I 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 ...
"Joomla has a heavy core, thus a terrible architecture. That means Joomla is hard to extend and messy under the hood."
That'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
Iam currently using two frameworks: Drupal and the Zend Framework. The first of course for simple to medium sites and the later for custom applications.
There 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?
Just some error, for Drupal:
o 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...)
You 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...
visit : 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.
First, 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.
Joomla 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
You 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,
Modules 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.
Post a Comment