views:

230

answers:

7

Hello,

I want to learn and use Drupal or Django for the following:

dynamic web sites, medium database, multi-level users, paypal integration, content managment, speed (developing), security

I like MVC, ORM and object-oriented prg.

Which is better to jump into ? Which one is more mature, powerful, understandable, object-oriented and easier to use by the time ?

What about Python Spring ...

Also, which of these 3 are better documented, are better for a cv and have more extensions?

Known languages: php, java, mysql

Thank you !

+2  A: 

Jump into what you like or what attracts you most after getting a little overview of the capabilities and constraints. I never worked with drupal, but I can recommend django.

The MYYN
+5  A: 

I'm primarily a (happy) Drupal developer these days, but a friend whose dev skills surpass mine has switched happily from Drupal to Django. Here's his set of reasons.

ceejayoz
+1 nice summary
gnibbler
+2  A: 

Consider your deployment. Pretty much every host will support Drupal. If you go with Django, you will need to select a host that supports fast_cgi or wsgi

gnibbler
If your host doesn't support either, then you need to upgrade. I don't know any large host that doesn't offer something so basic.
Casey Stark
A: 

You already know php, so just for that you might want to stick with Drupal. However, I prefer Django over Drupal for many reasons.

http://www.reddit.com/r/django/comments/bhvhz/the_onion_uses_django_and_why_it_matters_to_us/ provides some excellent background.

Basically if want things done properly with lots of flexibility, go with Django. If you're very familiar with php, don't feel like learning python, and your site requirements are basic, go with Drupal.

Something to keep in mind is that Django is a bona fide web framework, whereas Drupal is more of a web platform. That is, sometimes you have to hack Drupal to get what you want or that it doesn't fit all situations.

I had never heard of Spring Python but based on the fact that their own site is powered by Drupal, I wouldn't recommend it. Especially if you know Java already, why not consider the original Spring platform?

Casey Stark
Hi Casey, Spring Java site is also powered with Drupal but nobody can argue with Spring popularity in java word
abovesun
Doesn't matter. If the project is any sort of web framework, you need to host the site on your code. It's like not believing in your product. Note that Django and Rails run on their own code.
Casey Stark
+2  A: 

Drupal and Django doesn't make for a good comparison, as they are quite different.

If all you need is a simple website with a CMS and Paypal, I would go for Drupal. Drupal's strength compared Django is it's many modules (modular system), which most of the time can get you where you want. Drupal is also extremely flexible, and you can change almost anything from within your own code, and there is a huge demand for Drupal developers. You can also let site builders create content, display content and much from from within the AI.

Django on the other hand, is more simple and structured. It's based a lot more on code, making it fast and easy to develop something, but hard for non coders to change certain things. For sites that require a lot of custom coding, I usually prefer working with Django. Python is also a more structured programming language than PHP (IMO), and it's easier to make more maintainable code.

googletorp
+4  A: 

I've built several sites on Drupal and Django, my conclusion is: if you need to create something similar to the standard drupal (or Ubercart) feature-set, you don't have much time for development, and you don't expect hight load pressure on a site - you should pick Drupal.

But if you do need to create something more or less custom (no drupal modules already available) you should go with Django - it is quicker and more pleasurable to implement custom complex features using Django. For example if my goal is to implement a second stackoverflow, I'll prefer Django because it will be extremely complicated to implement this badge-based rating system with Drupal.

P.S. Studying Python (and Django) is an investment in your future, I think. You'll never be able to implement something similar to DropBox using drupal and php, although it could be implemented with java - but java is not so good from development speed perspective.

abovesun
celopes, thanks
abovesun
A: 

I've been developing with Django for more than 2 years and have built a couple of Drupal sites in the meantime (per client's specific request to use Drupal). My conclusions are the following:

Even for a smaller site I would have done it quicker building it from scratch with django (or maybe even PHP) for a simple reason, writing code for me is faster than hunting through drupal's unorganized mess of menus and options, or hunting on the web for a module that implements hack X to enable feature Y.

Migrating a site from development to production with Drupal is a big PITA. You can forget about using a VCS tool. All your work is in in the MySQL dump (including configurations, programming logic, views etc.), a few hacked up modules and the uploaded files.

Vasil