Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I worked for four years in my startup in which we decided to go with django; four years ago RoR (v1.2.3) and django(0.97) were almost at par. Even though RoR had a slightly bigger community, django was clearly emerging as a leader. Both were equally good but we went for django because it had better performance, the explicit style seemed better than the inflexible conventions approach, Python's one-clear-way-of-solving syntax seemed better suited for teams and django's performance was certainly better than RoR.

Fast-forwarding four years and coming to 2011 with django 1.3 and Rails 3.0: I happened to work in another team to build a product in RoR from scrach. I was blown away by what Rails community has achieved while django is lagging behind a lot and is least likely to catch up.

Here are a few highlights:

* As a generic statement, to achieve anything in RoR, usually there is one clear and simple way of doing it. On the other hand in django you can do in many ways and most of the programmers have their own preferable ways. This is ironic considering Python endorses the very same principle but Ruby has a flexible syntax to cater different styles.

* In RoR, you can find a gem for almost anything. Plugging gem in your app is usually extremely simple. On the other, comparatively there are very few usable django apps and integrating them in your django project usually turns out to be painful. * Resolving and maintaining gem dependencies across the team is a piece of cake with bundler. However when it comes to django, I couldn't find a good tool. There is virtualenv but I couldn't find it comparable with the power of bundler.

* Deployment is fun in Rails. In django, it was and still is painful.

* Rails has a far better support for Backend databases, including some support for NoSQL. On the other hand it was just a while back django started supporing multiple databases and that too is hackish approach.

* Databases migrations in Rails are straightforward and explicity. django doesn't have anything like that builtin but does have a django-evolution app which can be really troublesome in some cases.

* Django's restrictive templating system theoretically lets you not shoot yourself in the foot by imposing a new language. But having to learn a new language and dealing with its quirks sometimes makes you pull your hair. Rails approach of embedding Ruby in templates is much more powerful and practically useful. Sure you can override templating systems in both frameworks but defaults are the ones almost everyone uses.

* There are very few hosting services specifically tailored for django. But Rails community boasts services such as heroku which save you so much time that a django fanatic cannot understand.

* I haven't seen testing in Rails in depth but from the bird's eyeview, automated test-cases in Rails seem much more powerful than in django. I might be wrong here.

* Rails has much better documentation and a much stronger community. Compare the Rails and django books on Amazon, questions asked on SO, blogs, tweets, everywhere Rails now dominates.

Its just that I really love Python and prefer it much more over Ruby. Even then I'll probably completely switch to Rails.



You clearly haven't used Django in quite some time:

try "pip freeze > requirements.txt" and "pip install -r requirements.txt" for managing dependencies between deployments

deployment is a matter of making a generic .wsgi file and pointing your server to it, how is that hard?

the "south" app makes database migrations very easy, the fact that you didn't know about this speaks volumes about your "experience"

Django is universally known to have better docs than Rails and virtually any other web framework, see almost every comment on this page

Your other comments lack any objectivity and aren't even worth responding to. I have nothing against Rails, but it's fanboys like you that give it a bad name.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: