The Cheeky Monkey Media Blog
A few words from the apes, monkeys, and various primates that make up the Cheeky Monkey Super Squad.
Drupal: CMS or CMF?
April 7, 2014 / Rick BjarnasonIs Drupal a CMS?
At first glance, this might actually seem like a silly question. However, let’s dig in a little deeper. I am sure most people who know Drupal would answer with an emphatic, “Yes, of course!” But I’m afraid the answer is not so easy.
If you dig a little deeper, you will find many conflicting opinions.
For instance, if you go to Drupal.org you will find them describe Drupal as:
“Drupal is an open source content management platform powering millions of websites and applications.”
But on Wikipedia they published:
“Drupal is a free and open-source content management framework (CMF) written in PHP and distributed under the GNU General Public License.”
(For the sake of this argument let’s assume that “platform” and “system” are relatively the same thing.)
Maybe this confusion comes from the understanding of the two terms CMS and CMF. I decided to do a bit more research on Wikipedia to see what they say.
According to Wikipedia here are the definitions of both:
“CMS
A content management system (CMS) is a computer program that allows publishing, editing, and modifying content on a website as well as maintenance from a central page”
“CMF
A content management framework (CMF) is a system that facilitates the use of reusable components or customized software for managing web content.”
Wow… I am not sure how useful that is. So I will try to break it down a bit more.
A few things to consider.
A Content Management System, should, in essence, be ready to go right out of the box -something that a non-developer can easily set up to use. The sole purpose of the CMS is to manage content (a popular example is WordPress). Because we‘re a group of big kids here at Cheeky Monkey Media, we like to think of a CMS as a Transformer. For example; you can build a robot or you can build a car, but not much else
A Content Management Framework is more like a box of Legos. It could be used to make something very simple, or in the hands of an expert, it could be used to make something VERY complicated.
One of the popular views of a CMF is that it has to be based on an MVC (Models, Views, Controllers) architecture. Some examples in the PHP world are CodeIgniter and CakePHP
You might be asking yourself….why? I find that this line of reasoning is very confined and serves no real purpose. A framework should not be defined by its parts, but by how you use it.
To Recap
A CMS is quicker and easier to use, but you are limited in how far you can extend it, however; with a CMF the sky is the limit.
So where does Drupal fit in? Well, I am fully in the Framework camp, but to prove my point I think it is important to look back at where we came from, which we will do in Part 2.
CMS vs CMF
In Part 1, we discussed whether Drupal is a Content Management System or a Content Management Framework. The Monkeys believe it is a Framework, but to fully understand this evolution we need to think back to how Drupal began.
In about 2001 Dries Buytaert released Drupal. It started out just as simple forum software – really just a knockoff of slashdot. However, thanks to the invention of the Node, it quickly evolved from there.
What is a Node? Well, it is a piece of content before and still is today. That’s it. Nothing really fancy about it, but back then all the pieces that made up a Node, were contained as a whole. A better way to understand it would be to state it like this; we could not easily create Nodes; we were adding pre-built solutions (like recipes and news) and organizing them.
Up until Version 4.6, Drupal was still a Node management system or a CMS.
But then something changed…
In Version 4.7, Drupal now had the ability of two fabulous Modules called CCK and Views. In my professional opinion, this was the real turning point for Drupal. This is when it stopped being a CMS and started to become a true Framework.
This is when all these pre-defined Nodes started being replaced with “text-fields” “date-fields” and “image-fields“. No longer was we confined to using a pre-built solution, we were instead encouraged to build our own. The “recent news items” block got replaced by the “build your own news list however you want” block, tailored exactly to your specifications.
Fast forward a few years to Drupal 7 and you can see that the transformation is almost complete. No longer will you find Recipe Modules for download. The expectation for Drupal these days is that you will build your own content.
The Verdict
Remember our earlier definition, from part 1?
“CMS
A content management system (CMS) is a computer program that allows publishing, editing, and modifying content on a website as well as maintenance from a central page”
“CMF
A content management framework (CMF) is a system that facilitates the use of reusable components or customized software for managing web content.”
I feel that Drupal is not a Content Management System (CMS), nor has it been for some time. Instead Drupal has evolved and is now a Content Management Framework (CMF), from which you can build a CMS tailored specifically for your needs.
What Drupal is today is a tool for building a content management system. For someone looking to build a Drupal site, that’s an important distinction to understand. Drupal is not a CMS. It is the framework with which you build your own CMS, to your specifications, to suit your needs.
It is a Content Management Framework.