Skip navigation

Well, I’m actually working on a website now, a really simple CMS I’m doing for a group at school. There’s no money in it, but it’s a good learning experience. At any rate, this did mean that I had to choose some sort of a web framework. In the end I went with Django.

The other framework that I seriously considered is Rails. Rails is quite nice, but there are several issues I had with getting up and running with it. The first issue was learning curve. Compared to Django, it’s a lot harder to get started in Rails. The issue isn’t one language versus the other, I’m equally fluent in both, but in Django it’s a lot easier to see how things fit together. With Rails I feel that you are expected to just trust the the framework will take care of things for you. It’s very nice the way all of the models, views, and controllers fit together, but really it’s just a bit too “magical” for me.

Django on the other hand does some stuff magically, but it’s more transparent about it. Things fit together and I can see where the pieces are coming from. I suppose some people are okay with putting up with magic until they can finally see through it, but I’d prefer to understand things now.

There are however some things that I feel I’m giving up from Rails. Number one is Rail’s wonderful template system. I really like how easy it is to make reusable parts that can easily get added in. Django makes similar things possible with it’s blocks and inheritance stuff, but it seems considerably less intuitive to me.

That being said, there are some wonderful benefits that come with Django. For one is the automatic admin interfaces. The app I’m working on is a simple CMS, for which the data input will be almost entirely done on the admin end. That means a lot less work for me. In addition to that, they’ve also got a couple of wonderful pre-made applications that I can just drop into mine and have work. I don’t have to worry about User and Group models, it’s got a built in system for storing one off plain html pages (like an about or contact page), and it has a comments system that I can attach to anything I care to.

I’m sure that Rails has some similar things either in the form of plugins or are easy enough to implement, but the fact that Django comes with them is good enough for me to use it.

All things said and done, they are both wonderful frameworks. I would like to explore Rails some more though; once I get past the magic I feel that using it will be quite wonderful. For now though, Django is easier to learn and I’m going with that.

This is all from the eyes of a person new to both frameworks, so there is probably I’m missing in this picture. If anyone is knows about some wisdom I lack in this arena, please enlighten me.

Leave a comment