As you probably know in the land of Open Source Content Management Systems (or CMS) there is a lot of choice, but the two main players are Drupal and Joomla. When first choosing a CMS, it can be difficult to know which of these two (or the many others) to choose.
From a developer standpoint the core of a CMS is probably the most important. How is the code structured, how well thought out is the architecture. While this might not appear be important for you as an end user or non technical administrator, this does influence your user experience, so please do read on.
Drupal makes it possible to make your own content types using the Content Creation Kit(CCK). You can do this from the admin pages, so even if you aren’t very technical you can use it. This makes your CMS much more extensible.
In Joomla Content Types don’t exist, not even as an extension, all content is the same: (formatted) text with images. Making for example a calender is not possible in the default Joomla setup, without using workaround or hacks.
Drupal has sleeker, better structured code and doesn’t need hacks, workarounds or special modules to do basic things, which again makes it much more extensible. Drupal for instance has workflows, content approval, versioning, etc. all out of the box.
Menus, structuring your content
As Content Management Systems are all about structuring your content, this is a very important point.
Joomla uses a default Category/Section/Content structure, you can’t use more nor less then these 3 levels. So no deeper nesting, but also no flat menu structure possible. Joomla also has menu’s but these have to be made for each menu item. As stated earlier, Joomla has no content types (only text + images) and doesn’t have taxonomy (tags).
All above things are standard in Drupal, as they should be in my view in any decent CMS.
Any website that is faces the internet (as oposed to intranet websites) need to be secure and this be updated as soon as an exploit becomes known.
In the more recent Drupal versions (as of Drupal 6) you get a report showing you which modules (or your core Drupal) have updates. While it might not be that much of a hassle to register for the Joomla security mailing list, it is much more difficult to be updates of new veriosn of installed modules.
When it comes to user right, Joomla only has a couple of predefined user roles. These aren’t that well chosen and if you need to give your users some rights, you can’t except giving them a higher role, which might give them right they shouldn’t have.
Also the front and back end are strictly separated in Joomla, which is a real pain.
An important thing to consider when choosing an open source CMS (or any open source software) is the community behind it. This both in the sense of the number of developers involved as the amount of people using the software. I believe Drupal and Joomla are on par here, although Drupal is more recent and as such has a much livelier developer community.
Why Joomla isn’t better for smaller websites
Something you hear/read often is that Drupal is good for very large scale websites and Joomla more suited for small (to medium) websites.
In my view Joomla is just as heavy in administration and setting up as Drupal and has at least as big a footprint.
If you really need a small CMS, I’d go for WordPress, which also has a lot of add-ons and theme’s, but is more suited for blogs or personal sites where you only have one person adding content.
What is good about Joomla?
I’m not saying Joomla doesn’t get anything wright. There are a few point where it beats Drupal:
Module installation: on Joomla you just have to select a zip file whereas on Drupal you need to ftp a folder into the modules directory.
Making a layout template is aperenlty easier in Joomla. I found it took me much less time then in Drupal.
Most users seem to like the Joomla first impression better: it has icons, folding menus, default content after installation. In Drupal you can add icons and folding menu’s, but you need to install modules for this.
If you need something really simple, use WordPress, if you need a bigger, more robust CMS use Drupal.
To me, the main reasons not to use Joomla are the lack of granular user rights management and of content types.