Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news.

Troll(s) Of The Month: Django Kicks Rails’ Ass?

By Peter Cooper / December 8, 2006

There was no "Troll of the Month" feature in November, because I couldn't find any. December has started off strong, though, with two articles: Why Django Kicks Ruby on Rails' Collective Ass and Constructive Reasons to use Django Instead of Rails. While the first is definitely the most inflammatory, both make bizarre arguments (amongst some good ones, admittedly) and seem to be nothing but "let's bitch about Rails to make Django look better"-fests.

One key argument is, essentially: 'Django is better because Python is better'. This seems as wise as 'God must exist because the Bible says so'. Just because somebody thinks Python 'is' better doesn't mean that it is. This is preaching to the converted. Another curiousity is that Django is better because it's '(mostly) buzzword free'. Supposedly, 'RoR' is a 'buzzword' but 'Django' isn't. Perhaps because there's little buzz about Django compared to Rails?


  1. Danno says:

    I love the argument in the penultimate paragraph of the second article you link to. It can be boiled down to this:

    DHH Considered Harmful.

  2. John W. Long says:

    I tend to agree with points 5 and 6 of the first article. And I'm a Rails programmer, not a Django guy. I would really love to see Rails become less heavyweight and more modular. See also:

  3. Joe says:

    I love Rails, but outside the Rails community, DHH is not viewed with the same respect. I know he doesn't care about this, but the community should take comments like this seriously.

    The bungled way in which the core team dealt with the security patch a few months back is indicitive of the smug and pompous attitude DHH presents to the world. This is NOT good for Rails and the Rails community.

  4. Mislav says:

    ...considered harmful.... LOL :)

    I don't think this guy has an idea what "opinionated" in "opinionated software" really means.

  5. Joseph says:

    I develop professionally in Rails, but I'm also currently assisting a co-worker with a side project in Django. To each his own, but after using both, I won't be using Django again. The fact that I've got to learn a new templating language with a whole set of IF directives is annoying (that's just an example, Rails just _makes sense_ to me on all levels, where I found myself bashing my head against the keyboard one too many times with Django).

    {{ if loop.count % 2 }} isn't valid, you've gotta use 'cycles'

    {{ if 1 == 2 }} isn't valid either, you've got use {{ ifequal 1 2 }}

    Just seems silly to me.

  6. Mike B says:

    As a non-Ruby user, I evaluated Django and even partially built my app in it prior to switching to Rails. I haven't checked out Django in over a year, but at the time it was still very much a work in progress compared to Rails at the time.

    The one nice thing about Django over Rails is that performance was much, much better. Rails wins out in terms of API and coding simplicity as well as community support. I'm trusting that the Rails/Ruby performance will just get better and better with the huge community support it has.

  7. Andrew Skegg says:

    "Just because somebody thinks Python 'is' better doesn't mean that it is."

  8. James F. Herdman says:

    For those reading John W. Long's comment and nodding their heads, let it be known that this is a goal the core team has taken up (from what I've read).

  9. Morrie says:

    Rails has too many problems. Good thing the fanboys start engaging in drive by shootings every time someone dares to make any kind of suggestion.

    Django is gaining, slowly but steadily. Once google gives Django its official blessing, it's going to be all over but the shouting for Rails.

    Somebody better listen to the voices for change and fix the rails mess before 2.0, or the fanboys are going to leave in droves. Same way they came.

    A proper fork with some level headed people at the helm may save the situation. Otherwise the clique is going to take everyone down with them. Mark my words.

  10. Peter Cooper says:

    This isn't Bloods vs. Crips. Even technologies that generally result in crappy code and bad practices can live on, and dominate, for ages ;-) (see PHP)

  11. Mr eel says:

    "Once google gives Django its official blessing"

    Neither a foregone conclusion, nor would it spell the end of Rails. As big as it is Google is only one company. Don't forget it's the smaller shops that like Rails. I don't think they're going to be too fussed about what Google is doing.

    "Somebody better listen to the voices for change and fix the rails mess before 2.0,"

    It would be useful for you to elaborate what you mean by 'mess'. M'thinks you haven't actually used Rails. Saying it's a mess is a mischaracterisation. It's a well organised framework, which is contantly and well maintained.

    Perhaps by mess you mean the politics of discussing Rails vs. everything else? IMO the majority of discussions are quite polite and boils down to 'the right tool for the task'.

    "A proper fork with some level headed people at the helm may save the situation... Mark my words."

    Oh I've marked them. Yep. I'm gonna remember this in 12 months time. Will I be laughing or crying?

  12. James Bennett says:

    As a Django guy, I've got no comment on the Rails vs. Django stuff, other than to point people to Adrian's (one of Django's lead developers) response to these articles:

    Though I would like to mention one thing to Joseph, who complains about our template system: in one of his more infamous presentations on Django, Jacob (other lead dev) stared point-blank at a room of programmers and said, "the Django templating language wasn't designed for people like you". And it wasn't; it was designed to be picked easily up by people who weren't and weren't expected to become programmers. Maybe it's our version of being "opinionated" ;)

  13. Peter Cooper says:

    I would agree it is an opinionated part of Django, just as the opposite is an opinionated part of Rails. That's why I don't think this can either boil down to an either/or argument. Django and Rails are not the same thing, even if similar results can be achived.

    I mean.. you can do Rails-esque stuff in PHP.. but we really don't want to ;-) Likewise, I'm sure you can do Django-esque stuff in Rails (and vice versa).. but a lot of people won't want to.

  14. James Bennett says:

    Peter: I agree wholeheartedly. That's why I'm glad that both Rails and Django make it relatively easy to switch out templating systems (as with Liquid for Rails, which gives the more designer-friendly feel, or various Python templating kits which can enable more program-ish templates in Django). Loose coupling's a wonderful thing :)

Other Posts to Enjoy

Twitter Mentions