There is a war going on. The rules are not clear, the participants might be slippery, and there is a lot of code involved, but in the end there is a single winner. This war is the CMS competition game and WordPress 3.x, Drupal 6.x and Joomla 1.x are the players.
You need to know from the start that this comparison is not from a strict technical perspective. It’s more like a general overview, and based on experience of building plug-ins with the same functionality for all three of them.
WordPress is a mess.You can’t find anything useful and if you find something, it’s probably obsolete. Their site is lacking documentation updates and if you need anything you have to look at the source code to understand it. The only good thing is the community. You might get some help from them.
Drupal is much better at this chapter. Usually you find some article online with some starting tips and you go from there. It’s not perfect but it’s a way.
Joomla is almost as bad as WordPress. You get the impression they explain things, but in the end you realize you got nothing. If you have a question YOU have to find the answer for it. The community will not help with harder questions so you’re alone in the dark.
2. Multilingual Support
WordPress doesn’t support multi-language integration. All you can do is save the information in the same database table and try to use different templates to display the information. Another solution is the WordPress Multilingual Plugin (WPML) that can do this job for you.
In Drupal you just need to activate a core module named Locale: multi-language support. It’s there from the start but it’s disabled. After this you can start translating the content in different language from the interface.
With Joomla, you will need an extra module to do the work for you. The solution it’s called Joomfish and it’s very easy to install and administer. Because it’s not in the default core this is however an impediment.
3. Code style / learning curve
WordPress is a procedural framework. You use hooks to add functionality. You are not forced to use the procedural style and you can still use oop for your classes but the overall feeling is that you are using a rudimentary framework.
Drupal it’s better then WordPress but it’s still using hooks to interfere with the normal work-flow.
Joomla makes all the difference. You feel the processional and enterprise framework at work. It’s the first cms that uses a true OOP style for the core and it makes you use a MVC structure for your extensions. Truly awesome to work with.
4. Extra functionality
In WordPress extra functionality it’s added via plugins. The website has a lot of them and you can find almost anything you can imagine.
In Drupal the plugins are called modules and you can use them to add extra features.
In Joomla they are called plugins, components and modules. Ya..I know.. The most popular are the components that work very similar with drupal and wordpress plugins. The Modules are something similar with the Drupal blocks. Their primary goal is to create blocks of content so you can show them to the end user.
5. Administration Interface
WordPress has a very clean interface. It’s easy to navigate around and you can find with ease what’s your interested on.
Drupal is a mess. Every thing is put together in a few submenus and you will forget each time where you can find the option you’re looking for. You can customize the menu of course but we’re talking about things out of the box.
Joomla has a very sharp look. Usually it’s easy to navigate around but some times things might get a bit confusing. It looks good and it’s usable ; that’s an important thing.
6. Helper functions / HTML
WordPress has zero support for html object. What I mean by this is you can’t just use a helper function to generate a dropdown list. You have to write by hand the entire html code.
In Drupal using something like a grid with pagination it’s really a pain. You can do it but until you understand how you will grow a beard.
In Joomla you have a lot of help. You can create a grid with pagination with very few lines of code. Also there is a special syntax for a lot of elements including a dropdown list.
7. General look and feel
WordPress has a great look and feel to it. It’s simple and the advance feature are there but they are hidden from your first eye scan. For it’s purpose it clean and easy to use.
Drupal is really a clutter. Even the themes seem bulky and everything seems to run in slow motion. You need to put a lot of effort into making Drupal looking like a professional website.
In Joomla the feeling is somehow mixed. From the installation you feel this is something professional, but everything seems a bit to shiny and enterprise based.
8. Text translation
Wordpres and Drupal have both went the same way. Using similar function like _e or __ WordPress will look for locale translations when it’s necessary.
In Drupal to translate your plugin you actually need to install another plugin , create PO files and translate them. This seems really difficult. Every text you need to translate will be put in a function like this t(‘Translate me’) and then when time comes this text will be extracted from your file and you can translate it.
In Joomla the translate process is really great. All you have to do is write an abstract text in a function like (‘THIS_IS_THE_TEXT’) then in a separate ini file you can write the translations.
9. Database support
WordPress only works with mysql and there are no future plans to improve this.
Drupal works with both postgresql and mysql. There is a level of abstraction that you can use to save information into the database. You have to be careful with the syntax and use generic SQL syntax for everything to work on both of them. Even the recent core had a problem because of this and you need to apply a patch to do a search in postgresql.
Joomla works with mysql. The good news is the PostgreSQL and PDO drivers are on the way and for this Joomla is deserving an extra star.
WordPress problem it’s the lack of back compatibility. With poor documentation you will have to dig a few hours before finding and understanding how a function should work.
Using the internal Drupal API is a pain , you need all kind of hacks to resolve your problems and a good example is the Form Api.
Joomla has a good API but the lack of documentation makes it hard to understand.
Wordpres has a good description of the process “Basically all you need is to checkout the tests from SVN and to create a database and a wp-config.php.”. PhpUnit is the WordPress choice for unit testing.
Drupal – SimpleTest is very well integrated using an internal module. You write your tests and then run them from the Drupal administration menu. Works pretty well, it’s easy to install and use.
Joomla supports – PhpUnit. What you need to do is download the latest version from their repository and in there you will find a test directory. You can write your script in there and the bootstrap file will be included for you.
12. Who is behind ?
WordPress has a GPLv2 licence.Matt Mullenweg and Mike Little were co-founders of the project. WordPress is closely associated with Automattic, the company founded by Matt Mullenweg.
Drupal it’s an open source project. Dries Buytaert is the original creator and project lead for the Drupal.
Joomla has a GNU licence. Joomla was the result of a fork of Mambo. Open Source Matters, Inc. (OSM) is a not-for-profit formed under United States and New York state law that provides organizational, legal, and financial support for the Joomla! open-source project.
What should you choose and why
WordPress is not really a CMS. It started as a blog and you should see it’s limitation. Of course with the next version it might make the gap smaller but this is not the moment. The true intent for this web application is to have an easy way to create a professional blog, with a great interface to administer it. Don’t try to hack it and start dreaming of great application because the effort to learn it will not make it worth it. You are much better with other alternatives. So keep it simple, if you want something simple and clear use it, if you need a lot of customization then use something else and don’t kill the developers.
Drupal is really a great solution. But again the target is pretty clear. You need to be a good php developer in order to use it. You can’t just start installing things and hope they work. The learning curve is much steeper but in the end the Cms is very powerful. The only problems is, it might feel a little sluggish and counter intuitive. A very big menu, with very many options and one million available plugins that might or might not work. Don’t try it if you don’t have a basic php knowledge and some server configuration skills.
Joomla seems a great solution. It’s a true CMS that just works. It’s easy to use but seems ahead of it’s time. From the installation screen to the article publishing you will be pleasantly surprised. It’s very strange there is no buzz about it. It’s like they keep it to them-self and the community doesn’t feel so close and helpful like the Drupal community.
What’s your favorite CMS ? Any opinion regarding the best one around ?