Django vs. Ruby on Rails
Well, I’ve finished the beginner tutorials for both Django and Ruby on Rails, now.
I’d actually gone a bit further with Rails, beginning an attempt at writing an app, and then pulling up short for lack of clear documentation on working with many-to-many relationships, but that was a while ago, and the docs are a bit better now.
One thing that’s clear both from the types of tutorials they give and from the structure of the frameworks is that they were developed for different purposes.
Django was, as it claims, created for developing CMSes for content-heavy sites. It’s super easy to display content, and you get an admin interface for free (not to mention permissions tables for your database), but if you want end-users to be able to interact with the site, you have to develop your own methods for updating data (although the framework does the grunt work for you, and you just have to assign variables and then object.save()).
RoR was meant for “Web 2.0″ sites where the content is supplied by the user, and the whole purpose of the site is for the user to interact with the data. You get an end-user interface for data manipulation for free, but setting up users, permissions, and any sort of admin interface requires developing something from scratch or choosing one of a zillion plugins.
I have to say that while RoR is more trendy and has a lot more momentum right now, Django seems more mature. I like that it’s easy to understand how and why things are being accomplished, and that there appear to be generally accepted best practices in a lot of areas instead of the dozen different people’s plugins, each with pros and cons, to patch each oversight in RoR.
Of course, this opinion may change as I dive a bit further into Django. If it does, I’ll let you know.
Post a Comment