Hit and Run: Django? More like DjangNO.

You bring shame to the letters D and J.
I’m not sure what deadlines these web developers have, but I wish someone would have given them some flex time when writing Django. Don’t get me wrong, I’m pretty happy to be learning a new technology for work. But, after a week of working with it, Django seems like all the bad stuff of Rails mixed with all the bad stuff of PHP, with a few extra configuration files thrown in for good measure. Django is verbose, command-line driven, has a highly suspect templating language (Separate if and ifequal statements? forloop.counter? How unintuitive are we gonna get?), fragile, and a nuisance to set up for production. Did I mention the excess configuration files?

Oh well, it’s better than straight Python for web development, provided I don’t lose too much time to studying its quirks. If I had more options, I’d go Ruby on Rails or CodeIgniter/Kohana, all of which seem to have clearer, more consistent web development philosophies and workflows. Maybe I’ll make a Mahmoudjango or something. Need to work on that name.


4 responses to “Hit and Run: Django? More like DjangNO.

  1. Glad someone else feels the same way. I wanted to like Django. I tried so hard, but it really does suck. If I didn’t have something against php, I would look into codeigniter.

  2. Yeah. I feel like it’s a lot more work for a pretty meager improvement over CodeIgniter or Rails. I’m trying to refactor a project that’s gone astray from the Model-Template-View that Django is supposed to support and encourage, and I really can’t blame the developers for some of the hacks they’ve implemented; Django makes MVC much harder than it needs to be.

  3. One of the most confusing parts of Django for me starting out (and coming from Rails) is that they very confusingly create the C portion of MVC – it’s there (like you said) in the views.py file but conflating terms like view and controller when the framework is supposed to be MVC seems utterly pointless. Also the way that models are tied to apps (and yet you can import them across a project?) seems like a crazy design choice. I also want to like Django but Rails has treated me so well that it’s difficult for me to do so.

  4. Yeah, they’re doing their own thing with terminology and I’m sitting here hoping I find a clean way of replacing views.py.

    And like you mentioned, they have put a lot of effort into allowing reuse and cross-importing, but the cost in the learning curve and the potential to use it terribly leads me to wish they had found a better way or left it out.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s