Django Vs Rails

I’ve just kicked off a new project, and because I’ve been looking for an excuse for a while, I thought I’d give Django a try.

Python was an interim language which I toyed with a while ago, but I discovered Ruby before I got that comfortable with it. Nevertheless, I did enjoy it, and I am familiar enough with it that the language barrier wasn’t an issue. After a couple of days, it became clear that Django just wasn’t cutting it – I’ve reverted to Rails as a result. There were two main problems I had which made me shift, and I don’t think it’s just me being stuck in my ways.

The first of these was that Django doesn’t have anything like Rails’ migrations. These are an absolute godsend, to the extent that on the past couple of PHP projects I’ve been shanghaied into, I’ve duplicated their functionality as much as possible. They save me so much time and hassle.

The second is the half-hearted nature of Django’s testing framework. Admittedly, I was using 0.95 rather than the development version, but it’s really quite paltry compared to what you get out of the box with Rails. I just couldn’t get comfortable in the same way as I found I did quite quickly when I first started learning Rails.

It’s quite possible that these problems will go away by the time Django hits 1.0, or even that they’re addressed well enough in the development version that I’d be happy with that. I have serious reservations about learning a framework with a development version, though – it’s too easy to stumble on a dev bug and not know if it’s a fault in your own code.

I’ll probably come back to Django at some point – it’s got a lot to recommend it – but for me it’s just not quite there yet.

Leave a Reply

Entries (RSS)