A Deeper Look at the World of Drupal
Posted: July 23, 2014
Hello everyone, I’m a developer here at VisionPoint. Being a developer means I get to do this a lot:
All jokes aside, I have a much better respect for this scenario after the most recent winter when the heat stopped working in my house. Luckily, my wife and I have homeowners insurance, so after a quick call and a scheduled appointment a day or two later, a technician came out to the house to fix it for us. A few minutes after he got there I noticed the system kick in. Turns out rebooting the system, which was really just unplugging the electricity and plugging it back in, was all it needed.
Drupal, an open source content management system (CMS) has it’s own version of this. Any time a colleague or client has an issue with their Drupal site I first ask them, “Have you tried clearing the cache?”. This is just one example of the quirky processes of “the Drupal way”. There are many blog articles on the web today talking about what the Drupal way truly is, and even though there are many explanations, three of the best reasons to use Drupal from my perspective are flexibility, maintainability and the Drupal community.
A Tale of 3 CMS solutions
I’m a big fan of metaphors, so bear with me.
This is Drupal
Modular, plug and play and flexible, the blocks building this have many possible uses, but in this configuration it’s easily recognizable as a truck. Changing it into a plane wouldn’t be too difficult, but you would need some basic information on how the pieces interlock and knowing that not all configurations will fit together. Just like this truck, websites built with Drupal can be created in a way so that adding or removing functionality can be done by anyone that knows how the pieces fit together.
The Proprietary CMS
The metal truck has been built specifically for you. The one I have pictured here shows a bit of wear, but only because it was first concieved a few years ago, and it doesn’t necessarily have the latest and greatest parts. It works extremely well as a truck, but what if you needed it to do something else? I suppose you could spot-weld some wings on it to make it a plane, but you would need special tools and expertise (or find someone else that has those). Most proprietary CMSs come with a set of restrictions on how things work together, and you have to fit yourself inside thier product. They also tend to be much more expensive to build and maintain.
The Custom CMS
Someone’s carved this truck from a solid block of wood. It looks really nice and can be customized pretty easily by gluing more parts on or carving it further. You’d likely need someone talented with woodworking to make it look nice though. Some of the modifications might also look a little sloppy, and reverting them might leave some glue behind that you didn’t have before. What if one of the parts relied on another part to function and you wanted to get rid of that other part? Websites that use custom CMS can be really efficient and look great, but depending on implementation can cause a big mess (or at least a lot of work) if the functionality changes.
Flexibility is a fairly well known attribute of Drupal. There are many ways to accomplish common tasks (dynamically listing categorized content, pulling data in from external sources and creating new template layouts to name a few) as well as a robust API and various contributed modules (extensions to the Drupal core software) to make solving complex tasks more efficient. This flexibility extends to how information is stored in the database and how it can be retrieved and displayed to the end user.
Flexibility can also get Drupal in trouble at times. Because there are so many choices and solutions to problems, sites can get bloated with too many modules for specific use cases, leading to slow loading times and poor performance. Compatibility between popular modules is well tested and large bugs are rare in the core software, but modules for specific use cases don’t always have the same developer support and can bring smoothly running development to a standstill. I always recommend that clients choose actively maintained modules used on at least a few thousand sites (The Project Usage Overview page shows the most popular modules in use today).
Creating functionality for a website is one of the main tasks of every developer, but a well known maxim tells all developers don’t reinvent the wheel, and this holds especially true for Drupal. There’s no reason to write code to accomplish a specific functionality when it’s already been written and published into a contributed module. I know… I just told you not to install too many modules, but there’s a balance here that impacts the future of any website.
Updating software is usually a relatively painless process. Almost everyone updates software, whether we’re downloading an update from the app stores on our mobile devices, asking our computers why Java needs to be updated for the fourth time this week or manually adding logic within the code of our software to patch up a recently discovered exploit. Wait, that third one didn’t sound painless, did it? While updating contributed modules isn’t always as easy as clicking a button, I’d definitely prefer not having to spend an afternoon figuring out why my custom code isn’t displaying my content in the same way it used to.
The Drupal Community
This is really a testament to any widely adopted open source project, but I’ve rarely come across an issue I can’t solve by simply Googling my question and adding Drupal keywords to it. On a larger scale, the coding standards produced by the community as well as best practices (most of these apply to all websites, Drupal or not), step by step guides for learning and multiple community events make the Drupal community a valuable tool for creating a Drupal site.
The Final Words
Everyone around the VisionPoint office knows how I’m going to answer when it comes to questions about development. I compare everything to Drupal. “Here’s how I would do that in Drupal” comes out of my mouth a lot. Drupal is a great platform, and because of its strengths in flexibility and maintainability, as well as the extensive Drupal community that has your back solving any issues you may have, I’d recommend considering Drupal on your next website project, large or small. If you have questions or want to chat more about what options are avialalbe for your unique website project, feel free to reach out to our team.