Humour, comics, tech, law, software, reviews, essays, articles and HOWTOs intermingled with random philosophy now and then
Filed under:
Software and Technology by
Hari
Posted on Fri, Nov 23, 2007 at 09:04 IST (last updated: Wed, Jul 16, 2008 @ 21:12 IST)
While I was writing the code for my new blog/CMS system yesterday, I realized why people prefer blogs to Content Management Systems and why developers prefer databases to XML for content storage.
To answer the first question: blogs enforce structure on websites which makes it very easy to insert content. By providing a convenient method of organizing information without requiring too much input from the end user, blogging platforms are way friendlier and easier to administer/manage from the back-end.
CMSes are unique beasts. They have a layer of abstraction that requires the end user to think a lot more about the structure. Even a simple CMS like Drupal forces you to think about content organization. While Drupal can be used as a basic blog, I think the point is that it is so flexible in terms of content organization that it does confuse one as to what is the best or optimal way of using it. That, I think is the crux of the issue. Thinking, planning and organizing a large website is a specialist design team's job. Blogging, on the other hand, allows people to create as much content as they want without having to indulge in structuring. Of course, categories and tagging allow people to manage content to an extent, but that is built into the system and so requires little maintenance. CMSes allow such flexibility in design that sometimes it's harder to think about how to manage content and to visualize how future content will affect a particular structure. They also carry a lot of features (or bloat, if you prefer) that are unnecessary for personal websites.
Coming to the second point, I think the reason why databases are more popular than XML with developers is something similar. Databases impose norms and rigid structure (fields and records). Of course, they are powerful because they can be queried in an endless variety of ways. But they scale well for small as well as large applications and it is easier to visualize how a database design will work with large amounts of data than to custom design an XML format that will allow future flexibility. I also think that with XML there's the issue of choosing a suitable XML parser for the particular application in question. The generic nature of XML parsing imposes a lot more pre-planning in terms of code, while it is a lot easier to write a specific set of SQL queries to work on a particular database that will completely manage data-handling for the application.
In the end, I think the answer lies in the fact that as people, we like structure and simplicity to generic flexibility and complexity in design. Structure doesn't necessarily mean rigidity while simplicity doesn't necessarily imply lack of features. It's the layer of abstraction that makes generic design (as opposed to one specific design) harder to visualize.
6 comment(s)
You've also explained why databases are preferred over flat files or XML schemas. Thanks.
Comment by RT Cunningham (visitor) on Fri, Nov 23, 2007 @ 12:52 IST #
Comment by hari (blog owner) on Fri, Nov 23, 2007 @ 13:25 IST #
Databases are the way to go, XML needs to die..
Comment by drew (visitor) on Fri, Nov 23, 2007 @ 18:28 IST #
Databases handle their low-level file handling internally, so the problem of scalability doesn't arise for the developer who doesn't have to bother about such things as storage. The system handles it since database applications are made for scalability.
Comment by hari (blog owner) on Fri, Nov 23, 2007 @ 18:39 IST #
Comment by Ed (visitor) on Mon, Nov 26, 2007 @ 10:11 IST #
Comment by hari (blog owner) on Mon, Nov 26, 2007 @ 10:15 IST #