If a user is thinking about creating a website or a blog, they will certainly be confronted with the choice of a website content management system. Resources, which the owner of the future web portal will encounter in the process of getting acquainted with popular CMS, give a comparative analysis on behalf of webmasters and ordinary users. But there is little information about which system is best for developers. In this article, we'll go deeper into the features of two CMSs – Joomla and Drupal. We will make a technical comparison of the systems, consider their features and understand the difference in approaches to code implementation.
Any content management system starts with usability. This includes ease of entry, learning curve, and, of course, the user interface.
If we are talking about Joomla and Drupal – both CMS are focused on programmers and require knowledge of HTML and PHP. Blogs devoted to content management systems follow the same belief: the easiest and most convenient CMS is WordPress, and the heaviest is Drupal.
As for the implementation of complex projects, the primacy is given to Drupal due to a large number of modules, WordPress is the least suitable system for creating complex web pages. Joomla is a kind of "golden mean" in these categories, and if you compare the system on behalf of the webmaster such a conclusion is true.
Websites in Drupal are created using two tools – views and blocks. The webmaster has more flexibility in creating complex pages. They do not need to have knowledge of how to program modules.
As for Joomla, the system offers similar sets of tools (called components in the documentation), but they are difficult to use without special knowledge. If you need to quickly create a complex page without knowledge of development, Drupal is the best fit.
However, creating special custom features is a different story. A modular user interface and flexible content management are not enough right now. Without additional software, any site will remain unoptimized, heavyweight, and uncomfortable, and the available modules do not always meet requests.
Although Drupal provides flexible page creation tools for the webmaster, administration with this CMS remains complex and has a steep learning curve. Users will have to hire not only a webmaster but also a developer who is actively using Drupal. It will take the average user a lot more time to learn Drupal than if they spent mastering Joomla. The Drupal console is less friendly to novice developers than the Joomla tools.
If a developer opens the source code of a page written in Drupal, parsing, and understanding what is happening will cause great difficulty. Setting up Drupal is not easy because the system uses a poorly structured interface. Joomla, on the other hand, uses an object-oriented framework that follows the MVC pattern. There is an integration of a large number of templates, such as the handy Listener, not to mention others.
A competent developer familiar with Drupal (whose costs are much higher) will not save the customer from the risk that the site will be a structureless branching system with a bunch of dependencies and exceptions. This creates a lot of problems in the future when you need to make changes, but it is impossible to do it in the current system, as other functions are bound to break.
To consider the differences between Joomla and Drupal, let's break down their working principle into 5 categories. We will identify commonalities and different approaches in the implementation of tools, we will understand which content management system meets the requirements of the developer.
Consider how Drupal manages information from the server:
First of all, you need to define the two CMS approaches to code creation. Joomla is an object-oriented system. As for Drupal code, although it uses a similar coding method, many tools use procedural PHP type.
Before Drupal 9, the CMS implemented two old design patterns that are considered bad in the programming community:
As for Joomla, the system uses new design templates:
These patterns use the popular Symfony2, Zend frameworks. The Database Abstraction Layer (DBAL for short) design pattern is better integrated in Joomla. If a developer needs a full-fledged ORM, Joomla can use Doctrine.
The introduction of modern programming practices in Joomla is the result of continuous improvement of the CMS, while Drupal is updated with a delay of several years. The development of Joomla is made possible by an active Joomla community.
Joomla has an extremely clear and well-designed API. Drupal is written in unintelligible code with poor organization of the structure. If we make an analogy, Joomla is like a Christmas tree in its architecture. Drupal can be compared to a molecule called a buckyball.
A hierarchical "tree" structure is available to the developer on Joomla. The main trunk is the Joomla Core. On the trunk are placed large branches (APIs), which are joined by smaller branches (components and widgets). On the branches are the leaves (widgets, modules). You can easily attach additional components.
It is possible to use article management features, and the benefits of Joomla security tools (access levels and controls). In the components are subcomponents, there is an opportunity to build a path to someone else's branch. But, in general, the branches have minimal contact with each other.
The architecture of Drupal is like a ball-shaped object with many points on the surface called modules. Each extension is capable of connecting to any of the created modules. That is, because of the tight integration, all components interact with each other. This structure is difficult to understand. Any added feature will reduce the quality of the code even more. In the new versions, Drupal got rid of hooking, which noticeably simplified the work with the code.
To read one simple page, Drupal requires about 100 requests. CMS Joomla is lighter and more optimized, the core system is much faster. The minimum memory for Joomla is 512 MB, Drupal needs at least 2 GB.
To improve the performance of resources with large traffic and extensive database, Drupal uses Solr. For Joomla there is Sphinx, this tool is written in native C++ code. The tool is much easier and faster. At the same time, the programmer does not need to add Sphinx for most resources. Joomla performance is enough to work quickly "out of the box".
Joomla copes with heavy traffic and can quickly access the database under heavy load. Sphinx is used if a significant performance gain is required. The combination of Drupal and Solr is unable to compete with solutions for Joomla.
The above conclusively shows that, contrary to the misconception of most, Joomla is much better suited for developing large and complex web resources than Drupal.
Most benchmarks agree that Joomla is faster and uses fewer resources if you do not use caching. At the same time Drupal sites are faster with cache enabled. In practice, properly configuring the cache in Joomla will outperform Drupal in terms of performance. In addition, the cache of Joomla, consumes fewer resources compared to the cache of Drupal.
The argument for choosing Joomla over Drupal is linux.com. The developers working on this site are known for their obsession with code quality. They are role models for other programmers.
The Linux Foundation members rated Joomla with 5, while Drupal received only 3 stars. Dan Lopez, web architect for linux.com, said in an interview that he chooses Joomla. Although many US government sites are built with Drupal, the fact that the main Linux site uses Joomla tilts the tide in favor of the latter.
Compared with the community of open-source developers Drupal, the community that supports Joomla, many times larger. That is, programmers choose a system that is easier to understand, convenient and lightweight.
From a business point of view, companies that choose Drupal face difficulties in finding specialists. High-quality experienced developers of this CMS are much less, and their services are more expensive than those of Joomla programmers. Most developers prefer to write code in Joomla. They often reject requests that are related to Drupal.
Drupal 9, which comes out in 2020, hasn't solved many problems since Drupal 7 and Drupal 8. The content management system got the introduction of the Symfony2 framework and the Twig 2 template compiler, but the complex code structure has not gone anywhere. Part of the CMS tools use object-oriented approach, the system got rid of hooking, but completely from the procedural method Drupal has not gone away.
Another problem was backward compatibility. Site on Drupal 7 (support expires in 2023) can not be quickly transferred to Drupal 9. With Drupal 8 appeared the mechanism of depression (where obsolete features are removed from the core), which slightly improves inheritance with the transition to the new version.
Joomla as well as Drupal are good enough to implement any project. In this case, the complexity of the site does not matter, each system is able to implement any requirements. Joomla has a higher priority due to the rapid introduction of new features, the use of structured and clear code, and adding of features without the risk of "breaking" the whole system. Drupal is gradually "catching up" Joomla, but no one knows when these CMS equal in speed and ease for the developer.