For several decades, the world of computing was one of custom operating systems, languages and applications. With the advent of Unix, things improved quite a bit, and it became possible for end-users to write applications that would be portable across different computers. This started the quest for developers and adminstrators to be able to reuse existing code and libraries that has been the goal of many computing trends.
Not so long ago, creating websites was similar to creating applications for the early computers–you had to start from scratch. Over time, reusable libraries and frameworks started to emerge and entire ecosystems were created around popular open source Content Management Systems (CMS) such as Drupal, Joomla! and even WordPress, a blogging engine increasingly used to build and manage entire web sites. As a result, today, most websites are not started from scratch, with just a text editor and a blank PHP file. Instead, developers take an existing CMS application as a starting point and extend it to meet their needs.
From there, developers can pick and choose from thousands of modules (20,000 modules in Drupal’s case for example) or write their own. Modules range from e-commerce add-ons to administrative tools to analytics and reporting extensions. Many modules tend to be used together, and a number of niche-specific distributions have emerged. They provide collections of modules and configuration that make it easy to get started with content publishing for a wide range of verticals such as education, news sites, HR portals or photography portfolios. Continue reading