Content Management Systems

Content Management Systems (CMS) are computer applications widely used to built and manage web sites.

The first CMS where developed in the nineties; they where complex and expensive commercial products, using complex databases, as oracle, and where affordable only for big companies.

Open source, inexpensive CMS, as WikiWiki PhpNuke or PostNuke, appeared only at the end of the nineties. Their popularity began to grove around 2000 and an important element for their diffusion was the availability of easy "server side languages", mainly PHP.
PHP is a simple programming language whose statements are embedded in the HTML web pages and are executed by the server when the user requests a page. The page sent to the user contains the output of the PHP code and is built at user request. These CMS could also use inexpensive but professional databases and web servers, as MySQL and Apache .

A typical a CMS has the following structure:

This structure allows for the separation of the roles of content editor, programmer and web designer: the CMS machinery is maintained by programmers; templates are made by the web designers; text and pictures are inserted by the editor trough a simplified interface, without the need to know HTML, CSS, Javascript, etc.

Moreover, the PHP language and all the web stuff: templates, database, web server etc., are free available on the internet, along with a wide choice of CMS, with addons, procedures and easy user interfaces. The building of a web site becomes very easy and also totally unskilled people can build a web site: as a result we have today millions of web sites... and also a myriad of bad conceived and unmaintained websites around; a very heaven for hackers...

There are today a lot of different CMS around and it is estimated that 50% of the web sites use a CMS. They are so many that the CMS word is very difficult to explore: the Wikipedia has a long list of about hundred CMS; there are CMS written in Perl, Java or other languages, but most use PHP as a server side language; among others we have: Mambo, Drupal, Xoops, Joomla, Typo3, Alfresco, Wordpress, most born between 2000-2005, when blogging became mainstream.

One of the first open source CMS was Plone, developed around 2000, using the Python language. It was freely available and greatly contributed to the diffusion of the Python language.
Plone is based on Zope, a Python framework to build web applications; Zope is complex and Plone too: it has unique features, as an object-oriented internal database, a strict separation of content and representation, its own template system etc.; all this make Plone difficult to configure and use. Moreover Zope had a complex story: it was completely rewritten around 2001, but Plone continued with the old version, with recent Plone versions incorporating features from the new Zope; all this generated some confusion and compatibility problems.

Wordpress is the most used CMS in 2017; it is estimated that 30% of web sites use Wordpress. Other main actors are Joomla and Drupal, with less than 10% each; all others CMS have some percent of the market or less. Giving exact numbers is difficult; web sites born and die every day and nobody can really count them, but without any doubt Wordpress largely dominates the web market; it is estimated that there is a billion of websites in the world , 60% of CMS are Wordpress.

The reason for this success is that Wordpress is very easy: easy to setup, configure and use: it can be installed in minutes in each personal computer or in the cloud; it is the preferred choice for simple web sites, but also professionals offer Wordpress to their customers, they save time and time is money for them.