I've used Drupal in the past (it's still in use on my personal site) for various projects. When a colleague introduced me to Django, I felt a light click on; I smacked my forehead and said to myself: "Gosh. Square peg, round hole".
Of course, I was speaking about using Drupal (or any other CMS for that matter) for certain projects of mine. Don't get me wrong, Drupal's done well for itself. It's just that CMSes aren't necessarily the best tool for the job. If you're looking purely to host content - and content only - then a CMS is likely the right choice.
If you are techie enough (or have access to a techie enough crew) and your problem is even a bit more complex than simple content hosting, using a framework (such as Django) will really open doors for you. Having a custom-built system designed around a proven framework allows so much more room for optimization and offer flexibility like you wouldn't believe.
A framework is the best compromise between custom developing (from scratch) a codebase in any language (PHP, Python, whatever) and a more restrictive configuration such as offered by a CMS.
Now... if only I could find the time to update my personal page to Django, because gosh darn it - Django's fun to use!
It isn't really fair to compare Drupal to Django. One is a CMS and the other is an MVC app framework. The article pretty much beats up Drupal for not being an MVC app framework.
If you are looking to build a website, Drupal is awesome. If you are looking to build a web app, Drupal is painful, and something like Django (or RoR, CodeIgniter, etc) is a great solution. Comparing the two is like comparing a hammer to a saw. They are both good tools for different jobs.
> If you are looking to build a website, Drupal is awesome. If you are looking to build a web app, Drupal is painful, and something like Django (or RoR, CodeIgniter, etc) is a great solution.
FWICT, "websites" often morph into having webapp features, and webapps usually grow websites around them.
I haven't used Django much, but one thing I can say about Drupal is that adding a feature is often a 15-minute affair of downloading a module, un-tar'ing it into your modules dir, then enabling and configuring it via the admin. That's pretty profound right there. Can Django (or Pylons, or Catalyst, or $other_framework) do that? Go from "I think I'd like this feature" to "Ok, it's installed and configured" in about 15 minutes?
5 comments
[ 3.6 ms ] story [ 31.3 ms ] threadI've used Drupal in the past (it's still in use on my personal site) for various projects. When a colleague introduced me to Django, I felt a light click on; I smacked my forehead and said to myself: "Gosh. Square peg, round hole".
Of course, I was speaking about using Drupal (or any other CMS for that matter) for certain projects of mine. Don't get me wrong, Drupal's done well for itself. It's just that CMSes aren't necessarily the best tool for the job. If you're looking purely to host content - and content only - then a CMS is likely the right choice.
If you are techie enough (or have access to a techie enough crew) and your problem is even a bit more complex than simple content hosting, using a framework (such as Django) will really open doors for you. Having a custom-built system designed around a proven framework allows so much more room for optimization and offer flexibility like you wouldn't believe.
A framework is the best compromise between custom developing (from scratch) a codebase in any language (PHP, Python, whatever) and a more restrictive configuration such as offered by a CMS.
Now... if only I could find the time to update my personal page to Django, because gosh darn it - Django's fun to use!
If you are looking to build a website, Drupal is awesome. If you are looking to build a web app, Drupal is painful, and something like Django (or RoR, CodeIgniter, etc) is a great solution. Comparing the two is like comparing a hammer to a saw. They are both good tools for different jobs.
FWICT, "websites" often morph into having webapp features, and webapps usually grow websites around them.