Times change and ideas become commonplace, 5 years ago you could hardly begin to fathom a content management system that you would trust with the well being of your business.
Companies had to go out and hire one or more developers, which turned around custom software, and after much frustration, open source content management systems started rising out of thin air. Now some people argue that there may be way too many content management systems doing the same thing, others argue that the competition is healthy, while most just get lost in the confusion.
Most Content Management Systems cater to specific use cases, like WordPress for example, which was designed from the ground up with Blogging in mind, and later included support for regular pages, as the demand for a more versatile CMS (Content Management System) grew. It also included a plugin system, to further extend the functionality that it could provide to the user.
Joomla is quite famous for it’s generally neat and powerful ability to handle content publishing of any kind, neat administration area and a large user base. As time progressed Joomla introduced a plugin system that would allow users to make relative changes to the way their sites worked in order to fulfill specific use cases.
Other types of Content Management Systems that aim to be more flexible and begin to take the shape of more of a platform and less of a turnkey Content Management systems are projects like Ruby on Rails and Drupal. Ruby on Rails runs on the Ruby programming language and is an agile development framework with no readily available functionality out of the box, their plugins are called gems and with some know how and a few gems, you can have a website ready-made, however without any knowledge of ruby, you may be out of luck.
Drupal is the marriage between a turnkey solution and a fully expandable and powerful framework framework. With thousands of modules that provide turnkey solutions to complex solutions to abstract workhorse modules that can fulfill just about any use case you throw at them, Drupal captures the practical spirit of agile development in it’s purest form. Why develop an interface for every web application when the user can have most of the grunt work cut out of the way? thus allowing the user to focus on unique, and case specific functionality, not on a login box. You can run a blog with a shopping cart and a roll your client’s info into a CRM section of your site, all inside of a Drupal website, comfortably.