Why are content management frameworks like Drupal so much more popular than MVC framework like CakePHP, but so much less fun to develop with?
Asked by
olav (
3)
September 9th, 2009
Developing a website with Drupal is a process of decomposition. There is lots of stuff you need to get rid of. On the other hand, CakePHP requires a constructive mindset. You build your functionality one lego brick at a time. Now, which is the better process across various dimensions: In terms of the quality of the result, the plannability of the process, the amount of maintenance after launch etc.
Observing members:
0
Composing members:
0
3 Answers
I’m not sure what your question is.
It’s the responsibility of an experienced developer to pick the framework that best suits the site he’s trying to build. There are many options because there are many types of sites, and there’s no single best solution for all problems.
cwilbur, what I have in mind is a functionally rich website like a niche social network. I would like to see some pros and cons of the two approaches for building such a site:
Drupal approach: Rich set of prefabricated processes, each with a default HTML rendering. Tab into processes using hooks and adapt existing HTML/CSS
CakePHP approach: Few complete processes, but solid conceptual framework. Build all HTML/CSS yourself.
The two are not comparable. Drupal is an completed application with a modular API to allow additions/plugins. Unless what you want to do is very closely aligned to Drupal (and modules) modifying it to get what you want is going to be very time consuming. As you said, you would have to deconstruct/reconstruct to make it do what you want. There are tons of other CMS out there that may better match your needs than Drupal.
CakePHP on the otherhand is a development framework. All it does is abstract some of the comlications of building a dynamic web app. So yes, it is a whole lot easier to build something custom nearly from scratch using cake. It will also have its short comings though. When you need something done that the framework does not do yet then you will either have to write it or do with out.
This is a common complaint against other frameworks like Ruby on Rails, which is not really a fault of the framework. There are some things that get too specific to be worthy of adding to the framework. If you use a development framework without really knowing the code behind it and/or how to extend it you may find yourself stuck. Building from a developement framework only gets you a headstart as there can be major effort needed to capture all the functionality you may need and deal with all the conditions. This is why most organizations find a completed application that most closely matches their needs.
Checkout Open Source CMS for more CMS that you can see if there is one that will do what you need more simply than Drupal.
Also reddit has made their code available and you can also create new sub-reddits under the main reddit without having to set up your own host to experiment with a kind of social networking site.
Answer this question