Saturday, May 21, 2011

Do we really need CMS systems like Joomla /drupal or wordpress (There are many though) ??

Well from long time I have being thinking this. By definition CMS systems are for the people who have lack of technical knowledge. With most of the popular CMS systems , you can make a website in quick time .Yes true ..! That can be done for anyone who is in any technical level . Before go further, we will just have a look what are the popular technologies used in those.

  • Php (may be ruby on rails)
  • Mysql (don’t forget SQlite or postgre)
  • Jquery plug-in s (Some are good  ... But sadly some are crappy )
Just assume u downloaded wordpress and stared developing a website. What you would do is download free wordpress plain template from internet and start integrating  with embedding ur own stuff. Nothing to worry u just wanna upload a compressed format (zip/rar) of the template they given , and rest of the stuff will be cared by wordpress. After that you would need to show some upto date news /events and some feeds. Just search for internet for plugins and integrate (Very easy).

Finally ull be really happy for your product and after u host the site even everyone will appreciate you.
Week gone.. Month gone … Now almost 1.5 years of time passes since you hosted the site. You will be really happy by seeing the site traffic and all too. But think wisely behind the scene is not beautiful as u see.
When u getting more and more traffic ,the website can face difficulties to maintain. Following are the reasons.


  •        Most parts of the CMS stored in the database and you need to pass DB hit many many times when page loads
  •     Cllient computer will experience a  issue with resource usage cz of some unnecessary browser scripts ( Unorganized js code and jquery plugins )
  •       If your website has 100 pages. You have to iterate through 100 each time to find out a single page
I hope we are clear so far.
Now lets see what u actually need to do with CMS?

  • You probably need to update your articles / posts frequently once you created.
  • You might need to create a web page on the fly.
Eventually your simplest requirement is to create webpage on the fly by few clicks .Once you create , it should make menu item and should appear in header menu.
Now will see what are the main parts of web page .

1) Page Title
2) Page content

If you think a bit..Using this u can do more. Think wisely … If u make unique title, can request your content belongs to it. And again once u makes several pages, u endup with title list.
Then can’t u make that list as your website main menu?
How simple it is?  Once you created a simple core application then style it using effective template engine.
Lately we can add caching for static types , may be using simple  json cache .
Security can be main issue for you , but can manage with third party system like OAuth when needed.
Here I’m not going to explain in details .But later with ma articles ill provide a sample CMS system I developed for ma own purposes.





8 comments:

  1. Hi,

    I would like to point out some facts that came to my mind when reading your post.

    I think you have missed the point of why CMSs were created in first place. Apart from technical aspects and advantages, I think I don’t need to mention how CMSs are coping with organizations. Using CMSs will allow any origination to eliminate the need of a developer to create simple things and maintain their web site. Which will saves lots and lots of money plus effort plus time. 3 things that any organization craves for. And there are a lot in organizational wise, but since you are focusing much about technology aspects I would go in that direction too.

    In your blogs you have mentioned various technologies such as WS, JQuery, JSON etc. What are all these have in common? It is the dynamic behavior. CMSs can be a heavy for a simple site. Or more correctly put, for a STATIC site. How many static sites we can find in these days? Not much right? We use CMSs for highly dynamic sites. That is why CMSs are in a great position in today’s web development world.

    Second, in your post the only bad thing you have mentioned is about high resource consumption of CMSs. For your example, we can always use caching up pages in a CMS system we use. That will help the efficiency of the web site in a great deal.

    Third, the plug ins. Well here comes the real treat with reusability. We do not need to think twice about how a plug in was developed or how it works. We just need to know what is the correct plug-in we need (duh) and how to plug it in to our CMS (again duh).I really don’t know what kind of plug ins are there which categorized as crappy and shitty, but all the plug ins I worked with so far was able to meet all customer requirements.

    And finally I would like to point out that there are NO SHAME at all to use a CMS ( kidding for your just kidding ;-) ), because we do the same thing with each and every language we use for programming. Also I would like to point out that CMSs are not only providing a simple way to create dynamic HTML pages but also they are providing a FRAMEWORK itself. And I don’t need to tell anyone how a framework can help us. So when replacing a fully developed CMS which has gone through ages of evolution by some crazy-talented tech guys, are you sure your CMS has even the basics correct? (No offense).

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Yeah in business point of view you ,All most All of your points are correct .might be correct , And i appreciate the clean explanation.

    But we should think out of the frame .CMS saves our time but developer friendlyness just not enough for complete and quality product output.

    First in these blog series im mostly into php.

    Frameworks ???Yeah evryone love them . If you need a php framework go for codeignitor or Zend .. You have mislead the mean of CMS over Framework. Forget the language , frameworks helps developers in 1000 ways . Those has inbuilt powerfull and precious mechanisms to improve the code readability / maintainability / performance . When you develop applications , also should care the dependency .

    Dnt forget Css style sheets for styles / DB for store data . In CMS systems you mess those things together , And coupled evrything .

    I dont much consider just website developments here . But for scalable applications you need clean architecture with layer seperation from basics . If you try to save evrything in DB for your easness which is verry verry bad .

    Yes ..!! There are plugins i kno . name " wordpress plugins joomla plugins etc etc " are most common and popular today . But have you ever measure your website loading times with those plugins ? Do you know many many gossip JS scripts includes in freely available childlish plugins . Gossip calls , blocks browser response (unresponsive script is running ) , Overflow exceptions . As a mature programmers we cant just satisfy our selves by covering customer requirements . We should meet customer requirements as well as should keep application reliablity .

    For basic static or dynamic website development company can depend on CMS s . But for quality software development firm , i always prefere start develop with framework and use template engine like smarty for php , to render html.
    That is why i highlighted in my article CMS are good for childlish developers ... :)

    ReplyDelete